Cycling race predictor · Vuelta a España 2026

Stage 19 — 2026-09-11

The same production stack priced under 3 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.

3 scenarios 147 riders priced models retrained d911de60f7 book snapshot no capture

The fork

3 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.

GC showdown

The GC teams control it — Peñas Blancas decides the day and the race
sprint0.00
mountain0.44
hilly0.00
rolling0.55
break0.01
TT0.00
The base case. Stage 18 leaves the race lead close enough to attack, while stage 19 ends with 18.7 km at 6.5% and no descent to undo the selection. References are the campaign's established hard Grand Tour and WorldTour mountain days won by a GC leader from a group of two: Pogacar at Peyragudes in 2022, Vingegaard on Tour 2024 stage 11, Roglic on the Angliru in 2023, Almeida on Vuelta 2025 stage 13 and Roglic on Dauphine 2024 stage 7. The two earlier category-2 climbs add fatigue, but their distance from the finish makes team incentive more important than their gradients: with the red jersey and podium still live, the leading teams have reason to keep the break within reach before Peñas Blancas.
Top 5 (blend): Gall Felix 10.9%; Mas Enric 7.6%; Roglic Primoz 7.4%; Onley Oscar 6.5%; Johannessen Tobias Halland 4.4%

Mountain break

The escape survives — 210 kilometres give the stage hunters their last mountain chance
sprint0.00
mountain0.50
hilly0.00
rolling0.49
break0.01
TT0.00
The alternative, grounded in this Vuelta's repeated success by mountain escapes. The stage is the longest of the race and Puerto de las Abejas and Puerto del Viento offer almost 100 kilometres in which a strong move can build its advantage; after the second summit there is a long run to Estepona before the final climb. References are the campaign's canonical mountain-escape days: Tour 2026 stage 18, Vuelta 2025 stage 14, Pologne 2026 stage 6, Tour 2026 stage 9 and Giro 2026 stage 11. The conditional pool excludes the morning GC top 10 so the board answers the useful question—who wins if the classification teams race Peñas Blancas against each other but concede the stage? The scenario-level day key this branch used to carry has been removed: with no morning read logged, leaving it in place let the tier-3 scorer mistake it for one.
Top 5 if the break wins (top 10 on GC removed): Bisiaux Léo 7.6%; Johannessen Tobias Halland 7.3%; Buitrago Santiago 5.9%; Riccitello Matthew 4.8%; Widar Jarno 3.8%

Summit shatters

Peñas Blancas shatters — the strongest climber finishes alone
sprint0.00
mountain0.51
hilly0.00
rolling0.49
break0.00
TT0.00
The selective branch. A 210.8 km third-week stage followed by an uninterrupted 18.7 km ascent can create much larger gaps than the average gradient suggests, especially if the race is already reduced before Estepona. References are the campaign's established shattering-summit archetype: Tour 2026 stages 3, 10 and 14, Vuelta 2025 stage 20 and Catalunya 2026 stage 6. The comparison with the GC-showdown board isolates riders whose case improves when the finish becomes a long individual climbing test rather than a small-group contest. Its scenario-level day key has been removed for the same reason as the mountain_break branch.
Top 5 (blend): Gall Felix 11.8%; Onley Oscar 7.5%; Mas Enric 7.4%; Roglic Primoz 4.8%; Johannessen Tobias Halland 4.4%

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 GC showdown 88%, Summit shatters 93% — 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.

