Cycling race predictor · Vuelta a España 2026

Stage 8 — 2026-08-29

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

4 scenarios 178 riders priced models retrained 2026-08-09 book snapshot markets_1653.json

The fork

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

Bunch sprint

The gallop — Barx is too shallow to matter and the run-in is a ruler
sprint1.00
mountain0.00
hilly0.00
rolling0.00
break0.00
TT0.00
keyed: bunch sprint 0.6 / survivor gallop 0.2 / split sprint 0.1 (board order by rider-type retrieval; prices unchanged)
The base case and the book's card. 1,281 m of climbing over 171 km, one categorised climb at 5.6% cresting 26 km out, a descent to Gandia and then dead-flat straight road to Xeraco. The sprinters' teams have had exactly one clean chance in eight days and lost the other opportunities to drags and mountains; this is the stage they have been waiting for since Roquetes. References are the flat-sprint archetype at race_sprint_score 1.00 with winner groups of 127 to 181: Merlier TdF 2025 stage 3, Groves Giro 2025 stage 6, Philipsen TdF 2024 stage 10, Cavendish TdF 2024 stage 5, Bennett Vuelta 2022 stage 3. Inherits the config-root day key.
Top 5 (blend): Brennan Matthew 40.5%; Meeus Jordi 18.6%; van Aert Wout 6.6%; Pedersen Mads 5.3%; Laporte Christophe 4.7%

Barx thins it

Barx thins it — a reduced but still-sprinting bunch
sprint0.52
mountain0.01
hilly0.46
rolling0.01
break0.00
TT0.00
keyed: survivor gallop 0.5 / bunch sprint 0.3 / split sprint 0.2 (board order by rider-type retrieval; prices unchanged)
The middle case, and the one that actually happened at Roquetes even though the group stayed enormous. References are the lumpy-finale reduced-sprint archetype (sprint ~0.51, hilly ~0.46): Philipsen TdF 2023 stage 7, Merlier Giro 2024 stage 3, Coquard Suisse 2024 stage 2, Milan Renewi 2024 stage 1, Merlier UAE 2025 stage 5. In model space a lifted hilly score over a retained sprint is a reduced bunch gallop — the weakest pure speed and the broken lead-out trains shed on Barx, everyone durable still there. This is the board that made Brennan its #1 and Meeus its #2 before Roquetes, and they finished first and second.
Top 5 (blend): Brennan Matthew 45.7%; Meeus Jordi 11.6%; van Aert Wout 9.1%; Pedersen Mads 5.7%; Laporte Christophe 5.5%

Barx sticks

Barx sticks after all — the hard men get away and van Aert wins it
sprint0.06
mountain0.07
hilly0.83
rolling0.02
break0.01
TT0.00
keyed: split sprint 0.6 / fast-finisher power day 0.4 (board order by rider-type retrieval; prices unchanged)
The original read, drawn properly so it can be judged rather than dismissed. If a team with a fast climber — Visma with van Aert, Lidl-Trek with Pedersen — decides to ride Barx hard rather than tempo it, 4.7 km at 5.6% eight days into a Grand Tour is enough to put the pure sprinters into difficulty, and 26 km is a long way to organise a chase without them. References are the archetype hard-men reduced sprints (hilly 0.82-0.86, the classics-shaped day ending in a reduced bunch kick): Pedersen's Vuelta 2022 stage 19, Matthews' Catalunya 2022 opener, Colbrelli's Dauphine 2021 stage 3, Cort's Dauphine 2024 stage 2, Van Gils' Eschborn-Frankfurt 2024. The same reference set produced the 'Pauls sticks' board at Roquetes, where it was the wrong branch — so the honest use of this board is as the measuring stick: the ratio of a rider's probability here to his probability under the flat anchor is the retention statistic that separates Groves and Coquard, who collapse when the road tilts, from van Aert and Pedersen, who do not.
Top 5 (blend): Brennan Matthew 27.1%; Pogacar Tadej 12.7%; Laporte Christophe 10.0%; Pedersen Mads 9.5%; van Aert Wout 6.8%

Hindsight (post-hoc)

