Cycling race predictor · Vuelta a España 2026

Stage 2 — 2026-08-23

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 184 riders priced models retrained 2026-08-09 book snapshot markets_1507.json

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.

Hard-men sprint

The hard men's sprint — a fractured bunch kicks up the Manosque drag
sprint0.06
mountain0.07
hilly0.83
rolling0.02
break0.01
TT0.00
keyed: split sprint 0.6 / fast-finisher power day 0.5 (board order by rider-type retrieval; prices unchanged)
The base case, and the book's card (Pedersen 3.50, van Aert 3.50, Brennan 5.50). 214.3 km and 2,862 m from Monaco to Manosque, the longest day of the race: the Alto Chateauneuf-Grasse (12.8 km at 2.9%) and the Col de Saint-Andrieu (4.7 km at 4.8%, then 3 km at 6.1%) come in the first half, ~60 km of unclassified undulation follows, and the finale drops into the Durance valley before 5 km of gentle false-flat uphill into Manosque with the last kilometre at ~3%. That is not a day that shatters — it is a day that grinds the pure speed out of the bunch and hands the finish to whoever can still kick after 214 km on a 3% ramp. References are the archetype hard-men reduced sprints (hilly 0.82-0.86; remember the semantics — high hilly = classics-shaped day ending in a reduced bunch sprint, fast-but-durable men up, pure sprinters and GC climbers down): 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. Winner groups there ran 35-79 riders, which is the 'slightly less reduced' end of the read. Inherits the config-root day key.
Top 5 (blend): Brennan Matthew 22.9%; Pogacar Tadej 11.5%; Laporte Christophe 8.8%; Pedersen Mads 7.9%; van Aert Wout 6.2%

Pogacar kicks

The very reduced group — the road shreds it and Pogacar takes the bonus
sprint0.00
mountain0.18
hilly0.00
rolling0.81
break0.01
TT0.00
keyed: fast-finisher power day 0.8 / split sprint 0.2 (board order by rider-type retrieval; prices unchanged)
The selective branch. Pogacar is in red after winning the Monaco time trial and there are bonus seconds on the line; UAE have no reason to keep the day easy, and 2,862 m over 214 km in August heat is a real tax on anyone whose engine is pure speed. On this reading the front group is a dozen or two — the tough fast men who survive, plus the GC punchers — and the winner is whoever climbs best among the men who can still sprint. References are exactly that shape (rolling 0.75-0.91, mountain 0.09-0.24, winner groups 8-14): Pogacar's Longwy 2022 (TdF stage 6, beating van Aert and Matthews up a 1.6 km ramp from ~13 riders), Pedersen's Paris-Nice 2025 stage 6, van der Poel's Visegrad 2022 (Giro stage 1), Ackermann's Giro 2019 stage 2, van der Poel's Tirreno 2026 stage 4. Its own day key leans res_1 (the Cadel-day item: enough climbing to shed the pure sprinters, a fast finisher wins from a small hard group), so the pool it surfaces should be visibly climbier than the base read's.
Top 5 (blend): Pogacar Tadej 48.2%; van Aert Wout 5.6%; Laporte Christophe 5.1%; Brennan Matthew 3.7%; Onley Oscar 3.4%

Sprint survives

The sprinters survive — a reduced-but-real gallop the book has written off
sprint0.52
mountain0.01
hilly0.46
rolling0.01
break0.00
TT0.00
keyed: survivor gallop 0.6 / split sprint 0.4 (board order by rider-type retrieval; prices unchanged)
The counter-read and the anchor. Stage 2 of a Grand Tour, all the climbing done more than 60 km from the line, a long descent into the valley and a finish the roadbook itself calls a false flat: if the sprinters' teams decide the drag is survivable, this is an ordinary reduced gallop and the fastest man there wins. References are the lumpy-finale reduced-sprint archetype (sprint ~0.51, hilly ~0.46, breakaway ~0): 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. The book prices this branch near zero — Groves is its shortest pure sprinter at 17.0, Coquard 81, Dainese 101 — so this board is mainly a measuring stick: the ratio of a rider's probability here to his probability under 'Pogacar kicks' is the same retention statistic the Tour's punchy filter used, and it separates the fast men who keep their kick when the day turns hard from the ones who do not.
Top 5 (blend): Brennan Matthew 45.5%; van Aert Wout 10.2%; Meeus Jordi 10.0%; Laporte Christophe 5.7%; Pedersen Mads 5.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 Hard-men sprint 96%, Pogacar kicks 114%, Sprint survives 104% — 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.

