Cycling race predictor · Tour de Luxembourg

Stage 3 — 2026-09-18

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.00
mountain0.27
hilly0.00
rolling0.73
break0.00
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 24.6%; Piganzoli Davide 17.9%; L'Hote Antoine 9.3%; Arrieta Igor 6.5%; Bagioli Andrea 4.8%

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) 115% — 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 Tech24.6%n/a––
Piganzoli DavideTeam Visma | Lease a Bike17.9%n/a––
L'Hote AntoineDecathlon CMA CGM Team9.3%n/a––
Arrieta IgorUAE Team Emirates-XRG6.5%n/a––
Bagioli AndreaLidl-Trek4.8%n/a––
Pericas AdriaUAE Team Emirates-XRG4.2%n/a––
Paret-Peintre AurélienDecathlon CMA CGM Team4.1%n/a––
Nerurkar LukasEF Education-EasyPost3.9%n/a––
Breuillard NicolasTeam TotalEnergies3.6%n/a––
Raccagni Noviero AndreaSoudal Quick-Step3.6%n/a––
Stuyven JasperSoudal Quick-Step3.1%n/a––
Mariault AxelCIC Pro Cycling Academy2.5%n/a––
Vercher MattéoTeam TotalEnergies2.0%n/a––
Honore MikkelEF Education-EasyPost1.7%n/a––
Politt NilsUAE Team Emirates-XRG1.7%n/a––
Gachignard ThomasTeam TotalEnergies1.6%n/a––
Kragh Andersen SørenLidl-Trek1.6%n/a––
Hagenes Per StrandTeam Visma | Lease a Bike1.6%n/a––
Gautherat PierreDecathlon CMA CGM Team1.5%n/a––
Graat TijmenTeam Visma | Lease a Bike1.4%n/a––
Mollema BaukeLidl-Trek1.3%n/a––
van den Berg MarijnEF Education-EasyPost1.1%n/a––
Thierry PierreTeam TotalEnergies1.1%n/a––
Hindsight (post-hoc) — oracle-matched references — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1van der Poel Mathieu24.6%35.9%18.5%55.3%76.3%n/a
2Piganzoli Davide17.9%15.3%16.1%32.7%78.5%n/a
3L'Hote Antoine9.3%4.6%9.3%12.6%45.2%n/a
4Arrieta Igor6.5%5.9%5.8%21.4%74.9%n/a
5Bagioli Andrea4.8%4.6%4.2%17.1%48.5%n/a
6Pericas Adria4.2%3.7%3.8%14.9%60.3%n/a
7Paret-Peintre Aurélien4.1%2.9%3.8%12.6%56.9%n/a
8Nerurkar Lukas3.9%1.6%4.0%6.8%41.7%n/a
9Breuillard Nicolas3.6%2.6%3.4%10.9%59.7%n/a
10Raccagni Noviero Andrea3.6%2.3%3.4%9.1%48.2%n/a
11Stuyven Jasper3.1%3.1%2.6%14.0%56.5%n/a
12Mariault Axel2.5%1.8%2.3%7.7%58.2%n/a
13Vercher Mattéo2.0%1.8%1.7%8.4%54.5%n/a
14Honore Mikkel1.7%2.1%1.4%7.4%38.3%n/a
15Politt Nils1.7%0.7%1.7%3.2%30.8%n/a
16Gachignard Thomas1.6%1.6%1.4%6.9%50.4%n/a
17Kragh Andersen Søren1.6%2.2%1.3%7.6%40.2%n/a
18Hagenes Per Strand1.6%2.9%1.0%10.6%49.1%n/a
19Gautherat Pierre1.5%3.2%0.8%9.1%38.3%n/a
20Graat Tijmen1.4%1.1%1.3%5.9%55.5%n/a
21Mollema Bauke1.3%1.2%1.2%2.7%10.1%n/a
22van den Berg Marijn1.1%1.0%0.9%3.9%26.9%n/a
23Thierry Pierre1.1%0.6%1.0%3.3%23.9%n/a
24Silva Pedro0.9%1.4%0.7%3.0%17.0%n/a
25Thonnon Senne0.8%0.6%0.7%3.0%41.9%n/a
26Baroncini Filippo0.7%1.8%0.4%4.0%17.6%n/a
27Oomen Sam0.7%0.6%0.6%1.7%22.4%n/a
28Reinderink Pepijn0.7%0.9%0.6%3.0%17.5%n/a
29Remijn Senna0.5%0.3%0.5%0.9%8.7%n/a
30Domínguez David0.5%0.6%0.4%1.8%24.6%n/a

After the stage

Results — won by Reinderink Pepijn

PosRiderTeamHindsight (post-hoc) win p
1Reinderink PepijnSoudal Quick-Step0.7%
2Piganzoli DavideTeam Visma | Lease a Bike17.9%
3Gachignard ThomasTeam TotalEnergies1.6%
4Vercher MattéoTeam TotalEnergies2.0%
5Arrieta IgorUAE Team Emirates-XRG6.5%
6Oomen SamLidl-Trek0.7%
7Behrens EikeTeam Lotto-Kern Haus Outlet Montabaur0.0%
8Paret-Peintre AurélienDecathlon CMA CGM Team4.1%
9Graat TijmenTeam Visma | Lease a Bike1.4%
10Nerurkar LukasEF Education-EasyPost3.9%

Scenario scoring — probability given to the actual winner

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