Cycling race predictor · Tour of Huangshan

Stage 3 — 2026-09-20

The same production stack priced under 2 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.

2 scenarios 80 riders priced models retrained 75c6e7af51 book snapshot no capture

The fork

2 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.

Main read

The main read — the day as the key says it goes
sprint0.65
mountain0.01
hilly0.18
rolling0.05
break0.11
TT0.00
keyed: bunch sprint 0.6 / survivor gallop 0.2 / GC day 0.1 (written by the automated reader, not by a person) (board order by rider-type retrieval; prices unchanged)
The main board. It inherits the config-root day key and is priced on the reference set that key selects.
Top 5 (blend): Scott Cameron 25.4%; Munoz Hodei 21.2%; Rasch Jesper 13.0%; Cavia Daniel 9.5%; Ugarte Gari 3.7%

Alt: res_3

The other branch — a reduced bunch sprint
sprint0.02
mountain0.12
hilly0.08
rolling0.21
break0.56
TT0.00
keyed: survivor gallop (written by the automated reader, not by a person) (board order by rider-type retrieval; prices unchanged)
The alternate branch, chosen by the driver because the day key carries weight in a second family (a sprint off a hard finale). It is priced as if that shape were certain, so the two boards bracket the read.
Top 5 (blend): Cavia Daniel 14.8%; Munoz Hodei 8.2%; Mudgway Luke 6.6%; Quartucci Lorenzo 4.1%; Ugarte Gari 3.7%

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 Main read 92%, Alt: res_3 79% — 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.