RiderTeamHard-men sprintPogacar kicksSprint survivesBook oddsBook devigMax edge
Pogacar TadejUAE Team Emirates-XRG11.5%48.2%2.4%15.004.5%+43.7pp
Brennan MatthewTeam Visma | Lease a Bike22.9%3.7%45.5%5.5012.3%+33.2pp
van Aert WoutTeam Visma | Lease a Bike6.2%5.6%10.2%3.5019.3%-9.1pp
Meeus JordiRed Bull-BORA-hansgrohe2.5%0.3%10.0%15.004.5%+5.5pp
Laporte ChristopheTeam Visma | Lease a Bike8.8%5.1%5.7%41.001.6%+7.1pp
Pedersen MadsLidl-Trek7.9%2.9%5.1%3.5019.3%-11.4pp
Turner BenNetcompany INEOS5.0%0.2%3.8%15.004.5%+0.5pp
Laurance AxelNetcompany INEOS4.5%1.5%2.7%51.001.3%+3.2pp
Onley OscarNetcompany INEOS0.8%3.4%0.1%301.000.2%+3.2pp
Gall FelixDecathlon CMA CGM Team0.1%2.6%0.0%n/a––
De Schuyteneer SteffenLotto-Intermarché1.1%0.2%2.4%101.000.7%+1.7pp
Fisher-Black FinnRed Bull-BORA-hansgrohe2.2%1.8%0.2%51.001.3%+0.9pp
Roglic PrimozRed Bull-BORA-hansgrohe0.5%2.0%0.0%201.000.3%+1.6pp
Vine JayUAE Team Emirates-XRG0.1%1.7%0.0%401.000.2%+1.6pp
Romeo IvanMovistar Team0.3%1.6%0.0%301.000.2%+1.4pp
Widar JarnoLotto-Intermarché0.2%1.6%0.0%201.000.3%+1.2pp
Carapaz RichardEF Education-EasyPost0.6%1.6%0.1%301.000.2%+1.3pp
Aular OrluisMovistar Team1.5%0.2%1.3%51.001.3%+0.1pp
Renard AlexisCofidis1.4%0.2%1.2%151.000.4%+1.0pp
Dainese AlbertoSoudal Quick-Step0.2%0.0%1.4%101.000.7%+0.8pp
Bisiaux LéoDecathlon CMA CGM Team0.2%1.4%0.0%101.000.7%+0.7pp
Canal CarlosMovistar Team1.4%0.3%0.5%301.000.2%+1.1pp
Mas EnricMovistar Team0.1%1.3%0.0%n/a––
Groves KadenAlpecin-Premier Tech0.4%0.0%1.3%17.004.0%-2.7pp
The hard men's sprint — a fractured bunch kicks up the Manosque drag — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Brennan Matthew22.9%20.8%24.3%36.2%51.5%5.50
2Pogacar Tadej11.5%18.4%10.3%40.8%62.1%15.00
3Laporte Christophe8.8%10.2%8.8%29.7%55.5%41.00
4Pedersen Mads7.9%10.4%7.7%25.3%52.7%3.50
5van Aert Wout6.2%6.0%6.5%22.2%47.0%3.50
6Turner Ben5.0%3.9%5.5%13.9%41.5%15.00
7Laurance Axel4.5%3.0%5.1%13.2%45.6%51.00
8Meeus Jordi2.5%2.6%2.6%11.3%25.7%15.00
9Fisher-Black Finn2.2%3.4%2.1%10.5%38.3%51.00
10Aular Orluis1.5%1.6%1.5%5.8%30.5%51.00
11Renard Alexis1.4%1.1%1.6%4.5%21.9%151.00
12Canal Carlos1.4%0.9%1.5%3.8%25.5%301.00
13De Schuyteneer Steffen1.1%1.3%1.1%4.6%20.8%101.00
14Onley Oscar0.8%0.3%1.0%4.5%23.2%301.00
15Tulett Ben0.8%1.5%0.7%5.5%25.6%151.00
16Miquel Delgado Pau0.8%0.7%0.8%3.9%25.4%101.00
17Carapaz Richard0.6%0.1%0.8%1.7%14.6%301.00
18Mulubrhan Henok0.6%0.3%0.6%1.6%30.7%n/a
19Johannessen Tobias Halland0.5%0.2%0.6%2.4%21.2%501.00
20Roglic Primoz0.5%0.4%0.6%1.9%12.3%201.00
21Cobo Ivan0.5%0.2%0.6%2.7%25.3%301.00
22Skjelmose Mattias0.5%0.7%0.5%3.4%23.2%301.00
23Debruyne Ramses0.5%0.2%0.6%1.1%17.4%301.00
24Brenner Marco0.5%0.3%0.6%1.1%19.3%401.00
25Berthet Clément0.4%0.1%0.5%1.0%15.0%n/a
26Groves Kaden0.4%0.5%0.3%2.8%12.7%17.00
27Garofoli Gianmarco0.3%0.1%0.4%1.0%23.6%n/a
28Kron Andreas0.3%0.1%0.4%1.0%16.9%126.00
29González David0.3%0.1%0.4%0.8%13.1%401.00
30Romeo Ivan0.3%0.1%0.3%0.8%10.9%301.00
The very reduced group — the road shreds it and Pogacar takes the bonus — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Pogacar Tadej48.2%55.1%40.5%72.7%86.3%15.00
2van Aert Wout5.6%4.8%5.1%14.9%41.5%3.50
3Laporte Christophe5.1%5.4%4.4%13.2%33.6%41.00
4Brennan Matthew3.7%6.4%2.5%14.1%28.1%5.50
5Onley Oscar3.4%1.5%3.5%6.0%33.7%301.00
6Pedersen Mads2.9%3.7%2.3%8.8%25.9%3.50
7Gall Felix2.6%1.3%2.6%5.9%30.0%n/a
8Roglic Primoz2.0%1.3%1.9%4.5%31.4%201.00
9Fisher-Black Finn1.8%2.4%1.4%7.4%35.0%51.00
10Vine Jay1.7%1.3%1.6%4.0%26.3%401.00
11Romeo Ivan1.6%1.8%1.4%6.5%30.5%301.00
12Widar Jarno1.6%0.8%1.6%4.0%33.6%201.00
13Carapaz Richard1.6%1.0%1.5%5.6%37.2%301.00
14Laurance Axel1.5%1.1%1.4%4.3%25.8%51.00
15Bisiaux Léo1.4%1.3%1.2%4.6%37.3%101.00
16Mas Enric1.3%0.7%1.3%8.4%35.9%n/a
17Skjelmose Mattias1.1%2.3%0.7%5.5%38.8%301.00
18Johannessen Tobias Halland0.9%0.8%0.9%5.5%37.1%501.00
19Tejada Harold0.8%0.3%0.9%2.0%18.4%401.00
20Kuss Sepp0.8%0.7%0.7%4.8%17.8%n/a
21Bilbao Pello0.8%0.7%0.7%1.8%15.8%501.00
22Berthet Clément0.8%0.4%0.8%2.6%22.2%n/a
23Almeida Joao0.8%0.9%0.7%5.1%17.2%301.00
24Tulett Ben0.8%1.1%0.6%3.4%23.5%151.00
25Vansevenant Mauri0.7%0.2%0.8%0.8%11.8%801.00
26Nordhagen Jørgen0.7%1.5%0.4%3.3%18.4%n/a
27Beloki Markel0.7%1.1%0.5%4.4%26.4%801.00
28Castrillo Pablo0.7%0.8%0.5%2.1%13.1%501.00
29Riccitello Matthew0.6%0.4%0.6%2.1%20.7%n/a
30Brenner Marco0.6%0.2%0.6%2.7%16.7%401.00
The sprinters survive — a reduced-but-real gallop the book has written off — top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Book odds
1Brennan Matthew45.5%41.0%44.9%60.4%80.5%5.50
2van Aert Wout10.2%9.0%10.2%29.6%63.2%3.50
3Meeus Jordi10.0%10.2%9.6%31.9%63.1%15.00
4Laporte Christophe5.7%8.2%4.8%29.4%63.8%41.00
5Pedersen Mads5.1%6.3%4.7%21.6%57.6%3.50
6Turner Ben3.8%2.8%4.0%12.0%48.3%15.00
7Laurance Axel2.7%2.6%2.6%8.8%49.9%51.00
8Pogacar Tadej2.4%5.6%1.5%13.6%33.9%15.00
9De Schuyteneer Steffen2.4%2.2%2.3%8.4%44.9%101.00
10Dainese Alberto1.4%0.9%1.5%4.8%29.3%101.00
11Aular Orluis1.3%1.4%1.3%5.6%38.5%51.00
12Groves Kaden1.3%1.2%1.3%4.8%27.7%17.00
13Renard Alexis1.2%1.5%1.0%6.3%36.8%151.00
14Govekar Matevz1.2%2.3%0.8%8.5%38.3%101.00
15Coquard Bryan0.9%0.5%1.0%2.4%38.9%81.00
16Hofstetter Hugo0.9%1.1%0.8%6.0%49.5%101.00
17Miquel Delgado Pau0.7%0.8%0.7%4.1%41.0%101.00
18González David0.5%0.1%0.6%1.2%31.2%401.00
19Canal Carlos0.5%0.4%0.5%2.3%27.4%301.00
20Brustenga Marc0.3%0.1%0.4%1.4%28.9%201.00
21Cort Magnus0.3%0.2%0.3%0.6%9.2%41.00
22Braet Vito0.2%0.0%0.3%0.6%25.7%81.00
23Macias Cesar0.2%0.2%0.2%1.9%22.1%301.00
24Mulubrhan Henok0.2%0.2%0.2%1.1%10.7%n/a
25Albanese Vincenzo0.2%0.3%0.2%0.8%19.4%81.00
26Garofoli Gianmarco0.2%0.2%0.2%0.8%13.6%n/a
27Oliveira Ivo0.2%0.2%0.2%1.3%11.0%126.00
28Fisher-Black Finn0.2%0.2%0.2%3.3%17.2%51.00
29Tulett Ben0.2%0.2%0.1%1.0%8.8%151.00
30Nys Thibau0.2%0.2%0.1%0.7%8.6%67.00

