Cycling race predictor · Vuelta a España 2026

Stage 9 — 2026-08-30

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 173 riders priced models retrained 8e63bf1bbe book snapshot markets_1343.json

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.

Aitana shatters

Aitana shatters — the open GC race is attacked to pieces
sprint0.00
mountain0.51
hilly0.00
rolling0.49
break0.00
TT0.00
keyed: GC day (board order by rider-type retrieval; prices unchanged)
The base case: 187.4 km ending at Alto de Aitana, with the race lead newly exposed and every podium team given a reason to spend. References are the established shattering-summit archetype (mountain 0.45-0.55, winner group one): Tour 2026 stages 10, 14 and 3, Vingegaard's Vuelta 2025 stage 20 and Catalunya 2026 stage 6. Unlike stage 7, the chase-incentive test points toward control: Mas, Roglič, Gall, Kuss and Onley are separated by only 2:16 and the stage can change the race lead. Inherits the pure GC-day key.
Top 5 (blend): Roglic Primoz 8.4%; Gall Felix 7.9%; Onley Oscar 6.6%; Mas Enric 4.4%; Carapaz Richard 3.3%

Cohesive GC group

Aitana together — a larger GC group survives the steady final climb
sprint0.00
mountain0.37
hilly0.00
rolling0.61
break0.02
TT0.00
keyed: GC day (board order by rider-type retrieval; prices unchanged)
The secondary scenario requested for a final climb that is not especially steep. It remains a GC-contested day, but sustained tempo leaves a larger group together and rewards the riders with a kick at the summit. References are the established shallow-summit archetype: mid-mountain finishes where reduced GC groups of roughly 9 to 16 contested the win. This changes terrain selectivity without changing the day composition, so it deliberately inherits the same pure `gc_day` key as the base case.
Top 5 (blend): Roglic Primoz 10.0%; Onley Oscar 6.7%; Gall Felix 4.6%; Carapaz Richard 3.9%; Vine Jay 3.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 Aitana shatters 68%, Cohesive GC group 72% — 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.

