Cycling race predictor Β· Tour of Taihu Lake

Stage 2 β€” 2026-09-13

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 118 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
sprint1.00
mountain0.00
hilly0.00
rolling0.00
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): Rajovic Dusan 30.1%; Malucelli Matteo 19.5%; Salby Alexander 9.2%; Munoz Hodei 5.2%; Hennequin Paul 4.3%

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) 107% β€” 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
Rajovic DusanSOLUTION TECH NIPPO RALI30.1%n/a––
Malucelli MatteoXDS ASTANA TEAM19.5%n/a––
Salby AlexanderLI NING STAR9.2%n/a––
Munoz HodeiEUSKALTEL-EUSKADI5.2%n/a––
Hennequin PaulEUSKALTEL-EUSKADI4.3%n/a––
Walsh LiamCCACHE X BODYWRAP4.0%n/a––
Oosterlinck JoesVAN RYSEL ROUBAIX3.8%n/a––
Barbier PierreTERENGGANU CYCLING TEAM3.8%n/a––
Pita CristianROOJAI INSURANCE WINSPACE2.9%n/a––
Rasch JesperCHINA ANTA - MENTECH CYCLING TEAM2.5%n/a––
Scott CameronLI NING STAR2.2%n/a––
Finkst TilenSOLUTION TECH NIPPO RALI1.6%n/a––
Shnyrko AliakseiLI NING STAR1.4%n/a––
Wang GustavXDS ASTANA DEVELOPMENT TEAM1.2%n/a––
Syritsa GlebXDS ASTANA TEAM1.1%n/a––
Hamdan Wan Abdul RahmanTERENGGANU CYCLING TEAM1.1%n/a––
Hindsight (post-hoc) β€” oracle-matched references β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Rajovic Dusan30.1%36.4%26.5%56.0%83.5%n/a
2Malucelli Matteo19.5%14.7%19.4%47.9%81.2%n/a
3Salby Alexander9.2%12.5%7.7%28.7%67.6%n/a
4Munoz Hodei5.2%8.1%4.1%24.1%74.6%n/a
5Hennequin Paul4.3%4.1%4.1%18.2%68.9%n/a
6Walsh Liam4.0%4.5%3.7%15.3%57.4%n/a
7Oosterlinck Joes3.8%1.9%4.0%6.2%51.7%n/a
8Barbier Pierre3.8%5.5%3.1%15.9%63.9%n/a
9Pita Cristian2.9%1.4%3.0%6.3%47.9%n/a
10Rasch Jesper2.5%2.2%2.4%7.1%46.1%n/a
11Scott Cameron2.2%1.7%2.2%9.1%55.3%n/a
12Finkst Tilen1.6%1.0%1.7%4.6%44.6%n/a
13Shnyrko Aliaksei1.4%1.1%1.4%4.5%31.1%n/a
14Wang Gustav1.2%0.2%1.4%1.4%22.3%n/a
15Syritsa Gleb1.1%1.5%1.0%8.5%43.6%n/a
16Hamdan Wan Abdul Rahman1.1%1.0%1.0%3.4%22.5%n/a
17Bradac Adam0.9%1.2%0.8%7.9%49.4%n/a
18Rysbay Dias0.9%1.3%0.8%3.0%30.0%n/a
19Konychev Alexander0.9%0.4%1.0%2.1%50.3%n/a
20Phonarjthan Patompob0.9%1.1%0.7%2.2%24.2%n/a
21Da Silva Tiano0.6%0.4%0.6%2.2%46.0%n/a
22Sydor Serhii0.6%0.2%0.6%2.9%32.4%n/a
23Isasa Xabier0.5%0.1%0.6%1.5%21.6%n/a
24Verburg Luke0.5%0.2%0.5%2.7%35.5%n/a
25Lopez Jordi0.5%0.2%0.5%1.9%18.9%n/a
26Nencini Tommaso0.4%0.1%0.5%2.0%38.4%n/a
27RΓ€im Mihkel0.4%0.3%0.5%1.1%21.5%n/a
28Vahtra Norman0.4%0.2%0.5%1.1%32.6%n/a
29Ugarte Gari0.4%0.2%0.4%0.8%26.9%n/a
30Rota Rus Raul0.4%0.2%0.4%1.4%31.3%n/a

After the stage

Results β€” won by Malucelli Matteo

PosRiderTeamHindsight (post-hoc) win p
1Malucelli MatteoXDS ASTANA TEAM19.5%
2Salby AlexanderLI NING STAR9.2%
3Syritsa GlebXDS ASTANA TEAM1.1%
4Rajovic DusanSOLUTION TECH NIPPO RALI30.1%
5Giddings JoshuaLOTTO INTERMARCHÉ0.1%
6Oosterlinck JoesVAN RYSEL ROUBAIX3.8%
7Hennequin PaulEUSKALTEL-EUSKADI4.3%
8Rasch JesperCHINA ANTA - MENTECH CYCLING TEAM2.5%
9Barbier PierreTERENGGANU CYCLING TEAM3.8%
10Bradac AdamFACTOR RACING0.9%

1 rider in the top 15 is shown under a provisional identity pending reconciliation: PITA BOLAΓ‘OS Alexander.

Scenario scoring β€” probability given to the actual winner

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