After the stage

Results — won by Brennan Matthew

PosRiderTeamHard-men sprint win pPogacar kicks win pSprint survives win p
1Brennan MatthewTeam Visma | Lease a Bike22.9%3.7%45.5%
2Miquel Delgado PauBahrain Victorious0.8%0.1%0.7%
3Pogacar TadejUAE Team Emirates-XRG11.5%48.2%2.4%
4Pedersen MadsLidl-Trek7.9%2.9%5.1%
5Hofstetter HugoNSN Cycling Team0.3%0.1%0.9%
6Johannessen Tobias HallandUno-X Mobility0.5%0.9%0.1%
7Fisher-Black FinnRed Bull-BORA-hansgrohe2.2%1.8%0.2%
8Laurance AxelNetcompany INEOS Cycling Team4.5%1.5%2.7%
9Onley OscarNetcompany INEOS Cycling Team0.8%3.4%0.1%
10Aular OrluisMovistar Team1.5%0.2%1.3%

Scenario scoring — probability given to the actual winner

ScenarioBlend win pBook devig
Hard-men sprint22.85%12.30%
Pogacar kicks3.66%12.30%
Sprint survives45.46%12.30%

Reflection

What we make of it

Matthew Brennan won it, and the model out-priced the book on the winner by the biggest margin of the campaign so far. The 'hard men's sprint' base read made Brennan its outright #1 at 24.3% on the book-preserving head against a market that had him third-choice at 12.3% devig (5.50) behind Pedersen and van Aert at 3.50 each. It also had Pogacar #2 at 10.3% against 4.5% devig, and Axel Laurance #7 at 5.1% against 1.3% (51.0). Those three finished 1st, 3rd and 8th. Pedersen, the book's co-favourite, was 4th and sat 4th on our board; van Aert, its other co-favourite at 19.3% devig, was faded to 6.5% and came 22nd. On the two names where model and market disagreed hardest, the model was right in both directions.