Hindsight (post-hoc) — the neutralised climb and an 85% mass sprint
sprint1.00
mountain0.00
hilly0.00
rolling0.00
break0.00
TT0.00
keyed: bunch sprint (board order by rider-type retrieval; prices unchanged)
Post-race reconstruction, NOT a prediction — run with --no-log. A crash and Pogačar's retirement neutralised the main terrain feature, after which 148 riders received the winner's time: 85.5% of the 173 classified finishers. The references are five high-level pure sprint stages with similarly broad winning groups (127 to 151 riders; roughly 85% of their fields): Tirreno-Adriatico 2023 stage 2, Vuelta 2024 stage 5, Tour 2024 stage 16, Tour 2025 stage 17 and Tour 2026 stage 12. This asks whether perfect knowledge that Barx would contribute no selection would have surfaced Bryan Coquard, whom the morning bunch board placed just outside its displayed pool.
Top 5 (blend): Brennan Matthew 41.3%; Meeus Jordi 21.7%; van Aert Wout 7.3%; Laporte Christophe 5.2%; Pedersen Mads 4.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 Bunch sprint 102%, Barx thins it 103%, Barx sticks 107%, Hindsight (post-hoc) 105% — 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.

RiderTeamBunch sprintBarx thins itBarx sticksHindsight (post-hoc)Book oddsBook devigMax edge
Brennan MatthewTeam Visma | Lease a Bike40.5%45.7%27.1%41.3%1.6540.8%+4.9pp
Meeus JordiRed Bull-BORA-hansgrohe18.6%11.6%3.2%21.7%5.5012.2%+9.4pp
Pogacar TadejUAE Team Emirates-XRG1.3%2.0%12.7%0.9%81.000.8%+11.9pp
Laporte ChristopheTeam Visma | Lease a Bike4.7%5.5%10.0%5.2%34.002.0%+8.0pp
Pedersen MadsLidl-Trek5.3%5.7%9.5%4.3%19.003.5%+5.9pp
van Aert WoutTeam Visma | Lease a Bike6.6%9.1%6.8%7.3%7.509.0%+0.1pp
Turner BenNetcompany INEOS2.4%3.5%4.8%2.3%51.001.3%+3.4pp
De Schuyteneer SteffenLotto-Intermarché4.4%2.6%1.3%4.0%101.000.7%+3.8pp
Dainese AlbertoSoudal Quick-Step3.2%1.5%0.2%4.1%81.000.8%+3.2pp
Laurance AxelNetcompany INEOS1.1%1.9%3.9%1.2%81.000.8%+3.1pp
Fisher-Black FinnRed Bull-BORA-hansgrohe0.0%0.2%3.1%0.0%151.000.4%+2.7pp
Groves KadenAlpecin-Premier Tech2.1%1.1%0.3%1.8%19.003.5%-1.4pp
Canal CarlosMovistar Team0.3%0.4%1.6%0.2%401.000.2%+1.5pp
Coquard BryanCofidis1.5%1.1%0.3%1.2%67.001.0%+0.5pp
Aular OrluisMovistar Team0.8%1.0%1.3%0.8%67.001.0%+0.3pp
Renard AlexisCofidis0.6%1.0%1.2%0.6%201.000.3%+0.9pp
Brustenga MarcEquipo Kern Pharma1.1%0.3%0.1%0.7%201.000.3%+0.8pp
Govekar MatevzBahrain Victorious1.0%1.0%0.2%1.1%201.000.3%+0.8pp
Tulett BenTeam Visma | Lease a Bike0.0%0.2%1.0%0.0%251.000.3%+0.7pp
Romele AlessandroXDS Astana Team0.0%0.0%0.0%0.0%29.002.3%-2.3pp
The gallop — Barx is too shallow to matter and the run-in is a ruler — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Brennan Matthew40.5%41.3%39.4%62.5%88.0%1.65
2Meeus Jordi18.6%15.9%18.9%46.9%86.0%5.50
3van Aert Wout6.6%5.8%6.7%22.9%63.3%7.50
4Pedersen Mads5.3%6.1%4.9%22.7%72.4%19.00
5Laporte Christophe4.7%6.9%4.1%21.5%71.0%34.00
6De Schuyteneer Steffen4.4%2.9%4.7%13.5%73.5%101.00
7Dainese Alberto3.2%1.9%3.5%10.8%60.8%81.00
8Turner Ben2.4%3.0%2.2%14.9%60.0%51.00
9Groves Kaden2.1%2.2%2.0%8.2%46.5%19.00
10Coquard Bryan1.5%1.0%1.6%5.6%67.3%67.00
11Pogacar Tadej1.3%1.3%1.3%3.4%14.4%81.00
12Brustenga Marc1.1%1.1%1.1%7.2%61.4%201.00
13Laurance Axel1.1%1.4%1.0%5.9%53.9%81.00
14Govekar Matevz1.0%1.7%0.8%9.4%58.4%201.00
15Macias Cesar0.9%1.2%0.9%7.5%56.0%301.00
16Hofstetter Hugo0.8%0.9%0.8%5.9%69.6%51.00
17Aular Orluis0.8%0.4%0.9%3.8%58.5%67.00
18Miquel Delgado Pau0.6%0.9%0.6%3.3%42.0%41.00
19Renard Alexis0.6%1.0%0.5%5.6%49.6%201.00
20González David0.6%0.1%0.7%2.2%62.8%201.00
21Sentjens Sente0.4%1.5%0.2%4.4%50.3%301.00
22Cort Magnus0.3%0.1%0.3%1.1%11.9%81.00
23Oliveira Ivo0.3%0.5%0.2%4.3%21.7%251.00
24Canal Carlos0.3%0.2%0.3%1.5%23.9%401.00
25Nys Thibau0.2%0.2%0.2%1.1%12.4%151.00
26Braet Vito0.2%0.1%0.2%1.5%51.9%101.00
27Albanese Vincenzo0.1%0.2%0.1%1.1%28.2%51.00
28Tronchon Bastien0.1%0.1%0.1%1.6%15.1%251.00
29Garofoli Gianmarco0.1%0.1%0.1%0.6%10.2%601.00
30Hayter Ethan0.1%0.2%0.1%0.9%13.8%301.00
Barx thins it — a reduced but still-sprinting bunch — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Brennan Matthew45.7%39.0%46.1%60.1%82.9%1.65
2Meeus Jordi11.6%13.7%10.8%38.6%76.9%5.50
3van Aert Wout9.1%6.8%9.4%27.1%59.4%7.50
4Pedersen Mads5.7%7.8%5.0%25.1%67.5%19.00
5Laporte Christophe5.5%7.1%4.9%27.7%69.2%34.00
6Turner Ben3.5%3.4%3.4%15.2%56.5%51.00
7De Schuyteneer Steffen2.6%2.6%2.5%13.4%57.7%101.00
8Pogacar Tadej2.0%3.3%1.6%10.2%28.5%81.00
9Laurance Axel1.9%2.6%1.7%8.8%54.5%81.00
10Dainese Alberto1.5%1.1%1.6%6.6%40.9%81.00
11Groves Kaden1.1%1.3%1.1%5.1%31.3%19.00
12Coquard Bryan1.1%0.7%1.1%3.5%66.2%67.00
13Renard Alexis1.0%1.8%0.8%7.8%46.1%201.00
14Aular Orluis1.0%1.1%1.0%5.9%47.2%67.00
15Govekar Matevz1.0%1.8%0.7%9.3%49.8%201.00
16Hofstetter Hugo0.9%1.3%0.8%7.0%59.4%51.00
17Miquel Delgado Pau0.8%0.9%0.7%4.0%52.8%41.00
18Sentjens Sente0.5%1.8%0.2%4.7%35.8%301.00
19González David0.5%0.1%0.6%1.9%57.2%201.00
20Canal Carlos0.4%0.2%0.5%2.0%29.7%401.00
21Brustenga Marc0.3%0.1%0.3%3.2%39.4%201.00
22Cort Magnus0.3%0.2%0.3%0.9%12.2%81.00
23Braet Vito0.2%0.0%0.3%2.1%51.7%101.00
24Macias Cesar0.2%0.2%0.2%3.7%44.5%301.00
25Mulubrhan Henok0.2%0.1%0.2%1.3%12.9%301.00
26Albanese Vincenzo0.2%0.2%0.2%1.4%36.5%51.00
27Garofoli Gianmarco0.2%0.1%0.2%0.9%18.0%601.00
28Nys Thibau0.2%0.2%0.2%1.1%13.2%151.00
29Fisher-Black Finn0.2%0.1%0.2%2.1%11.0%151.00
30Oliveira Ivo0.2%0.2%0.2%2.8%14.1%251.00
Barx sticks after all — the hard men get away and van Aert wins it — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Brennan Matthew27.1%27.1%25.3%46.7%65.5%1.65
2Pogacar Tadej12.7%16.3%11.0%35.0%57.8%81.00
3Laporte Christophe10.0%11.1%9.1%31.6%60.6%34.00
4Pedersen Mads9.5%11.9%8.3%29.5%60.2%19.00
5van Aert Wout6.8%7.2%6.3%23.6%47.6%7.50
6Turner Ben4.8%4.4%4.5%17.0%46.6%51.00
7Laurance Axel3.9%3.8%3.7%13.4%51.5%81.00
8Meeus Jordi3.2%2.8%3.1%15.0%34.4%5.50
9Fisher-Black Finn3.1%6.0%2.2%18.5%45.2%151.00
10Canal Carlos1.6%1.2%1.6%4.8%33.9%401.00
11Aular Orluis1.3%1.5%1.2%6.3%37.7%67.00
12De Schuyteneer Steffen1.3%1.5%1.1%5.4%23.0%101.00
13Renard Alexis1.2%1.3%1.1%5.7%26.5%201.00
14Tulett Ben1.0%1.8%0.8%5.4%23.7%251.00
15Miquel Delgado Pau0.9%1.0%0.8%5.4%35.6%41.00
16Onley Oscar0.8%0.2%0.9%2.7%21.1%601.00
17Roglic Primoz0.7%0.3%0.7%1.4%11.7%1001.00
18Carapaz Richard0.7%0.1%0.8%0.8%14.6%801.00
19Johannessen Tobias Halland0.6%0.2%0.7%1.6%14.8%401.00
20Mulubrhan Henok0.6%0.2%0.7%1.6%24.5%301.00
21Cobo Ivan0.6%0.2%0.6%3.9%19.3%501.00
22Debruyne Ramses0.6%0.3%0.6%2.3%25.7%301.00
23Brenner Marco0.5%0.1%0.5%1.8%24.1%801.00
24Skjelmose Mattias0.5%0.3%0.5%2.2%16.6%801.00
25Berthet Clément0.5%0.1%0.5%0.9%11.6%1501.00
26Garofoli Gianmarco0.4%0.2%0.5%1.6%27.1%601.00
27Kron Andreas0.4%0.0%0.4%1.0%15.6%151.00
28Tejada Harold0.3%0.1%0.4%0.7%11.1%401.00
29Groves Kaden0.3%0.4%0.3%1.4%7.2%19.00
30Cort Magnus0.3%0.8%0.2%3.9%22.1%81.00
Hindsight (post-hoc) — the neutralised climb and an 85% mass sprint — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Brennan Matthew41.3%41.2%39.4%60.2%86.1%1.65
2Meeus Jordi21.7%18.8%21.4%44.0%82.8%5.50
3van Aert Wout7.3%5.8%7.3%25.4%67.0%7.50
4Laporte Christophe5.2%7.3%4.5%22.2%71.2%34.00
5Pedersen Mads4.3%5.7%3.7%20.3%69.8%19.00
6Dainese Alberto4.1%2.0%4.4%10.5%59.6%81.00
7De Schuyteneer Steffen4.0%2.4%4.3%11.5%67.5%101.00
8Turner Ben2.3%3.1%2.0%14.0%59.0%51.00
9Groves Kaden1.8%1.9%1.7%7.3%40.1%19.00
10Coquard Bryan1.2%1.0%1.2%5.1%68.2%67.00
11Laurance Axel1.2%1.4%1.1%5.7%53.3%81.00
12Govekar Matevz1.1%1.7%0.9%9.3%57.6%201.00
13Hofstetter Hugo0.9%1.1%0.8%6.2%70.4%51.00
14Pogacar Tadej0.9%2.5%0.5%3.8%15.2%81.00
15Aular Orluis0.8%0.4%0.9%4.5%59.2%67.00
16Macias Cesar0.8%1.1%0.6%7.6%49.1%301.00
17González David0.7%0.7%0.7%3.8%45.0%201.00
18Miquel Delgado Pau0.7%0.9%0.6%3.0%46.7%41.00
19Brustenga Marc0.7%0.2%0.8%9.6%58.2%201.00
20Renard Alexis0.6%1.1%0.5%6.0%50.3%201.00
21Cort Magnus0.4%0.9%0.3%5.6%35.5%81.00
22Canal Carlos0.2%0.2%0.2%1.6%24.7%401.00
23Oliveira Ivo0.2%0.3%0.1%4.2%22.6%251.00
24Braet Vito0.2%0.0%0.2%1.3%58.5%101.00
25Nys Thibau0.2%0.2%0.1%1.8%14.3%151.00
26Sentjens Sente0.1%0.1%0.1%2.7%44.9%301.00
27Albanese Vincenzo0.1%0.2%0.1%1.2%33.5%51.00
28Tronchon Bastien0.1%0.1%0.1%1.5%16.5%251.00
29Garofoli Gianmarco0.1%0.1%0.1%0.6%11.5%601.00
30Hayter Ethan0.1%0.3%0.1%1.0%14.3%301.00

