Cycling race predictor Β· Tour of Taihu Lake

Stage 3 β€” 2026-09-14

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.9%; Malucelli Matteo 20.9%; Salby Alexander 9.4%; Munoz Hodei 5.0%; Oosterlinck Joes 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) 111% β€” 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.9%n/a––
Malucelli MatteoXDS ASTANA TEAM20.9%n/a––
Salby AlexanderLI NING STAR9.4%n/a––
Munoz HodeiEUSKALTEL-EUSKADI5.0%n/a––
Oosterlinck JoesVAN RYSEL ROUBAIX4.6%n/a––
Hennequin PaulEUSKALTEL-EUSKADI4.5%n/a––
Barbier PierreTERENGGANU CYCLING TEAM4.2%n/a––
Walsh LiamCCACHE X BODYWRAP3.9%n/a––
Pita CristianROOJAI INSURANCE WINSPACE2.8%n/a––
Rasch JesperCHINA ANTA - MENTECH CYCLING TEAM2.6%n/a––
Scott CameronLI NING STAR2.1%n/a––
Finkst TilenSOLUTION TECH NIPPO RALI1.6%n/a––
Shnyrko AliakseiLI NING STAR1.4%n/a––
Syritsa GlebXDS ASTANA TEAM1.3%n/a––
Hamdan Wan Abdul RahmanTERENGGANU CYCLING TEAM1.3%n/a––
Wang GustavXDS ASTANA DEVELOPMENT TEAM1.2%n/a––
Bradac AdamFACTOR RACING1.1%n/a––
Hindsight (post-hoc) β€” oracle-matched references β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Rajovic Dusan30.9%36.4%26.4%57.6%85.4%n/a
2Malucelli Matteo20.9%16.2%20.0%48.8%82.7%n/a
3Salby Alexander9.4%11.7%7.8%29.6%70.6%n/a
4Munoz Hodei5.0%7.3%3.9%22.6%72.8%n/a
5Oosterlinck Joes4.6%2.9%4.6%8.7%60.7%n/a
6Hennequin Paul4.5%4.2%4.1%19.3%72.2%n/a
7Barbier Pierre4.2%6.4%3.2%19.4%69.0%n/a
8Walsh Liam3.9%4.9%3.3%15.4%60.7%n/a
9Pita Cristian2.8%1.4%2.9%7.0%51.4%n/a
10Rasch Jesper2.6%2.9%2.3%8.9%54.5%n/a
11Scott Cameron2.1%1.5%2.1%7.9%55.5%n/a
12Finkst Tilen1.6%1.1%1.6%4.8%47.3%n/a
13Shnyrko Aliaksei1.4%1.0%1.4%4.9%31.4%n/a
14Syritsa Gleb1.3%2.5%0.9%10.6%48.9%n/a
15Hamdan Wan Abdul Rahman1.3%1.1%1.2%4.3%24.3%n/a
16Wang Gustav1.2%0.2%1.3%1.3%20.7%n/a
17Bradac Adam1.1%1.9%0.8%9.5%55.5%n/a
18Konychev Alexander0.9%0.3%0.9%1.8%37.0%n/a
19Rysbay Dias0.8%0.7%0.8%2.3%30.3%n/a
20Phonarjthan Patompob0.8%1.1%0.6%2.0%22.7%n/a
21Da Silva Tiano0.6%0.5%0.5%2.4%46.1%n/a
22Sydor Serhii0.6%0.3%0.6%3.0%36.2%n/a
23Verburg Luke0.5%0.2%0.5%2.3%29.8%n/a
24Isasa Xabier0.5%0.1%0.5%1.5%20.1%n/a
25RΓ€im Mihkel0.5%0.3%0.5%1.2%27.6%n/a
26Nencini Tommaso0.4%0.1%0.5%3.6%40.2%n/a
27Lopez Jordi0.4%0.2%0.5%2.2%19.0%n/a
28Vahtra Norman0.4%0.2%0.5%1.0%32.6%n/a
29Ugarte Gari0.4%0.2%0.4%0.8%21.9%n/a
30Yelyubayev Ruslan0.4%0.1%0.4%0.7%12.2%n/a

After the stage

Results β€” won by Malucelli Matteo

PosRiderTeamHindsight (post-hoc) win p
1Malucelli MatteoXDS ASTANA TEAM20.9%
2Syritsa GlebXDS ASTANA TEAM1.3%
3Wang RuidongLI NING STAR0.2%
4Giddings JoshuaLOTTO INTERMARCHÉ0.2%
5Rasch JesperCHINA ANTA - MENTECH CYCLING TEAM2.6%
6Scott CameronLI NING STAR2.1%
7Munoz HodeiEUSKALTEL-EUSKADI5.0%
8Oosterlinck JoesVAN RYSEL ROUBAIX4.6%
9Rajovic DusanSOLUTION TECH NIPPO RALI30.9%
10Salby AlexanderLI NING STAR9.4%

Scenario scoring β€” probability given to the actual winner

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