The read of WHO would contest was close to exact; the read of HOW MANY was not, and that is the whole story of the day. The archived top-15 composition came back sprint .40 / rolling .27 / hilly .13 / time_trial .13 / mountain .07 — set that beside res_7's canonical signature (sprint .37 / time_trial .21 / hilly .16 / breakaway .14 / mountain .07) and the family and grade we keyed were essentially the right point in composition space. What we missed was group size: 41 riders finished on Brennan's time, 22.3% of the field, which trips the macro rule's 20% bar and routes the day to `bunch` before the residual analogs are ever consulted. Four riders the other way and the key scores exact. Tier-3 therefore records stage 2 as exact=False, covered=False, weight_on_true=0.00 (running 1/2, 1/2, mean 0.50) — an honest miss on the scoring rule, but a miss of shape by four bodies, not a miss of archetype. It is a live instance of the menu's own stated asymmetry: composition is roughly twice as forward-predictable as finishing-time shape (r .739 vs .452), and this is what the .452 half feels like.

The retrieval channel did exactly the thing it was built to do and also paid exactly the price it was warned to pay. It promoted Pau Miquel from production rank 17 onto the published board at 11 — and Pau Miquel finished SECOND at 101.0. That is the retrieval-only architecture earning its keep in public: a rider the untouched production ranking left outside the top 15 was surfaced by the key, priced by the unmodified heads, and ran second. But the same key dropped Onley (9th) and Tulett (11th) to make room, so the day-menu board held 7 of the actual top 15 against the production board's 8. Net pool retrieval was one worse. The mechanism is the same mis-sizing as above: keying a fractured finish sheds climbers, and in a bunch that arrived 41-strong the climbers did not get shed. Prices were structurally untouched throughout, as gate 6 promises — the cost landed entirely in pool composition, which is the only place it can land.

Carry-forward. (1) The `bunch`/res_7 boundary is the live risk on this race, not the family question — on a Vuelta full of drag finishes we will keep landing near the 20% line, and the honest response is to keep keying composition and accept that shape-driven macro routing will sometimes overrule a correct read rather than to start hedging keys toward `bunch` for scoring cosmetics. Menu v1 stands; this is a scoring-rule interaction, not evidence of item drift. (2) The pre-registered gc_day worry did NOT materialise — the oracle routed on group size, not on the prologue-contaminated GC top-10 — so that caveat can be retired for flat days and kept only for genuinely selective ones. (3) The model's three worst calls were Laporte (#3 at 8.8%, finished 57th), Turner (#6, 113th) and Meeus (#8, 129th): all three are riders whose case rested on being fast in a group that stayed together, and all three were simply not there at the end. Watch whether Laporte in particular keeps being over-ranked on drag finishes now that his stage-1 form reading is carrying weight.