After the stage

Results — won by Coquard Bryan

PosRiderTeamBunch sprint win pBarx thins it win pBarx sticks win pHindsight (post-hoc) win p
1Coquard BryanCofidis1.5%1.1%0.3%1.2%
2Pedersen MadsLidl-Trek5.3%5.7%9.5%4.3%
3Meeus JordiRed Bull-BORA-hansgrohe18.6%11.6%3.2%21.7%
4Turner BenNetcompany INEOS Cycling Team2.4%3.5%4.8%2.3%
5Labrosse JordanDecathlon CMA CGM Team0.0%0.1%0.1%0.0%
6Romele AlessandroXDS Astana Team0.0%0.0%0.0%0.0%
7Tronchon BastienGroupama-FDJ United0.1%0.1%0.1%0.1%
8Hofstetter HugoNSN Cycling Team0.8%0.9%0.3%0.9%
9Aular OrluisMovistar Team0.8%1.0%1.3%0.8%
10Brennan MatthewTeam Visma | Lease a Bike40.5%45.7%27.1%41.3%

Scenario scoring — probability given to the actual winner

ScenarioBlend win pBook devig
Bunch sprint1.50%1.00%
Barx thins it1.07%1.00%
Barx sticks0.26%1.00%
Hindsight (post-hoc)1.20%1.00%

