Cycling race predictor Β· CRO Race

Stage 2 β€” 2026-09-23

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.82
mountain0.03
hilly0.14
rolling0.01
break0.00
TT0.00
keyed: bunch sprint 0.7 / 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 58.2%; Blikra Erlend 7.5%; Kogut Oded 7.2%; van Poppel Danny 7.0%; Teutenberg Tim Torn 6.1%

Alt: res_3

The other branch β€” a reduced bunch sprint
sprint0.02
mountain0.10
hilly0.03
rolling0.38
break0.47
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 32.5%; van Poppel Danny 8.8%; Teutenberg Tim Torn 8.2%; Zambanini Edoardo 5.1%; Boichis Adrien 5.1%

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 120%, Alt: res_3 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.

RiderTeamMain readAlt: res_3Book oddsBook devigMax edge
Magnier PaulSoudal Quick-Step58.2%32.5%n/a––
van Poppel DannyRed Bull-BORA-hansgrohe7.0%8.8%n/a––
Teutenberg Tim TornLidl-Trek6.1%8.2%n/a––
Blikra ErlendUno-X Mobility7.5%1.5%n/a––
Kogut OdedNSN Cycling Team7.2%3.5%n/a––
Molano SebastianUAE Team Emirates-XRG5.9%4.5%n/a––
Zambanini EdoardoBahrain Victorious1.1%5.1%n/a––
Boichis AdrienRed Bull-BORA-hansgrohe0.5%5.1%n/a––
Rajovic DusanSolution Tech-NIPPO-Rali4.6%1.1%n/a––
Tiberi AntonioBahrain Victorious0.1%4.1%n/a––
Donati DavideRed Bull-BORA-hansgrohe3.1%0.5%n/a––
Politt NilsUAE Team Emirates-XRG0.1%2.5%n/a––
Zanoncello EnricoBardiani-CSF 7 Saber2.2%1.0%n/a––
Van Wilder IlanSoudal Quick-Step0.0%2.2%n/a––
Oliveira RuiUAE Team Emirates-XRG2.1%1.9%n/a––
Wellens TimUAE Team Emirates-XRG0.1%2.1%n/a––
Erzen ZakBahrain Victorious1.7%0.6%n/a––
Darder SergiCaja Rural-Seguros RGA1.6%0.6%n/a––
Belletta DarioTeam Polti VisitMalta0.4%1.4%n/a––
Bevort Carl-FrederikUno-X Mobility1.1%1.2%n/a––
Kulset JohannesUno-X Mobility0.1%1.1%n/a––
Viviani AttilioSolution Tech-NIPPO-Rali1.1%0.1%n/a––
The main read β€” the day as the key says it goes β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Magnier Paul58.2%57.9%48.5%74.1%84.4%n/a
2Blikra Erlend7.5%9.6%5.7%27.2%56.4%n/a
3Kogut Oded7.2%7.5%5.9%27.8%56.9%n/a
4van Poppel Danny7.0%7.6%5.7%23.8%63.8%n/a
5Teutenberg Tim Torn6.1%5.3%5.2%20.2%64.5%n/a
6Molano Sebastian5.9%7.0%4.7%20.6%48.8%n/a
7Rajovic Dusan4.6%4.7%3.8%15.1%43.6%n/a
8Donati Davide3.1%2.8%2.7%12.4%50.7%n/a
9Zanoncello Enrico2.2%1.2%2.1%6.6%44.8%n/a
10Oliveira Rui2.1%1.6%1.9%9.2%43.1%n/a
11Erzen Zak1.7%1.0%1.6%6.7%47.4%n/a
12Darder Sergi1.6%0.9%1.5%5.1%54.0%n/a
13Zambanini Edoardo1.1%0.6%1.0%5.1%30.0%n/a
14Bevort Carl-Frederik1.1%0.9%0.9%6.0%42.5%n/a
15Viviani Attilio1.1%0.7%1.0%3.8%32.4%n/a
16Molenaar Alex0.8%0.6%0.7%3.0%37.6%n/a
17Skerl Daniel0.7%1.3%0.4%7.2%33.2%n/a
18van Dijke Mick0.7%0.4%0.6%2.0%20.3%n/a
19Boichis Adrien0.5%0.8%0.3%3.3%18.9%n/a
20Theuns Edward0.5%0.2%0.5%6.4%28.3%n/a
21Belletta Dario0.4%0.5%0.4%2.1%33.6%n/a
22De Longhi Lorenzo0.4%0.6%0.3%2.3%25.5%n/a
23Buratti NicolΓ²0.4%0.4%0.3%1.8%28.1%n/a
24McDonald Brody0.4%0.3%0.3%2.0%28.2%n/a
25Giaimi Luca0.3%0.6%0.2%3.2%23.4%n/a
26Pedersen Henrik0.3%0.2%0.3%1.8%29.4%n/a
27MartΓ­n Gotzon0.3%0.2%0.3%1.5%24.8%n/a
28Gazzoli Michele0.3%0.2%0.2%1.3%16.3%n/a
29Maestri Mirco0.2%0.1%0.2%0.8%16.3%n/a
30Conforti Lorenzo0.2%0.3%0.1%1.2%25.9%n/a
The other branch β€” a reduced bunch sprint β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Magnier Paul32.5%43.7%27.7%61.0%73.5%n/a
2van Poppel Danny8.8%8.6%8.2%27.1%62.0%n/a
3Teutenberg Tim Torn8.2%7.5%7.9%24.3%62.8%n/a
4Zambanini Edoardo5.1%2.6%5.3%10.9%53.4%n/a
5Boichis Adrien5.1%2.8%5.3%10.9%44.7%n/a
6Molano Sebastian4.5%6.6%3.7%17.0%40.0%n/a
7Tiberi Antonio4.1%2.9%4.2%10.6%45.3%n/a
8Kogut Oded3.5%4.9%2.9%15.5%44.0%n/a
9Politt Nils2.5%1.7%2.5%6.9%36.9%n/a
10Van Wilder Ilan2.2%1.6%2.2%5.0%32.4%n/a
11Wellens Tim2.1%1.9%2.0%7.7%35.8%n/a
12Oliveira Rui1.9%1.7%1.9%8.9%39.1%n/a
13Blikra Erlend1.5%1.7%1.3%8.0%29.8%n/a
14Belletta Dario1.4%0.5%1.6%2.5%30.6%n/a
15Bevort Carl-Frederik1.2%0.9%1.2%6.0%30.1%n/a
16Kulset Johannes1.1%0.5%1.2%3.6%31.2%n/a
17Rajovic Dusan1.1%2.0%0.8%6.8%30.5%n/a
18Teuns Dylan1.0%0.6%1.0%1.9%23.1%n/a
19van Dijke Mick1.0%0.8%1.0%4.2%20.0%n/a
20Zanoncello Enrico1.0%0.8%0.9%5.4%36.8%n/a
21Molenaar Alex0.9%1.0%0.8%4.9%29.8%n/a
22Martinez Daniel0.8%0.8%0.7%3.0%15.2%n/a
23Theuns Edward0.8%0.1%0.9%3.5%16.0%n/a
24Izquierdo Clement0.6%0.5%0.6%3.3%22.0%n/a
25Erzen Zak0.6%0.7%0.5%3.8%39.0%n/a
26Darder Sergi0.6%0.4%0.6%2.7%34.3%n/a
27Balmer Alexandre0.5%0.5%0.5%1.8%19.2%n/a
28Donati Davide0.5%0.9%0.4%3.9%23.6%n/a
29Pedersen Henrik0.5%0.2%0.6%2.2%20.3%n/a
30Tolio Alex0.5%0.1%0.5%0.8%21.4%n/a

After the stage

Results β€” won by Bevort Carl-Frederik

PosRiderTeamMain read win pAlt: res_3 win p
1Bevort Carl-FrederikUno-X Mobility1.1%1.2%
2Gojkovic NicolasPogi Team Gusto Ljubljana0.1%0.0%
3Molano SebastianUAE Team Emirates-XRG5.9%4.5%
4De Longhi LorenzoCofidis0.4%0.0%
5Donati DavideRed Bull-BORA-hansgrohe3.1%0.5%
6Louvel MatisNSN Cycling Team0.0%0.1%
7Pedersen HenrikUno-X Mobility0.3%0.5%
8McDonald BrodyModern Adventure Pro Cycling0.4%0.0%
9Bessega GabrieleTeam Polti VisitMalta0.1%0.0%
10Theuns EdwardLidl-Trek0.5%0.8%

Scenario scoring β€” probability given to the actual winner

ScenarioBlend win pBook devig
Main read1.07%–
Alt: res_31.21%–