Cycling race predictor · Tour de Luxembourg

Stage 2 — 2026-09-17

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 99 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.37
mountain0.07
hilly0.54
rolling0.01
break0.00
TT0.00
keyed: bunch sprint (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 41.0%; van den Berg Marijn 9.7%; Stuyven Jasper 9.2%; Raccagni Noviero Andrea 8.7%; Gautherat Pierre 7.9%

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) 100% — 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 Tech41.0%n/a––
van den Berg MarijnEF Education-EasyPost9.7%n/a––
Stuyven JasperSoudal Quick-Step9.2%n/a––
Raccagni Noviero AndreaSoudal Quick-Step8.7%n/a––
Gautherat PierreDecathlon CMA CGM Team7.9%n/a––
L'Hote AntoineDecathlon CMA CGM Team2.7%n/a––
Remijn SennaAlpecin-Premier Tech2.1%n/a––
Kockelmann MathieuLuxembourg1.8%n/a––
Nerurkar LukasEF Education-EasyPost1.3%n/a––
Bagioli AndreaLidl-Trek1.1%n/a––
Hindsight (post-hoc) — oracle-matched references — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1van der Poel Mathieu41.0%41.1%40.9%60.7%74.3%n/a
2van den Berg Marijn9.7%11.3%9.2%29.3%62.9%n/a
3Stuyven Jasper9.2%9.0%9.2%26.8%69.6%n/a
4Raccagni Noviero Andrea8.7%5.1%9.5%21.9%66.2%n/a
5Gautherat Pierre7.9%8.6%7.7%28.2%59.0%n/a
6L'Hote Antoine2.7%3.1%2.6%7.3%38.4%n/a
7Remijn Senna2.1%1.1%2.4%3.5%16.0%n/a
8Kockelmann Mathieu1.8%1.6%1.9%6.1%27.1%n/a
9Nerurkar Lukas1.3%1.0%1.4%3.6%36.8%n/a
10Bagioli Andrea1.1%1.7%1.0%7.4%28.9%n/a
11Vezie Maxime1.0%1.3%0.9%3.8%33.7%n/a
12Mariault Axel0.8%1.8%0.6%5.2%46.3%n/a
13Vercher Mattéo0.8%1.6%0.6%6.1%47.5%n/a
14Honore Mikkel0.8%1.6%0.6%4.8%29.3%n/a
15Breuillard Nicolas0.7%0.8%0.7%2.4%32.7%n/a
16Thierry Pierre0.7%1.2%0.6%1.6%11.9%n/a
17Hagenes Per Strand0.6%2.0%0.2%7.3%39.1%n/a
18Paret-Peintre Aurélien0.5%0.2%0.6%2.6%24.7%n/a
19Piganzoli Davide0.5%0.4%0.5%1.1%23.6%n/a
20Reinderink Pepijn0.4%0.1%0.5%1.0%12.4%n/a
21Kragh Andersen Søren0.4%0.3%0.4%2.8%32.7%n/a
22Baroncini Filippo0.4%0.7%0.3%4.0%18.7%n/a
23Agricola Danijel0.4%0.1%0.5%0.9%16.5%n/a
24Politt Nils0.4%0.2%0.4%1.4%9.2%n/a
25Gachignard Thomas0.4%0.2%0.4%0.8%15.1%n/a
26Zemke Jermaine0.3%0.1%0.4%0.6%25.9%n/a
27Thonnon Senne0.3%0.2%0.3%1.0%28.9%n/a
28Rottmann Jonathan Malte0.3%0.1%0.3%0.3%9.5%n/a
29Lozouet Léandre0.3%0.3%0.3%0.7%23.1%n/a
30Kielich Timo0.3%0.2%0.3%0.8%11.1%n/a

After the stage

Results — won by van den Berg Marijn

PosRiderTeamHindsight (post-hoc) win p
1van den Berg MarijnEF Education-EasyPost9.7%
2Kielich TimoTeam Visma | Lease a Bike0.3%
3Gautherat PierreDecathlon CMA CGM Team7.9%
4Stuyven JasperSoudal Quick-Step9.2%
5van der Poel MathieuAlpecin-Premier Tech41.0%
6Bagioli AndreaLidl-Trek1.1%
7Maris EliasTeam Flanders-Baloise0.1%
8Behrens EikeTeam Lotto-Kern Haus Outlet Montabaur0.1%
9Lozouet LéandreCIC Pro Cycling Academy0.3%
10Kockelmann MathieuLuxembourg1.8%

Scenario scoring — probability given to the actual winner

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