Reflection

What we make of it

Bryan Coquard won a 148-rider mass sprint ahead of Mads Pedersen and Jordi Meeus. The crash and Pogačar's subsequent retirement defined the stage: the principal terrain feature was neutralised and the race reached Xeraco as the broad gallop the morning base case expected, though by an exceptional route rather than by ordinary control.

The official key was right. The oracle returned `bunch` from a mass-sprint finish with 148 riders on the winning time, 85.5% of the classified field; the morning read put 0.60 on `bunch`, so stage 8 scores exact and covered with weight-on-true 0.60. The campaign record moves to 3/7 exact and 6/7 covered, with mean weight 0.47.

The board read the macro shape better than the winner. The bunch scenario made Meeus #1, Brennan #2 and Pedersen #4; they finished third, tenth and second. Coquard was a near-pool miss at #19 on the production board and #16 on the day-menu board, priced at 1.5% against the book's 1.0% devigged line at 67.0. The top-15 retrieval count was 6 for the keyed board against 7 for production: the key cost one place on a day whose front already resembled the production sprint ranking.

Perfect finish-shape knowledge did not improve the result. The no-log hindsight profile, built from five broad pure sprints with winning groups around 85% of their fields, still placed Coquard #19 on production and #19 on the keyed board at 1.2%; it retrieved 6 of the actual top 15 against production's 7. This is the sixth consecutive post-hoc run that failed to add value: once the correct broad scenario was already represented, the remaining miss was rider ordering rather than course reading.

The hard-men branch was decisively wrong once the climb was neutralised: it placed Coquard #137 and centred Pogačar, Pedersen, van Aert and Brennan. That is not evidence against its terrain premise because the terrain was removed from the race, but it is evidence that the settled page must record disruptions explicitly rather than treating every result as an ordinary test of the course read.

Carry forward: Pogačar is DNF and must disappear from every live-state and GC output after stage 8. Enric Mas inherits the race lead, with Roglič at 1:00 and Gall at 1:11. Tomorrow's Aitana stage is therefore a genuine contest for an open GC rather than another day controlled by a leader already three and a half minutes clear.