Cycling race predictor · one-day race

Paris - Tours settled

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.

Raced 11 October 2026 1 reading 167 riders priced models retrained 72bc1bd857 market snapshot markets_0124.json

The fork

1 reading of the same road

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.

Own history

Paris - Tours on its own recent editions
sprint0.01
mountain0.18
hilly0.10
rolling0.65
break0.07
TT0.00
References: Paris - Tours - Paris - Tours (2025); Paris - Tours - Paris - Tours (2024); Paris - Tours - Paris - Tours (2023); Paris - Tours - Paris - Tours (2022); Paris - Tours - Paris - Tours (2021)
The race read on its own recent history: the profile is the average of this race's last 5 editions, so the terrain and the kind of rider it selects come from the race itself rather than from an archetype.
Top 5 (blend): Grégoire Romain 13.1%; Godon Dorian 5.8%; Vacek Mathias 5.2%; Lapeira Paul 4.3%; De Lie Arnaud 4.2%

The board

Win probabilities across the heads

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.

RiderTeamBlendCascadeLambdaRankMarket oddsMarket devigMax edge
Grégoire RomainGroupama-FDJ United13.1%16.2%15.5%n/a––
Godon DorianNetcompany INEOS5.8%10.0%6.1%10.006.6%-0.9pp
Vacek MathiasLidl-Trek5.2%2.1%7.2%51.001.3%+3.9pp
Lapeira PaulDecathlon CMA CGM Team4.3%5.4%5.1%15.004.4%-0.1pp
De Lie ArnaudLotto-Intermarché4.2%4.7%5.0%41.001.6%+2.5pp
Berckmoes JennoLotto-Intermarché3.8%1.7%5.2%9.007.4%-3.6pp
Merlier TimSoudal Quick-Step3.1%5.8%3.2%17.003.9%-0.8pp
Gautherat PierreDecathlon CMA CGM Team2.6%1.7%3.4%34.002.0%+0.6pp
Laporte ChristopheTeam Visma | Lease a Bike2.5%6.5%2.1%5.5012.1%-9.6pp
Kubis LukasUnibet Rose Rockets2.5%1.5%3.3%41.001.6%+0.8pp
Stuyven JasperSoudal Quick-Step1.9%0.8%2.7%17.003.9%-2.0pp
Wærenskjold SørenUno-X Mobility1.8%2.5%2.0%34.002.0%-0.2pp
Isidore NoaDecathlon CMA CGM Team1.7%1.7%2.2%19.003.5%-1.7pp
Gruel ThibaudGroupama-FDJ United1.6%1.9%1.9%23.002.9%-1.3pp
Küng StefanTudor Pro Cycling Team1.6%1.7%1.9%67.001.0%+0.6pp
Pluimers RickTudor Pro Cycling Team1.4%1.0%1.9%67.001.0%+0.4pp
Loockx LanderUnibet Rose Rockets1.3%0.5%1.9%301.000.2%+1.1pp
Trentin MatteoTudor Pro Cycling Team1.3%1.6%1.6%15.004.4%-3.1pp
Teunissen MikeXDS Astana Team1.3%0.8%1.7%34.002.0%-0.7pp
Askey LewisNSN Cycling Team0.9%1.2%1.1%26.002.6%-1.6pp
Hagenes Per StrandTeam Visma | Lease a Bike0.8%0.7%1.1%21.003.2%-2.3pp
Renard AlexisCofidis0.1%0.1%0.2%19.003.5%-3.4pp
Paris - Tours on its own recent editions — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Market odds
1Grégoire Romain13.1%16.2%15.5%33.9%65.4%n/a
2Godon Dorian5.8%10.0%6.1%21.1%57.2%10.00
3Vacek Mathias5.2%2.1%7.2%10.7%31.7%51.00
4Lapeira Paul4.3%5.4%5.1%16.1%48.5%15.00
5De Lie Arnaud4.2%4.7%5.0%14.4%37.6%41.00
6Berckmoes Jenno3.8%1.7%5.2%8.5%39.9%9.00
7Merlier Tim3.1%5.8%3.2%12.7%30.7%17.00
8Gautherat Pierre2.6%1.7%3.4%8.0%41.0%34.00
9Laporte Christophe2.5%6.5%2.1%17.0%41.6%5.50
10Kubis Lukas2.5%1.5%3.3%9.7%49.0%41.00
11Stuyven Jasper1.9%0.8%2.7%5.1%43.4%17.00
12Wærenskjold Søren1.8%2.5%2.0%6.4%25.7%34.00
13Isidore Noa1.7%1.7%2.2%7.1%30.6%19.00
14Gruel Thibaud1.6%1.9%1.9%8.8%40.1%23.00
15Küng Stefan1.6%1.7%1.9%6.6%25.7%67.00
16Pluimers Rick1.4%1.0%1.9%8.6%43.8%67.00
17Loockx Lander1.3%0.5%1.9%2.9%28.9%301.00
18Trentin Matteo1.3%1.6%1.6%3.8%35.6%15.00
19Teunissen Mike1.3%0.8%1.7%3.2%32.4%34.00
20Gachignard Thomas0.9%0.2%1.4%2.1%13.8%251.00
21Askey Lewis0.9%1.2%1.1%5.2%30.0%26.00
22Hagenes Per Strand0.8%0.7%1.1%4.2%20.5%21.00
23Oliver Ben0.8%0.4%1.0%2.3%14.4%81.00
24Fiorelli Filippo0.7%0.7%0.9%1.4%12.6%81.00
25Christen Fabio0.7%0.2%1.0%2.3%25.1%251.00
26Sheehan Riley0.7%0.2%1.0%1.9%23.3%51.00
27Reinderink Pepijn0.6%0.2%0.9%1.0%10.9%67.00
28Huens Axel0.6%0.3%0.8%2.1%35.5%n/a
29Tronchon Bastien0.6%0.3%0.8%3.0%16.6%126.00
30Rowe Elliot0.5%0.5%0.7%2.0%16.8%301.00

After the race

Result — won by Hagenes Per Strand

PosRiderTeamOwn history win p
1Hagenes Per StrandTeam Visma | Lease a Bike0.8%
2Stuyven JasperSoudal Quick-Step1.9%
3Laporte ChristopheTeam Visma | Lease a Bike2.5%
4Grisel MatysLotto-Intermarché0.3%
5Abrahamsen JonasUno-X Mobility0.1%
6Lapeira PaulDecathlon CMA CGM Team4.3%
7Gruel ThibaudGroupama-FDJ United1.6%
8Askey LewisNSN Cycling Team0.9%
9Sénéchal FlorianAlpecin-Premier Tech0.1%
10Skujins TomsLidl-Trek0.2%

Scoring — probability given to the actual winner

ReadingBlendCascade LambdaRankMarket devig
Own history0.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.