RiderTeamAitana shattersCohesive GC groupBook oddsBook devigMax edge
Roglic PrimozRed Bull-BORA-hansgrohe8.4%10.0%17.003.8%+6.2pp
Gall FelixDecathlon CMA CGM Team7.9%4.6%2.6024.8%-16.9pp
Onley OscarNetcompany INEOS6.6%6.7%11.005.9%+0.8pp
Mas EnricMovistar Team4.4%2.7%6.509.9%-5.6pp
Carapaz RichardEF Education-EasyPost3.3%3.9%34.001.9%+2.0pp
Vine JayUAE Team Emirates-XRG2.1%3.1%4.7513.6%-10.4pp
Skjelmose MattiasLidl-Trek2.1%3.1%101.000.6%+2.5pp
Johannessen Tobias HallandUno-X Mobility2.7%2.6%21.003.1%-0.3pp
van Aert WoutTeam Visma | Lease a Bike0.4%2.5%n/a––
Kuss SeppTeam Visma | Lease a Bike2.3%1.0%26.002.5%-0.2pp
Almeida JoaoUAE Team Emirates-XRG1.3%2.0%51.001.3%+0.7pp
Nordhagen JørgenTeam Visma | Lease a Bike1.6%1.0%151.000.4%+1.2pp
Romeo IvanMovistar Team1.2%1.6%401.000.2%+1.5pp
Rodriguez CarlosNetcompany INEOS1.4%0.9%151.000.4%+1.0pp
Riccitello MatthewDecathlon CMA CGM Team1.3%0.7%81.000.8%+0.5pp
Tejada HaroldXDS Astana Team1.3%1.3%101.000.6%+0.7pp
Bisiaux LéoDecathlon CMA CGM Team0.9%1.3%151.000.4%+0.8pp
Widar JarnoLotto-Intermarché1.3%1.1%51.001.3%+0.0pp
Berthet ClémentGroupama-FDJ United0.9%1.2%101.000.6%+0.6pp
Tulett BenTeam Visma | Lease a Bike0.8%1.2%151.000.4%+0.8pp
Bilbao PelloBahrain Victorious1.0%1.2%201.000.3%+0.8pp
Fortunato LorenzoXDS Astana Team0.7%0.5%23.002.8%-2.1pp
Torres PabloUAE Team Emirates-XRG0.3%0.3%19.003.4%-3.1pp
Aitana shatters — the open GC race is attacked to pieces — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Roglic Primoz8.4%7.0%12.8%25.6%76.4%17.00
2Gall Felix7.9%7.2%11.9%33.8%83.5%2.60
3Onley Oscar6.6%6.9%9.6%29.7%80.2%11.00
4Mas Enric4.4%2.2%7.0%22.7%77.5%6.50
5Carapaz Richard3.3%2.6%5.1%14.7%73.5%34.00
6Johannessen Tobias Halland2.7%1.8%4.3%7.6%35.4%21.00
7Kuss Sepp2.3%2.4%3.3%17.2%63.7%26.00
8Skjelmose Mattias2.1%2.2%3.1%9.9%67.4%101.00
9Vine Jay2.1%2.3%3.0%5.5%15.0%4.75
10Nordhagen Jørgen1.6%2.1%2.3%5.7%20.5%151.00
11Rodriguez Carlos1.4%0.8%2.3%4.9%20.1%151.00
12Riccitello Matthew1.3%1.4%1.9%5.3%36.8%81.00
13Almeida Joao1.3%3.3%1.4%7.7%19.8%51.00
14Widar Jarno1.3%1.2%1.9%5.8%41.1%51.00
15Tejada Harold1.3%2.0%1.7%8.6%54.7%101.00
16Romeo Ivan1.2%0.8%1.9%3.9%15.9%401.00
17Bilbao Pello1.0%1.0%1.4%5.0%21.0%201.00
18Berthet Clément0.9%1.1%1.4%3.4%35.2%101.00
19Buitrago Santiago0.9%0.6%1.4%3.9%16.0%41.00
20Bisiaux Léo0.9%1.4%1.1%4.9%32.2%151.00
21Tulett Ben0.8%0.8%1.2%3.3%14.2%151.00
22Omrzel Jakob0.8%0.9%1.1%4.6%47.2%81.00
23Castrillo Pablo0.7%0.8%1.1%1.4%5.9%201.00
24Fortunato Lorenzo0.7%0.4%1.1%2.2%11.5%23.00
25Svestad-Bårdseng Embret0.6%0.8%0.9%1.9%21.6%201.00
26Fisher-Black Finn0.5%0.7%0.8%2.2%9.8%751.00
27Vermaerke Kevin0.4%0.2%0.7%1.5%9.7%201.00
28van Aert Wout0.4%1.6%0.4%3.7%10.0%n/a
29Zana Filippo0.4%0.2%0.7%0.9%13.5%201.00
30Landa Mikel0.4%0.1%0.6%0.9%11.5%101.00
Aitana together — a larger GC group survives the steady final climb — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Roglic Primoz10.0%6.0%14.9%18.8%71.7%17.00
2Onley Oscar6.7%5.6%9.5%17.7%72.0%11.00
3Gall Felix4.6%2.9%6.8%13.2%62.0%2.60
4Carapaz Richard3.9%2.1%5.9%12.0%63.2%34.00
5Vine Jay3.1%5.2%3.8%9.6%23.1%4.75
6Skjelmose Mattias3.1%2.3%4.5%8.7%61.0%101.00
7Mas Enric2.7%1.1%4.2%8.0%53.4%6.50
8Johannessen Tobias Halland2.6%1.6%3.8%6.9%36.3%21.00
9van Aert Wout2.5%2.2%3.6%5.8%15.5%n/a
10Almeida Joao2.0%5.2%2.0%7.9%18.5%51.00
11Romeo Ivan1.6%2.1%2.1%5.2%17.1%401.00
12Tejada Harold1.3%1.7%1.7%7.3%47.5%101.00
13Bisiaux Léo1.3%1.8%1.6%5.4%35.0%151.00
14Berthet Clément1.2%0.9%1.8%3.0%37.8%101.00
15Tulett Ben1.2%1.2%1.7%4.6%17.6%151.00
16Bilbao Pello1.2%1.7%1.5%6.9%25.2%201.00
17Widar Jarno1.1%1.1%1.6%4.3%39.6%51.00
18Nordhagen Jørgen1.0%1.2%1.3%4.1%17.8%151.00
19Kuss Sepp1.0%1.4%1.2%7.6%45.2%26.00
20Fisher-Black Finn0.9%1.6%1.1%5.5%14.4%751.00
21Rodriguez Carlos0.9%0.8%1.2%2.2%15.4%151.00
22Omrzel Jakob0.9%0.9%1.2%3.6%46.7%81.00
23Laurance Axel0.8%1.2%1.0%5.1%18.3%1001.00
24Riccitello Matthew0.7%0.6%1.1%2.6%28.5%81.00
25Buitrago Santiago0.7%0.6%1.0%3.5%22.5%41.00
26Svestad-Bårdseng Embret0.7%0.7%1.0%1.9%21.7%201.00
27Laporte Christophe0.7%2.2%0.6%8.4%11.8%n/a
28Vansevenant Mauri0.7%0.7%0.9%1.9%17.7%1001.00
29Castrillo Pablo0.6%1.0%0.8%2.0%7.0%201.00
30Pedersen Mads0.6%1.1%0.7%2.0%3.3%751.00

