Cycling race predictor Β· CRO Race

Stage 3 β€” 2026-09-24

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 118 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.50
mountain0.06
hilly0.15
rolling0.09
break0.20
TT0.00
keyed: bunch sprint 0.5 / survivor gallop 0.3 / split sprint 0.2 (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): Magnier Paul 55.6%; van Poppel Danny 5.7%; Blikra Erlend 4.9%; Molano Sebastian 4.5%; Teutenberg Tim Torn 4.4%

Alt: res_3

The other branch β€” a reduced bunch sprint
sprint0.00
mountain0.29
hilly0.01
rolling0.55
break0.15
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): Magnier Paul 11.6%; Tiberi Antonio 10.5%; van Poppel Danny 8.5%; Zambanini Edoardo 7.7%; Van Wilder Ilan 6.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 100%, Alt: res_3 97% β€” 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
Magnier PaulSoudal Quick-Step55.6%11.6%n/a––
Tiberi AntonioBahrain Victorious0.4%10.5%n/a––
van Poppel DannyRed Bull-BORA-hansgrohe5.7%8.5%n/a––
Zambanini EdoardoBahrain Victorious1.1%7.7%n/a––
Van Wilder IlanSoudal Quick-Step0.1%6.7%n/a––
Boichis AdrienRed Bull-BORA-hansgrohe1.2%5.7%n/a––
Teutenberg Tim TornLidl-Trek4.4%5.4%n/a––
Blikra ErlendUno-X Mobility4.9%0.2%n/a––
Wellens TimUAE Team Emirates-XRG0.2%4.7%n/a––
Molano SebastianUAE Team Emirates-XRG4.5%0.4%n/a––
Kogut OdedNSN Cycling Team4.1%0.2%n/a––
Politt NilsUAE Team Emirates-XRG0.3%4.0%n/a––
Martinez DanielRed Bull-BORA-hansgrohe0.1%2.7%n/a––
Teuns DylanCofidis0.1%2.5%n/a––
Rajovic DusanSolution Tech-NIPPO-Rali2.4%0.1%n/a––
Kulset JohannesUno-X Mobility0.1%2.4%n/a––
Zanoncello EnricoBardiani-CSF 7 Saber2.0%0.2%n/a––
van Dijke MickRed Bull-BORA-hansgrohe0.7%1.8%n/a––
Donati DavideRed Bull-BORA-hansgrohe1.5%0.2%n/a––
Belletta DarioTeam Polti VisitMalta0.6%1.3%n/a––
Darder SergiCaja Rural-Seguros RGA1.2%0.3%n/a––
Oliveira RuiUAE Team Emirates-XRG1.1%0.4%n/a––
Bevort Carl-FrederikUno-X Mobility0.8%1.0%n/a––
The main read β€” the day as the key says it goes β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Magnier Paul55.6%50.2%57.0%64.5%74.3%n/a
2van Poppel Danny5.7%7.0%5.4%22.2%54.1%n/a
3Blikra Erlend4.9%7.8%4.1%22.3%42.9%n/a
4Molano Sebastian4.5%5.2%4.4%16.0%32.9%n/a
5Teutenberg Tim Torn4.4%4.5%4.4%17.9%54.7%n/a
6Kogut Oded4.1%5.4%3.8%18.7%38.7%n/a
7Rajovic Dusan2.4%2.5%2.4%8.9%28.1%n/a
8Zanoncello Enrico2.0%1.3%2.1%6.9%33.7%n/a
9Donati Davide1.5%1.9%1.4%7.6%30.7%n/a
10Boichis Adrien1.2%1.2%1.3%3.7%23.9%n/a
11Darder Sergi1.2%0.8%1.3%4.9%45.2%n/a
12Zambanini Edoardo1.1%0.8%1.2%3.9%30.9%n/a
13Oliveira Rui1.1%1.4%1.0%7.0%36.0%n/a
14Erzen Zak0.8%0.9%0.8%5.5%34.6%n/a
15Bevort Carl-Frederik0.8%0.6%0.8%4.6%38.7%n/a
16van Dijke Mick0.7%0.7%0.7%3.5%25.8%n/a
17Viviani Attilio0.6%0.5%0.6%3.1%22.3%n/a
18Belletta Dario0.6%0.5%0.6%2.1%31.9%n/a
19Molenaar Alex0.5%0.3%0.5%2.3%31.6%n/a
20Theuns Edward0.4%0.2%0.4%2.2%21.7%n/a
21Tiberi Antonio0.4%0.4%0.3%1.5%14.2%n/a
22Skerl Daniel0.3%0.7%0.2%4.2%18.9%n/a
23Politt Nils0.3%0.1%0.3%0.9%10.3%n/a
24Buratti NicolΓ²0.3%0.2%0.3%1.2%22.8%n/a
25MartΓ­n Gotzon0.3%0.2%0.3%1.3%21.9%n/a
26Pedersen Henrik0.2%0.1%0.2%1.4%24.8%n/a
27Wellens Tim0.2%0.1%0.2%0.5%5.3%n/a
28De Longhi Lorenzo0.2%0.3%0.1%1.1%12.0%n/a
29Maestri Mirco0.2%0.0%0.2%0.6%9.6%n/a
30Izquierdo Clement0.1%0.2%0.1%1.4%13.0%n/a
The other branch β€” a reduced bunch sprint β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Magnier Paul11.6%23.9%8.9%37.0%52.1%n/a
2Tiberi Antonio10.5%10.3%10.8%27.0%68.6%n/a
3van Poppel Danny8.5%9.4%8.5%23.5%51.7%n/a
4Zambanini Edoardo7.7%5.4%8.5%17.8%58.0%n/a
5Van Wilder Ilan6.7%5.3%7.2%15.7%50.1%n/a
6Boichis Adrien5.7%3.2%6.5%13.1%41.0%n/a
7Teutenberg Tim Torn5.4%7.0%5.2%19.8%52.5%n/a
8Wellens Tim4.7%3.4%5.1%13.7%50.6%n/a
9Politt Nils4.0%1.9%4.7%8.8%40.8%n/a
10Martinez Daniel2.7%3.2%2.7%13.7%40.3%n/a
11Teuns Dylan2.5%1.7%2.8%6.4%36.7%n/a
12Kulset Johannes2.4%1.7%2.6%7.0%40.2%n/a
13van Dijke Mick1.8%1.8%1.8%7.2%31.7%n/a
14Belletta Dario1.3%0.5%1.5%2.7%32.0%n/a
15Bevort Carl-Frederik1.0%1.0%1.1%3.5%28.2%n/a
16Tolio Alex0.9%0.3%1.1%1.8%28.1%n/a
17Molenaar Alex0.9%0.9%0.9%3.9%31.2%n/a
18Fabbro Matteo0.8%0.3%1.0%1.3%21.1%n/a
19Balmer Alexandre0.8%0.8%0.9%2.9%25.1%n/a
20Maisonobe Sam0.8%0.6%0.8%2.1%19.9%n/a
21Pedersen Henrik0.7%0.9%0.7%3.9%32.4%n/a
22Agirre Jon0.7%0.3%0.8%1.9%28.9%n/a
23Izquierdo Clement0.6%0.9%0.6%3.9%23.8%n/a
24MuΓ±oz Francisco0.5%0.3%0.6%2.0%24.1%n/a
25Pesenti Thomas0.5%0.2%0.6%1.7%22.1%n/a
26Sorarrain Gorka0.5%0.2%0.6%1.4%19.6%n/a
27MartΓ­n Gotzon0.5%0.2%0.6%1.5%20.6%n/a
28Cras Steff0.5%0.4%0.5%2.3%16.1%n/a
29Bagatin Christian0.5%0.4%0.5%0.9%13.9%n/a
30Bonneu Kamiel0.5%0.2%0.5%1.5%30.6%n/a

After the stage

Results β€” won by Svarre Tobias

PosRiderTeamMain read win pAlt: res_3 win p
1Svarre TobiasUno-X Mobility0.0%0.1%
2Tiberi AntonioBahrain Victorious0.4%10.5%
3Wellens TimUAE Team Emirates-XRG0.2%4.7%
4Boichis AdrienRed Bull-BORA-hansgrohe1.2%5.7%
5Maisonobe SamCofidis0.1%0.8%
6Herzog EmilRed Bull-BORA-hansgrohe0.0%0.3%
7Kulset JohannesUno-X Mobility0.1%2.4%
8Teuns DylanCofidis0.1%2.5%
9Cras SteffSoudal Quick-Step0.0%0.5%
10Zambanini EdoardoBahrain Victorious1.1%7.7%

Scenario scoring β€” probability given to the actual winner

ScenarioBlend win pBook devig
Main read0.02%–
Alt: res_30.11%–