Cycling race predictor Β· CRO Race

Stage 4 β€” 2026-09-25

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 110 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.63
mountain0.02
hilly0.32
rolling0.01
break0.02
TT0.00
keyed: bunch sprint 0.5 / survivor gallop 0.3 / GC day 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 60.1%; Blikra Erlend 8.4%; Kogut Oded 6.1%; Rajovic Dusan 4.6%; Teutenberg Tim Torn 3.6%

Alt: res_3

The other branch β€” a reduced bunch sprint
sprint0.01
mountain0.22
hilly0.02
rolling0.45
break0.30
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 12.1%; Tiberi Antonio 7.8%; Zambanini Edoardo 7.2%; Boichis Adrien 6.0%; Teutenberg Tim Torn 5.3%

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 81% β€” 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-Step60.1%12.1%n/a––
Blikra ErlendUno-X Mobility8.4%0.2%n/a––
Tiberi AntonioBahrain Victorious0.1%7.8%n/a––
Zambanini EdoardoBahrain Victorious0.7%7.2%n/a––
Kogut OdedNSN Cycling Team6.1%0.8%n/a––
Boichis AdrienRed Bull-BORA-hansgrohe0.6%6.0%n/a––
Teutenberg Tim TornLidl-Trek3.6%5.3%n/a––
Van Wilder IlanSoudal Quick-Step0.0%5.0%n/a––
Rajovic DusanSolution Tech-NIPPO-Rali4.6%0.2%n/a––
Politt NilsUAE Team Emirates-XRG0.1%3.7%n/a––
Wellens TimUAE Team Emirates-XRG0.0%3.7%n/a––
Donati DavideRed Bull-BORA-hansgrohe2.7%0.2%n/a––
Zanoncello EnricoBardiani-CSF 7 Saber2.5%0.4%n/a––
Teuns DylanCofidis0.0%2.2%n/a––
Martinez DanielRed Bull-BORA-hansgrohe0.0%2.0%n/a––
Kulset JohannesUno-X Mobility0.0%1.9%n/a––
Belletta DarioTeam Polti VisitMalta0.4%1.4%n/a––
Molenaar AlexCaja Rural-Seguros RGA0.5%1.3%n/a––
Erzen ZakBahrain Victorious1.2%0.2%n/a––
Oliveira RuiUAE Team Emirates-XRG1.1%0.7%n/a––
Darder SergiCaja Rural-Seguros RGA1.0%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 Paul60.1%54.6%61.4%72.5%83.7%n/a
2Blikra Erlend8.4%11.0%7.8%29.3%58.5%n/a
3Kogut Oded6.1%6.2%6.1%22.6%56.8%n/a
4Rajovic Dusan4.6%5.5%4.4%16.8%52.5%n/a
5Teutenberg Tim Torn3.6%3.6%3.6%16.6%63.3%n/a
6Donati Davide2.7%3.6%2.5%11.5%50.9%n/a
7Zanoncello Enrico2.5%1.4%2.8%9.6%54.6%n/a
8Erzen Zak1.2%1.0%1.2%5.6%45.6%n/a
9Oliveira Rui1.1%0.8%1.2%4.4%32.1%n/a
10Darder Sergi1.0%0.8%1.1%4.7%53.8%n/a
11Viviani Attilio0.8%0.6%0.9%3.9%32.6%n/a
12Bevort Carl-Frederik0.8%1.1%0.8%4.4%41.7%n/a
13Zambanini Edoardo0.7%0.5%0.7%7.4%30.6%n/a
14Boichis Adrien0.6%0.8%0.6%5.6%20.8%n/a
15Molenaar Alex0.5%0.7%0.4%3.1%41.7%n/a
16Belletta Dario0.4%0.4%0.4%1.9%34.9%n/a
17Theuns Edward0.4%0.5%0.4%3.2%26.3%n/a
18Skerl Daniel0.4%0.9%0.2%3.9%23.9%n/a
19Buratti NicolΓ²0.3%0.4%0.3%1.7%29.9%n/a
20De Longhi Lorenzo0.3%0.9%0.2%3.3%28.6%n/a
21Pedersen Henrik0.2%0.2%0.3%1.4%23.7%n/a
22McDonald Brody0.2%0.2%0.2%1.1%39.9%n/a
23Giaimi Luca0.2%0.6%0.1%1.5%16.9%n/a
24MartΓ­n Gotzon0.2%0.2%0.2%1.3%27.2%n/a
25Gazzoli Michele0.2%0.2%0.2%0.8%24.6%n/a
26Conforti Lorenzo0.1%0.3%0.1%1.1%25.6%n/a
27Maestri Mirco0.1%0.1%0.1%0.6%11.5%n/a
28BarcelΓ³ Fernando0.1%0.1%0.1%1.0%10.3%n/a
29Tiberi Antonio0.1%0.1%0.1%1.1%13.3%n/a
30PeΓ±uela Francisco0.1%0.1%0.1%0.6%18.4%n/a
The other branch β€” a reduced bunch sprint β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Magnier Paul12.1%25.1%11.8%37.4%48.6%n/a
2Tiberi Antonio7.8%5.9%10.1%25.7%76.0%n/a
3Zambanini Edoardo7.2%4.6%9.5%16.3%63.7%n/a
4Boichis Adrien6.0%4.9%7.6%17.4%54.9%n/a
5Teutenberg Tim Torn5.3%5.3%6.5%16.8%44.4%n/a
6Van Wilder Ilan5.0%4.2%6.4%12.4%45.1%n/a
7Politt Nils3.7%1.8%5.1%7.3%30.9%n/a
8Wellens Tim3.7%2.8%4.8%15.8%63.1%n/a
9Teuns Dylan2.2%1.8%2.9%7.5%48.0%n/a
10Martinez Daniel2.0%2.6%2.3%9.7%32.3%n/a
11Kulset Johannes1.9%1.7%2.4%6.6%44.7%n/a
12Belletta Dario1.4%0.5%2.0%2.7%28.9%n/a
13Molenaar Alex1.3%1.6%1.5%6.0%38.2%n/a
14Bevort Carl-Frederik1.0%1.0%1.3%4.3%28.1%n/a
15Tolio Alex0.9%0.4%1.2%1.5%34.0%n/a
16Izquierdo Clement0.9%1.7%0.9%5.2%26.3%n/a
17Kogut Oded0.8%0.7%1.1%3.1%9.8%n/a
18Fabbro Matteo0.7%0.2%1.1%0.8%11.5%n/a
19Balmer Alexandre0.7%0.8%0.9%2.5%20.0%n/a
20Oliveira Rui0.7%0.8%0.9%4.9%21.1%n/a
21Pedersen Henrik0.7%0.9%0.8%3.8%25.0%n/a
22Theuns Edward0.6%0.2%0.9%2.6%13.1%n/a
23Cras Steff0.6%0.8%0.6%2.7%27.4%n/a
24Agirre Jon0.5%0.3%0.7%1.3%33.0%n/a
25Pesenti Thomas0.5%0.2%0.7%2.2%18.7%n/a
26Maisonobe Sam0.5%0.5%0.6%1.8%23.2%n/a
27MartΓ­n Gotzon0.5%0.2%0.7%1.4%19.4%n/a
28Sorarrain Gorka0.5%0.2%0.7%1.0%14.0%n/a
29MuΓ±oz Francisco0.5%0.2%0.7%1.8%28.0%n/a
30Meurisse Xandro0.5%0.1%0.7%0.7%29.2%n/a

After the stage

Results β€” won by Martinez Daniel

PosRiderTeamMain read win pAlt: res_3 win p
1Martinez DanielRed Bull-BORA-hansgrohe0.0%2.0%
2Vervaeke LouisSoudal Quick-Step0.0%0.2%
3Novak DomenUAE Team Emirates-XRG0.0%0.0%
4De Gendt AimΓ©Pinarello-Q36.5 Pro Cycling Team0.0%0.2%
5Maisonobe SamCofidis0.1%0.5%
6Van Wilder IlanSoudal Quick-Step0.0%5.0%
7Zambanini EdoardoBahrain Victorious0.7%7.2%
8Pesenti ThomasTeam Polti VisitMalta0.0%0.5%
9Giuliano DarioTeam Polti VisitMalta0.0%0.3%
10Pidcock JosephPinarello-Q36.5 Pro Cycling Team0.0%0.0%

Scenario scoring β€” probability given to the actual winner

ScenarioBlend win pBook devig
Main read0.01%–
Alt: res_32.01%–