After the stage

Results — won by Mas Enric

PosRiderTeamAitana shatters win pCohesive GC group win p
1Mas EnricMovistar Team4.4%2.7%
2Onley OscarNetcompany INEOS Cycling Team6.6%6.7%
3Roglic PrimozRed Bull-BORA-hansgrohe8.4%10.0%
4Gall FelixDecathlon CMA CGM Team7.9%4.6%
5Rodriguez CristianXDS Astana Team0.4%0.2%
6Skjelmose MattiasLidl-Trek2.1%3.1%
7Widar JarnoLotto-Intermarché1.3%1.1%
8Tejada HaroldXDS Astana Team1.3%1.3%
9Carapaz RichardEF Education-EasyPost3.3%3.9%
10Buitrago SantiagoBahrain Victorious0.9%0.7%

Scenario scoring — probability given to the actual winner

ScenarioBlend win pBook devig
Aitana shatters4.35%9.91%
Cohesive GC group2.74%9.91%

Reflection

What we make of it

Enric Mas won at Alto de Aitana and took the race lead, with Oscar Onley on the same time, Roglic at 12 seconds and Gall at 18. The GC group came apart exactly as a summit finish on an open classification should make it: a winning group of two, 18,640 seconds of racing, and the oracle returned gc_day on the tiny_group rule.

The key was exact at full weight — the first time this campaign the macro item was keyed at 1.0 and the road agreed. This is the stage-7 correction working as intended: start from the macro item and demand a positive reason to demote it. On stage 7 the chase-incentive test said nobody had a reason to spend and I keyed gc_day anyway; here four men were separated by 2:20 with a summit finish in front of them, so the incentive was real and the macro was right. Scorecard moves to 4/8 exact, 7/8 covered, mean weight 0.54.

The board's retrieval was the best of the campaign. `aitana_shatters` put the actual top four — Roglic 8.4%, Gall 7.9%, Onley 6.6%, Mas 4.4% — in its own top four, in a different order (they finished 3, 4, 2, 1). Getting the quartet without the ordering is precisely what these heads are for; the ordering inside a four-man summit-finish group is close to a coin toss. The cohesive-group branch was slightly worse, dropping Mas to #7 at 2.7%.

The book had a bad day and the model had a good one. Gall was the favourite at 2.60 (24.8% devig) and finished 4th; the winner Mas was only its third choice at 6.50 (9.9%). More striking, its second favourite Jay Vine at 4.75 — 13.6% devig — finished 119th. That is the second consecutive stage where the book's price on Vine has been badly wrong (85th at 8.5% devig on stage 7), and it moves the break-card ledger back toward the model after stage 7 handed the market a clean win.

The retrieval channel earned its keep again: the keyed kernod board held 10 of the actual top 15 against production's 9 on the shatters scenario and 10 against 8 on the cohesive one. Ledger across scored stages: st2 -1, st4 level, st5 +1, st6 -1, st7 +3, st9 +1/+2.

The GC heads now disagree in a way that is worth recording. Against a book reading Mas 33.3% / Roglic 30.6% / Gall 15.3% / Onley 10.9%, the state-aware outlook head returns 33.9% / 29.7% / 4.2% / 2.1% — it matches the market almost exactly on the two leaders and then collapses on the chasers, while the blend does the opposite, putting Mas at 7.5% behind Roglic, Onley and Gall because the main heads never see the standings. Neither head is right alone: the outlook knows who is winning and over-concentrates, the blend knows who is good and ignores the race. This is the clearest in-race evidence yet for the dedicated-GC direction — a corrector over the shared board rather than either head on its own.

Carry forward. (1) Pogacar's stage-8 abandon has turned a procession into a four-man race and every downstream output now has to be read on the new classification, not the old one. (2) Rest day 2026-08-31; stage 10 is 2026-09-01, a reduced hilly sprint where the book leads Brennan 2.75, van Aert 4.00, Pedersen 7.00 and then falls off a cliff to Meeus at 19. (3) The chase-incentive test is now 1-for-1 since it replaced the macro-frequency prior — keep applying it rather than counting macro streaks.