RiderTeamGC showdownMountain breakSummit shattersBook oddsBook devigMax edge
Gall FelixDecathlon CMA CGM Team10.9%–11.8%n/a––
Mas EnricMovistar Team7.6%–7.4%n/a––
Onley OscarNetcompany INEOS6.5%–7.5%n/a––
Roglic PrimozRed Bull-BORA-hansgrohe7.4%–4.8%n/a––
Johannessen Tobias HallandUno-X Mobility4.4%7.3%4.4%n/a––
Carapaz RichardEF Education-EasyPost3.0%–4.1%n/a––
Bisiaux LéoDecathlon CMA CGM Team3.0%7.6%3.9%n/a––
Riccitello MatthewDecathlon CMA CGM Team3.5%4.8%2.9%n/a––
Buitrago SantiagoBahrain Victorious2.6%5.9%2.8%n/a––
Skjelmose MattiasLidl-Trek2.6%–2.0%n/a––
Kuss SeppTeam Visma | Lease a Bike2.2%2.7%2.5%n/a––
Tejada HaroldXDS Astana Team1.9%–2.5%n/a––
Widar JarnoLotto-Intermarché2.0%3.8%2.2%n/a––
Almeida JoaoUAE Team Emirates-XRG1.9%3.2%2.1%n/a––
Omrzel JakobBahrain Victorious2.0%–2.0%n/a––
Berthet ClémentGroupama-FDJ United1.3%–1.8%n/a––
Paret-Peintre ValentinSoudal Quick-Step1.1%3.2%1.5%n/a––
Tuckwell LukeRed Bull-BORA-hansgrohe1.1%2.8%1.5%n/a––
Nordhagen JørgenTeam Visma | Lease a Bike1.2%3.3%1.5%n/a––
Debruyne RamsesAlpecin-Premier Tech1.4%3.2%1.3%n/a––
Romeo IvanMovistar Team1.3%2.5%1.3%n/a––
Rodriguez CristianXDS Astana Team0.9%–1.3%n/a––
van Aert WoutTeam Visma | Lease a Bike1.2%3.3%1.2%n/a––
Vermaerke KevinUAE Team Emirates-XRG1.0%1.9%1.1%n/a––
Mountain break is shown conditional on the break winning — the top 10 riders on actual GC are removed and the remaining probabilities renormalize within the break pool. That column isn't comparable with the book line or the other readings, so it's left out of Max edge; a "–" means a GC captain we assume won't be up the road.
The GC teams control it — Peñas Blancas decides the day and the race — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Gall Felix10.9%9.8%12.6%32.2%84.8%n/a
2Mas Enric7.6%5.6%9.1%27.4%83.1%n/a
3Roglic Primoz7.4%7.6%8.3%27.9%77.1%n/a
4Onley Oscar6.5%5.8%7.6%17.9%77.8%n/a
5Johannessen Tobias Halland4.4%4.6%4.9%17.2%51.2%n/a
6Riccitello Matthew3.5%2.2%4.3%7.3%46.4%n/a
7Carapaz Richard3.0%2.5%3.6%10.7%79.1%n/a
8Bisiaux Léo3.0%2.0%3.7%6.9%31.5%n/a
9Buitrago Santiago2.6%1.7%3.2%6.0%26.0%n/a
10Skjelmose Mattias2.6%2.1%3.0%7.7%65.9%n/a
11Kuss Sepp2.2%3.7%2.2%9.1%49.9%n/a
12Widar Jarno2.0%2.6%2.1%8.7%41.7%n/a
13Omrzel Jakob2.0%1.3%2.4%6.3%60.7%n/a
14Almeida Joao1.9%1.8%2.2%5.9%21.2%n/a
15Tejada Harold1.9%3.3%1.8%9.8%62.0%n/a
16Debruyne Ramses1.4%3.4%1.1%9.5%31.8%n/a
17Berthet Clément1.3%0.4%1.7%4.8%56.3%n/a
18Romeo Ivan1.3%2.0%1.3%2.9%7.6%n/a
19van Aert Wout1.2%3.1%0.9%10.1%19.3%n/a
20Nordhagen Jørgen1.2%2.3%1.0%8.3%21.5%n/a
21Paret-Peintre Valentin1.1%3.0%0.8%5.4%22.9%n/a
22Tuckwell Luke1.1%0.4%1.4%2.4%11.6%n/a
23Vermaerke Kevin1.0%0.7%1.2%3.3%20.7%n/a
24Rodriguez Cristian0.9%0.3%1.2%3.0%51.7%n/a
25Rodriguez Carlos0.9%0.8%1.1%2.4%13.3%n/a
26Zana Filippo0.9%0.8%1.0%2.8%16.7%n/a
27Svestad-Bårdseng Embret0.8%0.5%1.0%1.9%12.8%n/a
28Berrade Urko0.8%1.7%0.6%3.5%16.2%n/a
29Leknessund Andreas0.7%0.5%0.9%3.5%15.3%n/a
30Martin Guillaume0.6%0.3%0.8%1.6%19.4%n/a
The escape survives — 210 kilometres give the stage hunters their last mountain chance — top 30, all heads · top 10 on GC removed
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Bisiaux Léo3.6%3.7%4.6%11.4%48.2%n/a
2Johannessen Tobias Halland3.5%3.7%4.4%12.4%42.9%n/a
3Buitrago Santiago2.8%1.9%3.8%6.6%27.5%n/a
4Riccitello Matthew2.3%2.4%2.9%6.7%40.9%n/a
5Widar Jarno1.8%2.1%2.2%6.9%37.8%n/a
6Nordhagen Jørgen1.6%4.1%1.4%9.3%25.3%n/a
7van Aert Wout1.6%3.3%1.5%8.0%13.9%n/a
8Paret-Peintre Valentin1.5%2.6%1.7%8.0%30.8%n/a
9Debruyne Ramses1.5%4.8%1.1%11.8%39.8%n/a
10Almeida Joao1.5%2.0%1.8%8.9%17.6%n/a
11Tuckwell Luke1.3%0.5%1.9%3.1%9.8%n/a
12Kuss Sepp1.3%1.1%1.7%5.1%25.0%n/a
13Romeo Ivan1.2%1.6%1.4%2.2%5.9%n/a
14Zana Filippo1.1%0.4%1.6%1.5%20.1%n/a
15Brenner Marco1.1%2.0%1.2%6.7%17.7%n/a
16Vermaerke Kevin0.9%0.5%1.3%2.4%18.4%n/a
17Sosa Ivan0.9%0.6%1.2%1.8%8.2%n/a
18Svestad-Bårdseng Embret0.9%0.6%1.1%1.9%14.6%n/a
19Martin Guillaume0.8%0.3%1.1%1.5%24.1%n/a
20Rodriguez Carlos0.8%1.1%0.9%2.6%12.1%n/a
21Leknessund Andreas0.8%0.4%1.0%2.4%9.8%n/a
22Fortunato Lorenzo0.7%0.4%1.0%2.1%17.3%n/a
23Berrade Urko0.7%0.8%0.9%2.0%11.9%n/a
24Vansevenant Mauri0.7%0.4%0.9%1.1%6.6%n/a
25Pickering Finlay0.7%0.4%0.9%1.4%13.8%n/a
26Castrillo Pablo0.6%0.5%0.9%1.1%6.4%n/a
27Dunbar Edward0.6%0.5%0.8%1.3%14.1%n/a
28García Raúl0.6%0.5%0.8%2.0%9.7%n/a
29Fisher-Black Finn0.6%0.3%0.8%1.5%6.3%n/a
30Kron Andreas0.5%0.3%0.7%0.8%5.8%n/a
Peñas Blancas shatters — the strongest climber finishes alone — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Gall Felix11.8%10.9%12.8%29.1%81.2%n/a
2Onley Oscar7.5%5.2%8.6%16.8%74.6%n/a
3Mas Enric7.4%6.3%8.2%26.7%80.7%n/a
4Roglic Primoz4.8%4.3%5.2%20.6%69.3%n/a
5Johannessen Tobias Halland4.4%3.8%4.8%14.0%45.0%n/a
6Carapaz Richard4.1%3.4%4.5%13.4%77.6%n/a
7Bisiaux Léo3.9%3.9%4.2%10.1%36.8%n/a
8Riccitello Matthew2.9%2.8%3.2%8.1%46.9%n/a
9Buitrago Santiago2.8%3.3%2.9%8.5%30.0%n/a
10Kuss Sepp2.5%4.2%2.3%9.8%53.5%n/a
11Tejada Harold2.5%4.3%2.2%10.6%58.5%n/a
12Widar Jarno2.2%3.0%2.1%9.8%41.4%n/a
13Almeida Joao2.1%3.4%1.9%10.7%21.2%n/a
14Omrzel Jakob2.0%2.3%2.1%8.2%69.8%n/a
15Skjelmose Mattias2.0%1.2%2.4%6.5%58.9%n/a
16Berthet Clément1.8%0.6%2.3%5.0%62.0%n/a
17Paret-Peintre Valentin1.5%2.4%1.3%7.4%24.2%n/a
18Tuckwell Luke1.5%0.9%1.7%3.2%11.4%n/a
19Nordhagen Jørgen1.5%3.1%1.1%7.4%24.0%n/a
20Romeo Ivan1.3%1.8%1.3%2.5%6.7%n/a
21Debruyne Ramses1.3%4.3%0.6%9.7%31.1%n/a
22Rodriguez Cristian1.3%0.5%1.6%4.0%55.6%n/a
23van Aert Wout1.2%2.6%1.0%6.8%11.8%n/a
24Vermaerke Kevin1.1%0.7%1.3%2.4%15.2%n/a
25Zana Filippo1.1%0.6%1.2%1.7%20.2%n/a
26Svestad-Bårdseng Embret0.9%0.4%1.1%1.7%15.3%n/a
27Berrade Urko0.8%1.4%0.7%2.7%13.3%n/a
28Sosa Ivan0.8%0.5%1.0%1.7%8.1%n/a
29Rodriguez Carlos0.8%0.6%0.9%2.2%12.2%n/a
30Martin Guillaume0.7%0.2%0.9%1.4%28.0%n/a

