Cycling race predictor Β· Tour de Luxembourg

Stage 1 β€” 2026-09-16

The same production stack priced under 1 course readings, against the bookmaker's pre-stage line. Each scenario is one opinion about what kind of day this is; the results section settles the argument.

1 scenarios 100 riders priced models retrained d911de60f7 book snapshot no capture

The fork

1 readings of the same road

Course profile is an input the model can't see from a map β€” it's set from reference races (or overridden by hand). Different readings redistribute the same probability mass across rider types.

Hindsight (post-hoc)

Hindsight (post-hoc) β€” oracle-matched references
sprint0.00
mountain0.47
hilly0.00
rolling0.52
break0.01
TT0.00
keyed: hard puncheur day (board order by rider-type retrieval; prices unchanged)
RETROSPECTIVE ONLY β€” no pre-race prediction was made. This board uses the settled result as the oracle and the nearest historical realized race shapes. It is corpus completion, not evidence of forecasting skill.
Top 5 (blend): van der Poel Mathieu 22.3%; L'Hote Antoine 11.9%; Stuyven Jasper 8.4%; Raccagni Noviero Andrea 6.7%; Bagioli Andrea 4.6%

The board

Win probabilities, scenario by scenario

Blend win probability per scenario (cascade Γ— LambdaRank, DNF-adjusted at the pricing layer), next to the devigged Kambi (Unibet) win line captured the morning before the stage. "Max edge" compares the most favourable scenario against the book β€” treat it as scenario-conditional, not a free bet.

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 Hindsight (post-hoc) 103% β€” while the devigged book column sums to exactly 100%. Putting the two side by side flatters the model, and Max edge is inflated by about that factor: divide a rider's probability by his reading's total before calling anything an edge. Of our heads only the LambdaRank one is natively book-preserving.

RiderTeamHindsight (post-hoc)Book oddsBook devigMax edge
van der Poel MathieuAlpecin-Premier Tech22.3%n/a––
L'Hote AntoineDecathlon CMA CGM Team11.9%n/a––
Stuyven JasperSoudal Quick-Step8.4%n/a––
Raccagni Noviero AndreaSoudal Quick-Step6.7%n/a––
Bagioli AndreaLidl-Trek4.6%n/a––
Piganzoli DavideTeam Visma | Lease a Bike3.4%n/a––
Arrieta IgorUAE Team Emirates-XRG3.3%n/a––
van den Berg MarijnEF Education-EasyPost3.0%n/a––
Nerurkar LukasEF Education-EasyPost2.7%n/a––
Paret-Peintre AurΓ©lienDecathlon CMA CGM Team2.6%n/a––
Politt NilsUAE Team Emirates-XRG2.5%n/a––
Breuillard NicolasTeam TotalEnergies2.4%n/a––
Honore MikkelEF Education-EasyPost2.2%n/a––
Vercher MattΓ©oTeam TotalEnergies1.9%n/a––
Pericas AdriaUAE Team Emirates-XRG1.8%n/a––
Mariault AxelCIC Pro Cycling Academy1.8%n/a––
Thierry PierreTeam TotalEnergies1.6%n/a––
Gachignard ThomasTeam TotalEnergies1.5%n/a––
Gautherat PierreDecathlon CMA CGM Team1.4%n/a––
Graat TijmenTeam Visma | Lease a Bike1.3%n/a––
Thonnon SenneTeam Flanders-Baloise1.2%n/a––
Mollema BaukeLidl-Trek1.1%n/a––
Silva PedroFeira dos SofΓ‘s - Boavista1.0%n/a––
Hindsight (post-hoc) β€” oracle-matched references β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1van der Poel Mathieu22.3%31.9%19.4%51.0%72.6%n/a
2L'Hote Antoine11.9%10.2%12.0%23.7%61.1%n/a
3Stuyven Jasper8.4%5.2%9.0%21.6%63.7%n/a
4Raccagni Noviero Andrea6.7%4.5%7.1%16.2%53.7%n/a
5Bagioli Andrea4.6%4.6%4.5%17.3%49.0%n/a
6Piganzoli Davide3.4%2.0%3.6%6.4%42.2%n/a
7Arrieta Igor3.3%2.3%3.5%8.0%48.7%n/a
8van den Berg Marijn3.0%2.4%3.0%8.4%40.6%n/a
9Nerurkar Lukas2.7%1.8%2.9%7.0%47.0%n/a
10Paret-Peintre AurΓ©lien2.6%2.1%2.7%7.9%41.6%n/a
11Politt Nils2.5%2.9%2.3%10.9%41.1%n/a
12Breuillard Nicolas2.4%2.2%2.5%6.3%31.2%n/a
13Honore Mikkel2.2%3.1%2.0%9.8%40.0%n/a
14Vercher MattΓ©o1.9%2.2%1.7%8.6%42.9%n/a
15Pericas Adria1.8%1.8%1.8%6.7%31.5%n/a
16Mariault Axel1.8%2.4%1.6%6.4%42.6%n/a
17Thierry Pierre1.6%1.6%1.6%5.7%33.9%n/a
18Gachignard Thomas1.5%1.2%1.5%5.3%32.9%n/a
19Gautherat Pierre1.4%2.3%1.1%6.5%24.0%n/a
20Graat Tijmen1.3%0.5%1.4%1.8%26.1%n/a
21Thonnon Senne1.2%0.4%1.4%1.9%27.7%n/a
22Mollema Bauke1.1%0.8%1.1%3.5%18.3%n/a
23Silva Pedro1.0%1.9%0.8%4.4%38.0%n/a
24Remijn Senna1.0%1.4%0.9%4.2%32.3%n/a
25Hagenes Per Strand1.0%2.3%0.6%6.4%32.1%n/a
26Kragh Andersen SΓΈren0.9%0.5%0.9%2.5%18.0%n/a
27Oomen Sam0.6%0.6%0.6%1.9%13.0%n/a
28DomΓ­nguez David0.6%0.7%0.6%5.6%25.6%n/a
29Verstrynge Emiel0.5%0.2%0.6%0.8%9.5%n/a
30Ramsay Noah0.5%0.4%0.6%2.5%15.6%n/a

After the stage

Results β€” won by van der Poel Mathieu

PosRiderTeamHindsight (post-hoc) win p
1van der Poel MathieuAlpecin-Premier Tech22.3%
2Gautherat PierreDecathlon CMA CGM Team1.4%
3van den Berg MarijnEF Education-EasyPost3.0%
4Hagenes Per StrandTeam Visma | Lease a Bike1.0%
5Stuyven JasperSoudal Quick-Step8.4%
6Mariault AxelCIC Pro Cycling Academy1.8%
7Raccagni Noviero AndreaSoudal Quick-Step6.7%
8Vercher MattΓ©oTeam TotalEnergies1.9%
9Breuillard NicolasTeam TotalEnergies2.4%
10Piganzoli DavideTeam Visma | Lease a Bike3.4%

Scenario scoring β€” probability given to the actual winner

ScenarioBlend win pBook devig
Hindsight (post-hoc)22.34%–