One day, one result: the production stack priced the whole field under 1 course reading, against the market's line where one was captured. A one-day race is its own best reference — the main reading is built from this race's own recent editions.
The fork
Course profile is an input the model cannot see from a map — it is set from reference races. The main reading averages this race's own last editions, so the terrain and the kind of rider it selects come from the race's own history; any alternate reading swaps in an archetype set to ask what a different day would do to the same field.
The board
Blend is the production price (cascade × LambdaRank, DNF-adjusted at the pricing layer); Cascade and LambdaRank are the two underlying heads shown for the main reading. The market columns are the devigged win line, present as the information benchmark the model is scored against.
Read "Max edge" as directional, not as a price. The blend is a set of per-rider marginals and does not sum to one book — across this field each reading totals own history 80% — while the devigged market column sums to exactly 100%. Putting the two side by side flatters the model, and Max edge is inflated by about that factor. Of our heads only the LambdaRank one is natively book-preserving.
| Rider | Team | Blend | Cascade | LambdaRank | Market odds | Market devig | Max edge |
|---|---|---|---|---|---|---|---|
| Grégoire Romain | Groupama-FDJ United | 13.1% | 16.2% | 15.5% | n/a | – | – |
| Godon Dorian | Netcompany INEOS | 5.8% | 10.0% | 6.1% | 10.00 | 6.6% | -0.9pp |
| Vacek Mathias | Lidl-Trek | 5.2% | 2.1% | 7.2% | 51.00 | 1.3% | +3.9pp |
| Lapeira Paul | Decathlon CMA CGM Team | 4.3% | 5.4% | 5.1% | 15.00 | 4.4% | -0.1pp |
| De Lie Arnaud | Lotto-Intermarché | 4.2% | 4.7% | 5.0% | 41.00 | 1.6% | +2.5pp |
| Berckmoes Jenno | Lotto-Intermarché | 3.8% | 1.7% | 5.2% | 9.00 | 7.4% | -3.6pp |
| Merlier Tim | Soudal Quick-Step | 3.1% | 5.8% | 3.2% | 17.00 | 3.9% | -0.8pp |
| Gautherat Pierre | Decathlon CMA CGM Team | 2.6% | 1.7% | 3.4% | 34.00 | 2.0% | +0.6pp |
| Laporte Christophe | Team Visma | Lease a Bike | 2.5% | 6.5% | 2.1% | 5.50 | 12.1% | -9.6pp |
| Kubis Lukas | Unibet Rose Rockets | 2.5% | 1.5% | 3.3% | 41.00 | 1.6% | +0.8pp |
| Stuyven Jasper | Soudal Quick-Step | 1.9% | 0.8% | 2.7% | 17.00 | 3.9% | -2.0pp |
| Wærenskjold Søren | Uno-X Mobility | 1.8% | 2.5% | 2.0% | 34.00 | 2.0% | -0.2pp |
| Isidore Noa | Decathlon CMA CGM Team | 1.7% | 1.7% | 2.2% | 19.00 | 3.5% | -1.7pp |
| Gruel Thibaud | Groupama-FDJ United | 1.6% | 1.9% | 1.9% | 23.00 | 2.9% | -1.3pp |
| Küng Stefan | Tudor Pro Cycling Team | 1.6% | 1.7% | 1.9% | 67.00 | 1.0% | +0.6pp |
| Pluimers Rick | Tudor Pro Cycling Team | 1.4% | 1.0% | 1.9% | 67.00 | 1.0% | +0.4pp |
| Loockx Lander | Unibet Rose Rockets | 1.3% | 0.5% | 1.9% | 301.00 | 0.2% | +1.1pp |
| Trentin Matteo | Tudor Pro Cycling Team | 1.3% | 1.6% | 1.6% | 15.00 | 4.4% | -3.1pp |
| Teunissen Mike | XDS Astana Team | 1.3% | 0.8% | 1.7% | 34.00 | 2.0% | -0.7pp |
| Askey Lewis | NSN Cycling Team | 0.9% | 1.2% | 1.1% | 26.00 | 2.6% | -1.6pp |
| Hagenes Per Strand | Team Visma | Lease a Bike | 0.8% | 0.7% | 1.1% | 21.00 | 3.2% | -2.3pp |
| Renard Alexis | Cofidis | 0.1% | 0.1% | 0.2% | 19.00 | 3.5% | -3.4pp |
| # | Rider | Blend | Cascade | LambdaRank | Podium | Top 15 | Market odds |
|---|---|---|---|---|---|---|---|
| 1 | Grégoire Romain | 13.1% | 16.2% | 15.5% | 33.9% | 65.4% | n/a |
| 2 | Godon Dorian | 5.8% | 10.0% | 6.1% | 21.1% | 57.2% | 10.00 |
| 3 | Vacek Mathias | 5.2% | 2.1% | 7.2% | 10.7% | 31.7% | 51.00 |
| 4 | Lapeira Paul | 4.3% | 5.4% | 5.1% | 16.1% | 48.5% | 15.00 |
| 5 | De Lie Arnaud | 4.2% | 4.7% | 5.0% | 14.4% | 37.6% | 41.00 |
| 6 | Berckmoes Jenno | 3.8% | 1.7% | 5.2% | 8.5% | 39.9% | 9.00 |
| 7 | Merlier Tim | 3.1% | 5.8% | 3.2% | 12.7% | 30.7% | 17.00 |
| 8 | Gautherat Pierre | 2.6% | 1.7% | 3.4% | 8.0% | 41.0% | 34.00 |
| 9 | Laporte Christophe | 2.5% | 6.5% | 2.1% | 17.0% | 41.6% | 5.50 |
| 10 | Kubis Lukas | 2.5% | 1.5% | 3.3% | 9.7% | 49.0% | 41.00 |
| 11 | Stuyven Jasper | 1.9% | 0.8% | 2.7% | 5.1% | 43.4% | 17.00 |
| 12 | Wærenskjold Søren | 1.8% | 2.5% | 2.0% | 6.4% | 25.7% | 34.00 |
| 13 | Isidore Noa | 1.7% | 1.7% | 2.2% | 7.1% | 30.6% | 19.00 |
| 14 | Gruel Thibaud | 1.6% | 1.9% | 1.9% | 8.8% | 40.1% | 23.00 |
| 15 | Küng Stefan | 1.6% | 1.7% | 1.9% | 6.6% | 25.7% | 67.00 |
| 16 | Pluimers Rick | 1.4% | 1.0% | 1.9% | 8.6% | 43.8% | 67.00 |
| 17 | Loockx Lander | 1.3% | 0.5% | 1.9% | 2.9% | 28.9% | 301.00 |
| 18 | Trentin Matteo | 1.3% | 1.6% | 1.6% | 3.8% | 35.6% | 15.00 |
| 19 | Teunissen Mike | 1.3% | 0.8% | 1.7% | 3.2% | 32.4% | 34.00 |
| 20 | Gachignard Thomas | 0.9% | 0.2% | 1.4% | 2.1% | 13.8% | 251.00 |
| 21 | Askey Lewis | 0.9% | 1.2% | 1.1% | 5.2% | 30.0% | 26.00 |
| 22 | Hagenes Per Strand | 0.8% | 0.7% | 1.1% | 4.2% | 20.5% | 21.00 |
| 23 | Oliver Ben | 0.8% | 0.4% | 1.0% | 2.3% | 14.4% | 81.00 |
| 24 | Fiorelli Filippo | 0.7% | 0.7% | 0.9% | 1.4% | 12.6% | 81.00 |
| 25 | Christen Fabio | 0.7% | 0.2% | 1.0% | 2.3% | 25.1% | 251.00 |
| 26 | Sheehan Riley | 0.7% | 0.2% | 1.0% | 1.9% | 23.3% | 51.00 |
| 27 | Reinderink Pepijn | 0.6% | 0.2% | 0.9% | 1.0% | 10.9% | 67.00 |
| 28 | Huens Axel | 0.6% | 0.3% | 0.8% | 2.1% | 35.5% | n/a |
| 29 | Tronchon Bastien | 0.6% | 0.3% | 0.8% | 3.0% | 16.6% | 126.00 |
| 30 | Rowe Elliot | 0.5% | 0.5% | 0.7% | 2.0% | 16.8% | 301.00 |
After the race
| Pos | Rider | Team | Own history win p |
|---|---|---|---|
| 1 | Hagenes Per Strand | Team Visma | Lease a Bike | 0.8% |
| 2 | Stuyven Jasper | Soudal Quick-Step | 1.9% |
| 3 | Laporte Christophe | Team Visma | Lease a Bike | 2.5% |
| 4 | Grisel Matys | Lotto-Intermarché | 0.3% |
| 5 | Abrahamsen Jonas | Uno-X Mobility | 0.1% |
| 6 | Lapeira Paul | Decathlon CMA CGM Team | 4.3% |
| 7 | Gruel Thibaud | Groupama-FDJ United | 1.6% |
| 8 | Askey Lewis | NSN Cycling Team | 0.9% |
| 9 | Sénéchal Florian | Alpecin-Premier Tech | 0.1% |
| 10 | Skujins Toms | Lidl-Trek | 0.2% |
| Reading | Blend | Cascade | LambdaRank | Market devig |
|---|---|---|---|---|
| Own history | 0.84% | 0.67% | 1.08% | 3.16% |
Result rows are joined to the boards by FirstCycling rider id through the riders table. 0 row(s) needed the normalised-name fallback; 1 finisher(s) could not be matched at all.