After the stage

Results — won by Dunbar Edward

PosRiderTeamGC showdown win pMountain break win pSummit shatters win p
1Dunbar EdwardPinarello-Q36.5 Pro Cycling Team0.6%0.6%0.6%
2Buitrago SantiagoBahrain Victorious2.6%2.8%2.8%
3Gloag ThomasPinarello-Q36.5 Pro Cycling Team0.1%0.1%0.1%
4Berrade UrkoEquipo Kern Pharma0.8%0.7%0.8%
5Camprubí MarcelPinarello-Q36.5 Pro Cycling Team0.1%0.1%0.0%
6Leknessund AndreasUno-X Mobility0.7%0.8%0.7%
7Martin-Guyonnet GuillaumeGroupama-FDJ United–––
8Hamilton ChrisTeam Picnic PostNL0.0%0.0%0.0%
9Vermaerke KevinUAE Team Emirates-XRG1.0%0.9%1.1%
10Samitier SergioCofidis0.0%0.1%0.0%

Scenario scoring — probability given to the actual winner

ScenarioBlend win pBook devig
GC showdown0.55%–
Mountain break0.60%–
Summit shatters0.56%–

Reflection

What we make of it

The escape branch was right about the day and the oracle still graded it a miss. Eddie Dunbar won alone in 5:00:54 from a move the classification never tried to hold, with Santiago Buitrago at fourteen seconds and his own teammate Thomas Gloag at twenty-three. Dunbar started the day 35th overall. The front five had a general-classification median of 35th, so nothing about this finish belonged to the men racing for red.

The grade inside the family is the interesting part. The label came back res_4, the hard-puncheur neighbour, rather than res_2. Realised top-15 composition was mountain .40, rolling .267, breakaway .20 — a front of climber-rouleurs rather than pure climbers, which is exactly the signature that separates the two items. That is the second time in five settled stages that a break-won mountain finish at this Vuelta has landed on res_4 rather than res_2, after stage 15.

Nothing moved at the top of the race. Mas, Roglic, Gall, Carapaz and Onley all came in together, holding 1:37, 3:01, 5:17 and 6:03, so the whole classification question rolled into the queen stage unchanged. Mattias Skjelmose was the only man inside the top ten to lose ground, dropping from eighth to below Cristian Rodriguez.

The watch item is the cost of the missed cycle itself, not the read. Two consecutive stages went unkeyed and unpriced, and stage 19 then contaminated the tier-3 card by letting a scenario-level key stand in for a morning read. The guard that stops that exists and works; it only fires when the config is marked post_hoc, which a backfilled config has to be from the moment it is written, not after someone notices.