Cycling race predictor Β· CRO Race

Stage 1 β€” 2026-09-22

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.49
mountain0.02
hilly0.21
rolling0.02
break0.06
TT0.20
keyed: bunch sprint 0.6 / survivor gallop 0.2 / split sprint 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): Magnier Paul 64.8%; Kogut Oded 6.6%; Blikra Erlend 5.9%; Molano Sebastian 5.5%; van Poppel Danny 5.3%

Alt: res_3

The other branch β€” a reduced bunch sprint
sprint0.00
mountain0.18
hilly0.00
rolling0.71
break0.10
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 15.8%; Tiberi Antonio 11.6%; Van Wilder Ilan 8.7%; Zambanini Edoardo 6.7%; van Poppel Danny 6.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 Main read 115%, Alt: res_3 99% β€” 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-Step64.8%15.8%n/a––
Tiberi AntonioBahrain Victorious0.3%11.6%n/a––
Van Wilder IlanSoudal Quick-Step0.1%8.7%n/a––
Zambanini EdoardoBahrain Victorious0.7%6.7%n/a––
van Poppel DannyRed Bull-BORA-hansgrohe5.3%6.6%n/a––
Kogut OdedNSN Cycling Team6.6%0.3%n/a––
Wellens TimUAE Team Emirates-XRG0.1%6.1%n/a––
Blikra ErlendUno-X Mobility5.9%0.3%n/a––
Boichis AdrienRed Bull-BORA-hansgrohe1.1%5.6%n/a––
Molano SebastianUAE Team Emirates-XRG5.5%0.4%n/a––
Teutenberg Tim TornLidl-Trek4.4%4.4%n/a––
Rajovic DusanSolution Tech-NIPPO-Rali4.2%0.1%n/a––
Kulset JohannesUno-X Mobility0.1%3.1%n/a––
Politt NilsUAE Team Emirates-XRG0.3%3.1%n/a––
Martinez DanielRed Bull-BORA-hansgrohe0.1%3.0%n/a––
Donati DavideRed Bull-BORA-hansgrohe2.8%0.3%n/a––
Teuns DylanCofidis0.1%2.1%n/a––
van Dijke MickRed Bull-BORA-hansgrohe0.7%1.7%n/a––
Zanoncello EnricoBardiani-CSF 7 Saber1.5%0.2%n/a––
Oliveira RuiUAE Team Emirates-XRG1.4%0.6%n/a––
Belletta DarioTeam Polti VisitMalta0.3%1.1%n/a––
The main read β€” the day as the key says it goes β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Magnier Paul64.8%59.7%57.7%74.6%84.6%n/a
2Kogut Oded6.6%6.9%5.7%25.4%56.8%n/a
3Blikra Erlend5.9%8.4%4.5%26.6%58.1%n/a
4Molano Sebastian5.5%6.5%4.5%19.8%48.4%n/a
5van Poppel Danny5.3%5.7%4.5%19.3%59.9%n/a
6Teutenberg Tim Torn4.4%4.0%3.9%16.4%57.1%n/a
7Rajovic Dusan4.2%5.0%3.4%16.1%45.9%n/a
8Donati Davide2.8%2.9%2.4%11.2%48.5%n/a
9Zanoncello Enrico1.5%0.9%1.4%6.0%40.1%n/a
10Oliveira Rui1.4%1.3%1.2%6.2%38.0%n/a
11Boichis Adrien1.1%1.7%0.8%8.3%27.8%n/a
12Darder Sergi0.9%0.7%0.8%3.8%48.3%n/a
13Bevort Carl-Frederik0.9%0.9%0.8%3.4%37.0%n/a
14Erzen Zak0.8%0.8%0.7%4.6%41.0%n/a
15Zambanini Edoardo0.7%0.3%0.7%5.6%31.9%n/a
16Giaimi Luca0.7%0.9%0.6%4.4%24.2%n/a
17van Dijke Mick0.7%0.4%0.6%2.9%21.0%n/a
18Viviani Attilio0.6%0.5%0.5%3.1%28.6%n/a
19Molenaar Alex0.5%0.5%0.5%2.7%35.7%n/a
20Skerl Daniel0.3%0.7%0.2%3.5%27.8%n/a
21Belletta Dario0.3%0.4%0.2%1.5%35.8%n/a
22Politt Nils0.3%0.1%0.3%2.3%14.2%n/a
23Theuns Edward0.3%0.1%0.3%2.6%21.4%n/a
24Tiberi Antonio0.3%0.3%0.2%1.9%16.2%n/a
25De Longhi Lorenzo0.2%0.6%0.1%2.3%25.3%n/a
26Buratti NicolΓ²0.2%0.2%0.2%1.1%28.2%n/a
27McDonald Brody0.2%0.2%0.2%1.3%24.6%n/a
28Pedersen Henrik0.2%0.1%0.2%0.9%32.5%n/a
29Johansen Julius0.2%0.2%0.1%0.9%8.1%n/a
30Gazzoli Michele0.1%0.1%0.1%0.8%18.4%n/a
The other branch β€” a reduced bunch sprint β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Magnier Paul15.8%28.8%12.6%45.4%62.2%n/a
2Tiberi Antonio11.6%9.5%12.2%27.1%69.5%n/a
3Van Wilder Ilan8.7%9.8%8.5%23.1%58.5%n/a
4Zambanini Edoardo6.7%3.9%7.4%15.6%59.3%n/a
5van Poppel Danny6.6%6.4%6.8%19.9%51.6%n/a
6Wellens Tim6.1%4.7%6.5%15.7%56.6%n/a
7Boichis Adrien5.6%3.2%6.3%13.8%44.3%n/a
8Teutenberg Tim Torn4.4%3.7%4.6%15.0%45.9%n/a
9Kulset Johannes3.1%2.0%3.4%7.9%44.5%n/a
10Politt Nils3.1%1.9%3.4%8.6%40.3%n/a
11Martinez Daniel3.0%3.3%3.0%13.7%41.8%n/a
12Teuns Dylan2.1%1.7%2.3%6.1%37.5%n/a
13van Dijke Mick1.7%1.5%1.8%6.3%32.4%n/a
14Belletta Dario1.1%0.5%1.3%2.7%31.9%n/a
15Molenaar Alex0.8%0.8%0.8%3.7%31.7%n/a
16Tolio Alex0.8%0.3%1.0%1.8%30.4%n/a
17Agirre Jon0.7%0.3%0.8%2.3%31.5%n/a
18Fabbro Matteo0.7%0.2%0.8%1.1%21.9%n/a
19Balmer Alexandre0.6%0.6%0.7%2.4%27.0%n/a
20Pedersen Henrik0.6%0.8%0.6%3.7%34.8%n/a
21Maisonobe Sam0.6%0.5%0.6%2.0%22.2%n/a
22Oliveira Rui0.6%0.7%0.6%5.2%31.7%n/a
23Izquierdo Clement0.6%0.7%0.5%3.4%23.5%n/a
24Bagatin Christian0.5%0.3%0.5%0.8%14.7%n/a
25Sorarrain Gorka0.5%0.2%0.6%1.4%20.1%n/a
26Bevort Carl-Frederik0.4%0.7%0.4%4.1%22.4%n/a
27Molano Sebastian0.4%1.1%0.3%3.9%14.6%n/a
28Pesenti Thomas0.4%0.1%0.5%1.5%22.2%n/a
29Cras Steff0.4%0.3%0.5%2.4%18.5%n/a
30Theuns Edward0.4%0.2%0.5%1.3%9.5%n/a

After the stage

Results β€” won by Molano Sebastian

PosRiderTeamMain read win pAlt: res_3 win p
1Molano SebastianUAE Team Emirates-XRG5.5%0.4%
2Magnier PaulSoudal Quick-Step64.8%15.8%
3Teutenberg Tim TornLidl-Trek4.4%4.4%
4Erzen ZakBahrain Victorious0.8%0.1%
5Zanoncello EnricoBardiani-CSF 7 Saber1.5%0.2%
6Darder SergiCaja Rural-Seguros RGA0.9%0.3%
7Tiberi AntonioBahrain Victorious0.3%11.6%
8Louvel MatisNSN Cycling Team0.0%0.2%
9McDonald BrodyModern Adventure Pro Cycling0.2%0.0%
10Bessega GabrieleTeam Polti VisitMalta0.1%0.0%

Scenario scoring β€” probability given to the actual winner

ScenarioBlend win pBook devig
Main read5.47%–
Alt: res_30.43%–