RiderTeamMain readAlt: res_3Book oddsBook devigMax edge
Scott CameronLi Ning Star25.4%2.8%n/a––
Munoz HodeiEuskaltel-Euskadi21.2%8.2%n/a––
Cavia DanielBurgos Burpellet BH9.5%14.8%n/a––
Rasch JesperChina Anta - Mentech CT13.0%1.3%n/a––
Mudgway LukeLi Ning Star1.5%6.6%n/a––
Quartucci LorenzoBurgos Burpellet BH0.5%4.1%n/a––
Ugarte GariEuskaltel-Euskadi3.7%3.7%n/a––
Hopkins DylanRoojai Insurance Winspace0.4%3.1%n/a––
Rikunov PetrWheeltop Rotor Chengdu Team1.2%3.0%n/a––
Stepanov AndreiWheeltop Rotor Chengdu Team0.3%3.0%n/a––
Lopez JordiEuskaltel-Euskadi1.1%2.9%n/a––
Álvarez RodrigoBurgos Burpellet BH2.3%1.8%n/a––
Boúglas GeorgiosBurgos Burpellet BH2.0%0.4%n/a––
Sepulveda EduardoLi Ning Star0.1%2.0%n/a––
Meijers JeroenVictoria Sports Pro Cycling0.4%2.0%n/a––
Bregnhøj MathiasTerengganu Cycling Team0.1%1.8%n/a––
Sydor SerhiiHuansheng - Vonoa - Taishan Sport Team1.3%0.5%n/a––
Küüt OskarQuick Pro Team0.1%1.2%n/a––
Raileanu CristianLi Ning Star0.1%1.1%n/a––
Kminek VojtechBurgos Burpellet BH1.1%0.2%n/a––
Pronskiy VadimTerengganu Cycling Team0.1%1.1%n/a––
Verburg LukeAzerion / Villa Valkenburg1.0%0.3%n/a––
The main read — the day as the key says it goes — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Scott Cameron25.4%24.0%28.0%44.2%74.0%n/a
2Munoz Hodei21.2%22.4%22.7%48.6%86.2%n/a
3Rasch Jesper13.0%10.5%14.7%29.1%65.0%n/a
4Cavia Daniel9.5%7.5%10.9%34.5%79.1%n/a
5Ugarte Gari3.7%2.8%4.2%11.8%62.5%n/a
6Álvarez Rodrigo2.3%2.0%2.6%11.0%64.8%n/a
7Boúglas Georgios2.0%3.0%2.0%7.6%31.6%n/a
8Mudgway Luke1.5%1.8%1.6%8.3%50.6%n/a
9Sydor Serhii1.3%0.6%1.5%5.2%38.0%n/a
10Rikunov Petr1.2%2.9%0.8%11.6%57.2%n/a
11Kminek Vojtech1.1%1.6%1.1%4.6%34.5%n/a
12Lopez Jordi1.1%1.1%1.2%4.0%41.2%n/a
13Verburg Luke1.0%1.5%1.0%4.9%41.5%n/a
14Da Silva Tiano0.9%1.0%1.0%3.9%36.8%n/a
15Isasa Xabier0.8%1.8%0.6%6.0%36.2%n/a
16Forbes James0.5%1.0%0.4%3.6%24.0%n/a
17Quartucci Lorenzo0.5%0.2%0.5%3.3%25.0%n/a
18Labib Shotorban Ali0.4%1.3%0.3%5.1%31.7%n/a
19Hopkins Dylan0.4%0.3%0.5%1.8%21.5%n/a
20Meijers Jeroen0.4%0.3%0.4%2.0%47.0%n/a
21Stepanov Andrei0.3%0.2%0.4%1.0%20.6%n/a
22Yang Mingsen0.2%0.0%0.3%1.1%33.8%n/a
23Miltiadis Andreas0.2%0.9%0.1%1.5%6.3%n/a
24Iderbold Bold0.2%0.2%0.2%1.1%17.8%n/a
25Tamm Lauri0.2%0.1%0.2%1.3%15.0%n/a
26Vandenbulcke Alex0.2%0.1%0.2%0.5%19.6%n/a
27Rizqi Dimas Nur Fadhil0.1%0.1%0.2%0.7%11.7%n/a
28Pronskiy Vadim0.1%0.1%0.2%0.9%15.6%n/a
29Rosli Aiman0.1%0.3%0.1%0.8%10.3%n/a
30Desriac Loïc0.1%0.1%0.1%0.3%12.7%n/a
The other branch — a reduced bunch sprint — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Cavia Daniel14.8%13.6%19.0%35.7%72.2%n/a
2Munoz Hodei8.2%11.9%9.5%29.4%64.6%n/a
3Mudgway Luke6.6%5.5%8.6%21.6%72.0%n/a
4Quartucci Lorenzo4.1%3.0%5.5%14.8%60.8%n/a
5Ugarte Gari3.7%2.9%4.9%13.2%54.3%n/a
6Hopkins Dylan3.1%3.9%3.7%11.7%45.8%n/a
7Rikunov Petr3.0%3.5%3.6%15.3%63.9%n/a
8Stepanov Andrei3.0%3.1%3.7%10.5%55.3%n/a
9Lopez Jordi2.9%3.1%3.6%9.3%50.8%n/a
10Scott Cameron2.8%3.7%3.4%8.8%23.3%n/a
11Sepulveda Eduardo2.0%2.3%2.5%20.4%60.3%n/a
12Meijers Jeroen2.0%2.2%2.5%11.4%63.5%n/a
13Álvarez Rodrigo1.8%2.1%2.2%9.9%50.1%n/a
14Bregnhøj Mathias1.8%1.7%2.2%4.7%47.6%n/a
15Rasch Jesper1.3%2.1%1.4%6.9%19.0%n/a
16Küüt Oskar1.2%3.1%1.1%9.0%49.7%n/a
17Raileanu Cristian1.1%0.5%1.6%2.8%35.5%n/a
18Pronskiy Vadim1.1%0.5%1.5%2.1%20.2%n/a
19Bettles Carter0.9%0.8%1.1%3.4%26.8%n/a
20Miltiadis Andreas0.8%0.9%1.0%2.6%9.8%n/a
21Caicedo Jonathan0.8%0.9%0.9%2.3%28.9%n/a
22Desriac Loïc0.7%0.7%0.9%1.5%27.5%n/a
23Whitehouse Daniel0.7%0.5%0.9%3.4%27.9%n/a
24Yang Mingsen0.6%0.1%0.9%2.3%40.4%n/a
25Isasa Xabier0.6%0.3%0.9%1.4%28.1%n/a
26Aguirre Hernan0.6%0.2%0.9%1.1%24.7%n/a
27Callejas Alejandro0.6%0.3%0.8%0.9%25.4%n/a
28Iderbold Bold0.6%0.9%0.7%2.6%26.3%n/a
29Rizqi Dimas Nur Fadhil0.6%0.3%0.8%2.0%22.9%n/a
30Tamm Lauri0.5%0.5%0.6%2.0%24.4%n/a

After the stage

Results — won by Mudgway Luke

PosRiderTeamMain read win pAlt: res_3 win p
1Mudgway LukeLI NING STAR1.5%6.6%
2Tamm LauriCHINA ANTA - MENTECH CYCLING TEAM0.2%0.5%
3Sydor SerhiiHUANSHENG-VONOA-TAISHAN SPORT TEAM1.3%0.5%
4Cavia DanielBURGOS-BURPELLET-BH9.5%14.8%
5Munoz HodeiEUSKALTEL-EUSKADI21.2%8.2%
6Rikunov PetrWHEELTOP ROTOR CHENGDU TEAM1.2%3.0%
7Álvarez RodrigoBURGOS-BURPELLET-BH2.3%1.8%
8HAYDON-SMITH RohanST GEORGE CONTINENTAL CYCLING TEAM––
9Stepanov AndreiWHEELTOP ROTOR CHENGDU TEAM0.3%3.0%
10GRÖMMEL RensAZERION / VILLA VALKENBURG––

2 riders in the top 15 are shown under a provisional identity pending reconciliation: HAYDON-SMITH Rohan, GRÖMMEL Rens.

Scenario scoring — probability given to the actual winner

ScenarioBlend win pBook devig
Main read1.52%–
Alt: res_36.60%–