Cycling race predictor · Tour de Langkawi

Stage 6 — 2026-10-02

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 107 riders priced models retrained 72bc1bd857 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.43
mountain0.06
hilly0.23
rolling0.09
break0.20
TT0.00
keyed: bunch sprint 0.8 / survivor gallop 0.1 / 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): Malucelli Matteo 26.0%; Gaviria Fernando 14.9%; Cavia Daniel 10.3%; Syritsa Gleb 8.6%; Augé Ronan 4.1%

Alt: res_3

The other branch — a reduced bunch sprint
sprint0.02
mountain0.16
hilly0.02
rolling0.47
break0.33
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): Castellon Jan 7.2%; Cavia Daniel 6.6%; Malucelli Matteo 6.3%; Breuillard Nicolas 4.5%; Jasch Lennart 4.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 87%, Alt: res_3 68% — 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
Malucelli MatteoXDS Astana Team26.0%6.3%n/a––
Gaviria FernandoCaja Rural-Seguros RGA14.9%2.2%n/a––
Cavia DanielBurgos Burpellet BH10.3%6.6%n/a––
Syritsa GlebXDS Astana Team8.6%0.5%n/a––
Castellon JanCaja Rural-Seguros RGA0.6%7.2%n/a––
Breuillard NicolasTeam TotalEnergies0.3%4.5%n/a––
Jasch LennartTudor Pro Cycling Team0.9%4.1%n/a––
Augé RonanUnibet Rose Rockets4.1%0.8%n/a––
Christophersen Cedrik BakkeUnibet Rose Rockets0.3%2.9%n/a––
Gutiérrez JorgeEquipo Kern Pharma0.1%2.2%n/a––
Aparicio MarioBurgos Burpellet BH0.1%2.2%n/a––
Pickrell RileyModern Adventure Pro Cycling2.1%0.2%n/a––
López MartinXDS Astana Team0.2%2.0%n/a––
Abdul Halil Mohamad Izzat HilmiMalaysia Pro Cycling2.0%0.3%n/a––
Balderstone AbelCaja Rural-Seguros RGA0.1%1.9%n/a––
Gate AaronXDS Astana Team1.0%1.9%n/a––
Diaz Jose ManuelBurgos Burpellet BH0.2%1.8%n/a––
Hoogendoorn RoyTeam Picnic PostNL1.3%1.0%n/a––
Rikunov PetrWheeltop Rotor Chengdu Team1.0%1.3%n/a––
Van Den Boer SeppeTudor Pro Cycling Team1.3%1.2%n/a––
Álvarez RodrigoBurgos Burpellet BH1.1%0.8%n/a––
de Bod StefanModern Adventure Pro Cycling0.1%1.1%n/a––
Le Berre MathisTeam TotalEnergies1.0%1.0%n/a––
The main read — the day as the key says it goes — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Malucelli Matteo26.0%27.4%29.7%62.1%74.9%n/a
2Gaviria Fernando14.9%11.2%18.2%30.7%51.2%n/a
3Cavia Daniel10.3%7.8%12.5%24.0%65.4%n/a
4Syritsa Gleb8.6%8.6%9.9%24.0%44.6%n/a
5Augé Ronan4.1%4.7%4.6%17.1%53.7%n/a
6Pickrell Riley2.1%3.7%2.0%18.5%51.1%n/a
7Abdul Halil Mohamad Izzat Hilmi2.0%2.0%2.3%7.7%27.9%n/a
8Hoogendoorn Roy1.3%1.8%1.4%8.4%40.2%n/a
9Van Den Boer Seppe1.3%1.3%1.5%6.5%32.7%n/a
10Álvarez Rodrigo1.1%1.4%1.2%5.3%48.9%n/a
11Le Berre Mathis1.0%1.6%1.0%7.1%40.5%n/a
12Gate Aaron1.0%1.3%1.0%4.2%25.2%n/a
13Rikunov Petr1.0%1.3%1.0%5.3%41.5%n/a
14Villar Iker0.9%2.4%0.6%9.7%42.4%n/a
15Jasch Lennart0.9%0.1%1.2%1.2%27.5%n/a
16Castellon Jan0.6%0.1%0.8%0.9%11.7%n/a
17McGill Scott0.5%0.9%0.5%5.8%32.4%n/a
18Corkery Dillon0.5%1.2%0.4%4.7%32.0%n/a
19Retegi Mikel0.5%0.3%0.6%1.5%30.1%n/a
20Huby Antoine0.5%0.4%0.6%1.3%26.9%n/a
21Cettolin Filippo0.4%0.8%0.4%6.3%44.2%n/a
22Delle Vedove Alessio0.4%0.2%0.5%2.2%23.2%n/a
23Mohd Nawawi Muhamad Iqbal Daniel0.3%0.1%0.4%4.4%20.0%n/a
24Meris Sergio0.3%0.3%0.4%1.1%12.7%n/a
25Breuillard Nicolas0.3%0.3%0.4%1.1%17.9%n/a
26Christophersen Cedrik Bakke0.3%0.2%0.4%0.5%6.1%n/a
27Oda Hijiri0.3%0.1%0.4%2.0%25.4%n/a
28Donzé Robin0.3%0.2%0.4%0.8%16.8%n/a
29Diaz Jose Manuel0.2%0.1%0.3%0.5%7.9%n/a
30Meisa Ade0.2%0.1%0.3%1.2%21.2%n/a
The other branch — a reduced bunch sprint — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Castellon Jan7.2%3.4%11.5%11.5%66.6%n/a
2Cavia Daniel6.6%5.8%9.8%17.5%45.8%n/a
3Malucelli Matteo6.3%14.0%7.2%30.1%40.2%n/a
4Breuillard Nicolas4.5%1.9%7.3%8.2%45.2%n/a
5Jasch Lennart4.1%2.7%6.4%11.8%69.6%n/a
6Christophersen Cedrik Bakke2.9%1.5%4.6%7.9%47.7%n/a
7Gaviria Fernando2.2%3.0%3.1%7.3%16.4%n/a
8Gutiérrez Jorge2.2%1.6%3.4%5.5%46.5%n/a
9Aparicio Mario2.2%1.7%3.4%5.0%24.4%n/a
10López Martin2.0%3.0%2.7%7.8%37.5%n/a
11Balderstone Abel1.9%1.8%2.8%5.3%46.3%n/a
12Gate Aaron1.9%2.2%2.7%7.1%27.6%n/a
13Diaz Jose Manuel1.8%2.2%2.5%6.5%54.1%n/a
14Rikunov Petr1.3%1.4%1.9%5.1%34.4%n/a
15Van Den Boer Seppe1.2%1.1%1.8%4.0%21.0%n/a
16de Bod Stefan1.1%1.0%1.6%3.7%33.5%n/a
17Le Berre Mathis1.0%3.1%1.0%8.5%45.5%n/a
18Hoogendoorn Roy1.0%1.5%1.4%6.1%23.9%n/a
19Huby Antoine1.0%1.1%1.4%2.9%31.3%n/a
20Bregnhøj Mathias0.9%0.6%1.4%2.7%40.8%n/a
21Herreño Martín0.8%0.6%1.3%3.6%25.2%n/a
22Meris Sergio0.8%0.5%1.3%4.4%23.6%n/a
23Augé Ronan0.8%1.5%1.0%6.4%22.7%n/a
24Álvarez Rodrigo0.8%0.4%1.2%2.7%14.8%n/a
25Covili Luca0.7%0.3%1.2%1.6%29.5%n/a
26Retegi Mikel0.5%0.3%0.9%1.8%17.3%n/a
27Stepanov Andrei0.5%0.4%0.8%1.6%13.9%n/a
28Syritsa Gleb0.5%1.0%0.6%3.9%11.9%n/a
29Haug Kieran0.4%0.2%0.6%1.0%25.9%n/a
30Donzé Robin0.4%0.2%0.6%1.4%20.4%n/a

After the stage

Results — won by Pickrell Riley

PosRiderTeamMain read win pAlt: res_3 win p
1Pickrell RileyModern Adventure Pro Cycling2.1%0.2%
2Malucelli MatteoXDS Astana Team26.0%6.3%
3Van Den Boer SeppeTUDOR PRO CYCLING TEAM U231.3%1.2%
4Townsend RoryUnibet Rose Rockets0.2%0.2%
5van Rees ChristiaanTeam Picnic PostNL0.1%0.1%
6Le Berre MathisTeam TotalEnergies1.0%1.0%
7Álvarez RodrigoBurgos Burpellet BH1.1%0.8%
8Cavia DanielBurgos Burpellet BH10.3%6.6%
9Villar IkerCaja Rural-Seguros RGA0.9%0.2%
10Ibanez JavierCaja Rural-Seguros RGA0.0%0.0%

Scenario scoring — probability given to the actual winner

ScenarioBlend win pBook devig
Main read2.09%–
Alt: res_30.22%–