Vuelta a España 2026 · Post-race review

Three weeks against the market, second time round: how the model's Vuelta went

Every morning of the Vuelta we published the model's prices next to the bookmaker's, chose a "day key" that said what kind of stage we expected, and let the road settle it. This is the full accounting: where the model held its own, where it lost, whether the fix we built after the Tour worked, and how the whole thing compares with July.

17 stages scored 50 published reads 18 daily GC boards 17 day keys graded benchmark: devigged Unibet/Kambi odds settled 2026-09-13

The verdict, in six sentences. On picking stage winners the model finished the Vuelta level with the market: 2.919 against 2.942 in average log loss, where the Tour had ended −0.46 against us. It was ahead on 11 of 17 scored days, and on the ten days decided by the peloton or the GC group it was clearly better than the market, not just level. The losses came where they always come, on days a breakaway decided the stage, but this time the market could not see those winners either, so they cost us far less than in July. Deeper down the result the picture reversed: the model was behind the market at five, ten and fifteen riders deep, the one place it had been ahead at the Tour. The day-key channel we built after the Tour named the right kind of day two times in three but kept under-weighting the escape on mountain days, and it changed the published boards very little. And in the GC, once Pogačar abandoned, the main board sat on 8% for the rider wearing the red jersey for two weeks, while the side head we call the "GC outlook" matched the market on the winner and beat it on the podium. That head should be pricing the GC page.

Before the numbers

How to read this page

This is written for someone who follows cycling and has no reason to know how a forecasting model or a betting market works. The market's odds are used here as a yardstick for information, not as advice: they are the best public summary of what everyone paying attention thinks will happen, so matching them means the model is capturing about as much as the crowd, and beating them means it knows something the crowd has not priced. Six terms carry the page.

The market, or the book

Unibet's odds via the Kambi feed, captured the evening before each stage. We use it as the benchmark forecast because it aggregates the views of everyone willing to stake money on the outcome.

Devigged

Bookmaker odds are inflated so the book profits whatever happens; the implied chances add to 140–150%, not 100%. Devigging strips that margin out. Every market number on this page is devigged, and both boards are rescaled over the same riders so they add to exactly one winner.

Log loss and nats

The standard score for a probability forecast. You are charged for how surprised you were by what happened. Confidently right scores near zero, confidently wrong scores badly. Lower is better. Nats is the unit. A rule of thumb: giving the winner 10% instead of 20% costs 0.69 nats. ±0.1 per stage is small, ±1.0 is a badly missed day.

Equal weight across reads

Each morning we published two to four "reads": alternative stories about how the day might go, each with its own priced board. The honest way to score us is to average across those reads, because we never said which one to believe. "Best read" numbers are shown as an upper bound only.

Top-k overlap

A ranking check with no probabilities in it. Of the riders who actually finished in the top ten, how many were in your own top ten? Reported as percentage points of model minus market.

Day key and oracle

Project terms, new since the Tour. The day key is a morning guess at what kind of stage it will be, as weights over a fixed menu (bunch sprint, GC day, time trial, or several kinds of "residual" day where an escape or a hard selection decides it). The oracle labels the same day afterwards from the actual result. A key is exact when its heaviest item is the oracle's, covered when the oracle's item got any weight at all.

What is and is not in the count. Stage 3 was cancelled in a hailstorm on the Col de Mont-Louis and is not scored. Stages 13, 18 and 19 were missed mornings: no key was chosen and no board was published before the start, so they are excluded rather than reconstructed. That leaves 17 scored stages and 50 published reads. Hidden calibration anchors and after-the-fact "hindsight" runs are never in a settlement number.

The headline

Level with the market on the winner, and a very different race from July

The fairest single comparison is the winner market: how much probability each board put on the rider who actually won, averaged over the 17 scored stages, with the model scored the way it was published (equal weight across that morning's reads).

FrameVuelta: modelVuelta: marketTour: modelTour: market
Equal weight across published reads (honest, ex-ante)2.9192.9422.4071.944
Best read per stage, picked after the fact (upper bound)2.6362.9422.1291.944
Favourite won: reads where our top pick won / market's top pick won22 of 5019 of 5022 of 5734 of 57

Average winner-market log loss per stage, lower is better. At the Tour the market beat us by 0.46 nats a stage. At the Vuelta the gap is +0.023 in the model's favour, which is a tie. Our favourite won on 22 reads to the market's 19.

Notice the second thing in that table before the first. The market's own score was 2.942 at the Vuelta against 1.944 at the Tour. This was a much harder race to forecast for everyone: the overwhelming favourite left it on stage 8, five stages went to escapes, and three were won by riders the market had at under 1%. So "level with the market" here is level with a market that was itself struggling. That matters for how much credit to take, and it comes back in the section on hard days.

Here is the whole race, day by day: how far above or below the market the model priced each actual winner.

Stage · winner← market was closermodel was closer →nats
St 1 · PogačarITT+1.26
St 2 · Brennan+0.65
St 4 · Pogačar+0.08
St 5 · Brennan+0.06
St 6 · Pogačar+0.93
St 7 · Leknessundclimbers' break−0.70
St 8 · Coquard−0.09
St 9 · Mas−0.67
St 10 · Tronchonhard-man−1.40
St 11 · Brennan+0.50
St 12 · Omrzelclimbers' break+0.23
St 14 · Brennerclimbers' break+0.03
St 15 · van Aerthard-man−0.68
St 16 · Brennan+0.02
St 17 · Brennan+0.28
St 20 · Landaclimbers' break−1.00
St 21 · Johannessenhard-man+0.91

Per-stage winner-market difference in nats: how much more (green) or less (red) probability the model put on the actual winner than the market did, equal weight across that day's published reads. Tags mark the stage classes discussed below. Each stage links to its preview page.

Two things stand out. The good days are big: the model's four best days (stage 1, stage 6, stage 21, stage 2) are each worth more than half a nat, and only one stage all Tour had done that. And the bad days are smaller than the Tour's. The worst day here is −1.40; the Tour had four days worse than that.

The best days

Where the model saw something the market did not

Stage 1, the Monaco time trial (+1.26)

The market made Joshua Tarling a 42% favourite for a 9.4 km city prologue and had Pogačar at 10.5%. The model, which cannot tell a short technical prologue from a long flat time trial and simply prices class, had Pogačar first at 37%. Pogačar won; Tarling was third. This was the first of a pattern: on days the market typecast a rider by discipline, the model's "quality transfers" default won.

Stage 6, Castellón (+0.93)

The market priced Pogačar at 21% and spread the rest of its probability across a card of breakaway specialists: Tulett, Johannessen, Fortunato, Vine, Bisiaux, Bilbao. Not one of them finished in the top twenty. The model refused the whole card and had Pogačar at 52%. Stage 4 in Andorra was the same story in miniature: Vine and Fortunato were the market's second and third choices and finished 11th and 40th, and our board had the whole GC group home in nearly the right order.

Stage 21, Granada (+0.91)

The market made Wout van Aert a 37% favourite for the cobbled city circuit. He finished 65th. Our published boards were wrong too: two of the three reads had Brennan first. But the third, the "late move" read, had van Aert, Debruyne and Johannessen as its top three. Johannessen won and Debruyne was third, and that read priced the winner at 4.2% against the market's 0.8%. The scenario fork carried knowledge the model itself does not have.

Stage 2, Manosque (+0.65)

Matthew Brennan was the market's third choice at 12.3% behind Pedersen and van Aert. The model had him first at 23.6% and Pogačar second; they finished first and third, and the faded van Aert was 22nd. The day key also promoted Pau Miquel from 17th on the production board to 11th on the published one, and he finished second at odds of 101.

The same pattern shows up in the small print. Among riders who finished on a stage podium, these are the ones where the model had been furthest above the market:

StageRiderFinishedModelMarketRatio
St 2Pogacar Tadej318.8%4.5%×4.2
St 20Debruyne Ramses32.6%0.7%×4.0
St 20Johannessen Tobias Halland24.8%1.3%×3.7
St 1Pogacar Tadej136.7%10.5%×3.5
St 9Roglic Primoz313.2%3.8%×3.5
St 21Debruyne Ramses32.8%1.0%×2.8
St 6Pogacar Tadej152.3%20.6%×2.5
St 21Johannessen Tobias Halland12.0%0.8%×2.5

Win probability on the rider, model (equal weight across reads) against the devigged market, for podium finishers. Roglič third at Aitana, Johannessen and Debruyne second and third from the escape on stage 20, Gall third in Andorra: the model kept finding the right riders in the places behind the winner, especially on GC days.

The worst days

Where the model was wrong, and what kind of wrong it was

Stage 10, Vinaròs (−1.40)

The worst day. The model had Brennan first at 51%, twice the market's price, with Meeus second and Pedersen fifth. They finished 90th, 111th and 163rd: the hills after the rest day shed every pure sprinter and Bastien Tronchon won from a 68-rider group of everyone else. The day key said "bunch" and was graded exact, because 68 riders is a bunch. The board was still useless, because it was the wrong bunch. This is the cleanest example in the race of the two questions a day key has to answer, how big the front group is and who is in it, coming apart.

Stage 20, Collado del Alguacil (−1.00)

Mikel Landa won alone from the escape. Every read, and the hindsight run given the day's real shape, had him around 0.3% and 50th on the board; the market had him at 0.8%. His best result of 2026 before this was 14th, and he had not won a race since 2021. Some winners are not mispriced so much as unpriceable from a results record. The consolation was real: the model had Johannessen and Debruyne, second and third, at three to five times the market's price.

Stage 7, Valdelinares (−0.70)

The model's worst day in absolute terms. Pogačar had 3:34 in hand and no reason to race; the bunch conceded the break twenty minutes, and Andreas Leknessund won at odds of 151. Our official read put 60% on a GC day and had Pogačar at 59%; the production board found one of the actual top fifteen. Nobody priced Leknessund, but the market at least had the day's shape right, with a full card of break riders behind Pogačar.

Stage 15, Córdoba (−0.68) and stage 9, Aitana (−0.67)

Two different failures. On the heat-shortened stage 15 the model had Brennan first at 44% and van Aert third; van Aert's own team rode the last climb to launch him instead of setting up Brennan, and he won from a five-man escape. At Aitana the model got the right four riders in its top four and simply put too little on the one who won: Mas at 5.1% against the market's 10.0%, behind Roglič, Gall and Onley.

And the mirror image of the table above: podium finishers where the market had been furthest above the model.

StageRiderFinishedModelMarketRatio
St 15Romele Alessandro20.1%2.8%×0.03
St 15Nys Thibau30.1%1.9%×0.07
St 10Nys Thibau30.1%1.3%×0.08
St 10Cort Magnus20.1%1.3%×0.11
St 11Coquard Bryan20.6%5.4%×0.12
St 6Debruyne Ramses30.2%1.6%×0.14
St 14Buitrago Santiago21.4%10.0%×0.14
St 14Rodriguez Cristian30.6%3.4%×0.17

Almost every name here is a rider who finishes at the front of reduced or escape groups: Romele, Nys, Cort, Coquard, Buitrago, Cristian Rodríguez. The market rates them from watching races; the model's features, built on results, kept leaving them outside its top fifteen. This group is the Vuelta's version of the Tour's "hard-man" problem, and it is where the depth deficit below comes from.

The shape of the result

Better at the very top, behind the market further down

At the Tour the pattern was clear: the model was behind the market on the winner and the podium, level by ten riders deep and slightly ahead by fifteen. The Vuelta flipped it. For each depth, count how many of the actual top-k finishers each board had in its own top k, summed over the scored stages:

DepthModelMarketVuelta deltaTour delta
Top 316.3 / 51 (32%)15 / 51 (29%)+2.6pp−9.6pp
Top 528.7 / 85 (34%)35 / 85 (41%)−7.4pp−4.9pp
Top 1066.3 / 170 (39%)71 / 170 (42%)−2.7pp−0.2pp
Top 15103.0 / 255 (40%)119 / 255 (47%)−6.3pp+0.3pp

Actual top-k riders captured inside each board's own top k, summed over 17 stages (Tour: 20). Model = its published reads averaged per stage. Rank correlation over the whole field: model 0.445, market 0.465 (Tour: 0.507 against 0.532). On the podium market, priced on 8 stages, the two were level: 0.0520 against 0.0524 mean per-rider log loss.

So the Tour's diagnosis, "we read the race as well as the market but will not commit to our favourite", does not describe the Vuelta. Here the model committed, and was often right to. What it lost was the middle of the board: the 16-rider deficit at fifteen deep is concentrated on the escape days: on stages 7, 14 and 15 the market's card of break specialists found three to six of the top fifteen and our production board found one or two. The next two sections split that out.

Did the model's shyness come back?

The Tour's most fixable defect was under-confidence: when the model said 38% it happened 40% of the time, when it said 60% on a top-five place it happened 82%. Here is the same table for the Vuelta. Each cell reads probability we stated → rate it actually happened, and bold marks a gap of more than eight points.

HeadStated 0.10–0.200.20–0.300.30–0.500.50–0.750.75+
Winner0.12 → 0.00 (n34)0.24 → 0.33 (n6)0.42 → 0.60 (n15)0.60 → 0.65 (n17)—
Podium0.13 → 0.12 (n150)0.25 → 0.15 (n66)0.36 → 0.44 (n34)0.63 → 0.64 (n22)0.80 → 0.64 (n11)
Top 50.14 → 0.12 (n483)0.24 → 0.19 (n99)0.39 → 0.28 (n104)0.62 → 0.80 (n25)0.84 → 0.62 (n16)
Top 150.14 → 0.15 (n807)0.24 → 0.25 (n367)0.40 → 0.38 (n461)0.59 → 0.49 (n299)0.82 → 0.67 (n52)
Market, winner (for contrast)0.13 → 0.15 (n20)0.24 → 0.20 (n5)0.40 → 0.62 (n8)——

Calibration of the published boards over all visible reads. The winner head is still a little shy in the 0.30–0.50 band, on a small sample, and is roughly honest above 0.50. The depth heads have gone the other way: when we said 83% for a top-five place it happened 62% of the time. That is over-confidence, not shyness, and it tracks the thinning field: with Pogačar, Pedersen, Groves and twenty others gone, the riders the model kept rating highly for the places were not all there at the end.

We also re-ran the Tour's cheapest fix, a one-parameter "sharpening" of the board fitted leave-one-stage-out. At the Tour it was worth about 0.08 nats a stage on ordinary days. At the Vuelta it is worth nothing: the best fitted setting on all 17 stages is "leave the board alone", and on the ten peloton-settled days sharpening made the held-out score slightly worse (1.444 → 1.495). One race said sharpen, the next said do not. The honest reading is that the miscalibration is not a stable constant to correct but depends on the race and the state of the field, which is an argument for a calibration that watches the current race rather than one number fitted in July.

The standing problem

Escape days still cost us, but far less than in July

After the Tour we named one class of day as the model's structural hole: a shattered, non-mountain stage won by a punchy non-climber from a break, a late move, or a reduced hard-men sprint. The broader version was any day a breakaway decided the stage. The same carves, drawn the same way (by day shape and winner type, never by how we scored), applied to the Vuelta:

PanelnWin LL model / marketPodium LLTop 3Top 5Top 10Top 15
All scored stages172.919 / 2.942 (+0.023)0.0520 / 0.0524+3−7−3−6
Minus hard-man days {10, 15, 21}142.619 / 2.732 (+0.112)0.0520 / 0.0524+2−7−2−5
Minus all break-won days {7, 12, 14, 15, 20}122.062 / 2.272 (+0.210)0.0473 / 0.0485+7−5+1−4
Peloton / GC-settled days only101.444 / 1.745 (+0.301)0.0473 / 0.0485+7−5+0−4
Hard-man days alone34.315 / 3.923 (−0.391)—+4−11−4−13
Break-won days alone54.974 / 4.549 (−0.425)0.0853 / 0.0798−9−12−11−12
The Tour, same carves
Tour: all stages202.407 / 1.944 (−0.463)0.0521 / 0.0459−10−5−0+0
Tour: peloton / GC-settled only131.722 / 1.754 (+0.033)0.0405 / 0.0398−0+5+3+4
Tour: hard-man days alone53.532 / 2.530 (−1.002)0.0700 / 0.0592−24−16−9−10
Tour: break-won and hard-man days73.679 / 2.296 (−1.383)0.0702 / 0.0556−27−23−6−6

Win LL = average winner log loss, model / market, with the difference in brackets (+ means the model was closer). Podium LL where the market priced a podium. Top-k columns are model-minus-market percentage points of the actual top k captured.

Three things to take from that.

So the summary sentence from July still stands, with one amendment: we price a bike race at or above market level whenever it is decided by the group we can see, and we lose ground on the days a breakaway decides it, in proportion to how well the market can see the escape.

The fix we brought from the Tour

The day key: right about the kind of day two times in three, and not yet the fix

The Tour review ended with a priority list, and the top item was day-class detection: know what kind of stage it is before it starts, so the model can pull the right kind of rider into its shortlist and so we can say in advance which days to trust. Between the races we built that as a menu of eight day types plus three "macro" types (bunch sprint, GC day, time trial), a labeller that grades each finished stage against the menu, and a serving channel that takes a morning key and uses it to re-rank the shortlist of riders the model considers. Two design decisions matter for reading the results. The key only changes who is in the top fifteen and in what order; the prices still come from the untouched production model, so a wrong key cannot corrupt a probability. And the key is chosen by judgment each morning, from the road book, the news and the market card, then graded that evening. The Vuelta was the first live test.

How good were the keys?

Of 17 keyed stages the key's heaviest item matched the oracle on 8, the oracle's item had some weight on 15, and the average weight on the true item was 0.49. The oracle's own labels across the twenty raced stages were: bunch 8, gc_day 4, res_2 3, res_4 3, itt 2.

StageWinnerModelMarketΔ natsWinner's rank m / bTop-15 found m / bDay keyOracleGraded
St 1 Monaco ITTPogačar36.7%10.5%+1.261 / 310.0 / 11itt 1.00ittexact 1.00
St 2 ManosqueBrennan23.6%12.3%+0.652 / 37.0 / 7res_7 0.55
res_1 0.45
bunchmissed 0.00
St 4 AndorraPogačar53.0%49.2%+0.081 / 19.3 / 10gc_day 0.60
res_2 0.40
gc_dayexact 0.60
St 5 RoquetesBrennan38.3%35.9%+0.061 / 16.0 / 8res_7 0.50
bunch 0.35
res_3 0.15
bunchcovered 0.35
St 6 CastellónPogačar52.3%20.6%+0.931 / 18.5 / 4res_2 0.65
gc_day 0.35
gc_daycovered 0.35
St 7 ValdelinaresLeknessund0.2%0.4%−0.7046 / 411.3 / 3gc_day 0.60
res_2 0.40
res_2covered 0.40
St 8 XeracoCoquard0.9%1.0%−0.0920 / 126.0 / 8bunch 0.60
res_3 0.25
res_7 0.15
bunchexact 0.60
St 9 Alto de AitanaMas5.1%10.0%−0.676 / 38.5 / 9gc_day 1.00gc_dayexact 1.00
St 10 VinaròsTronchon0.2%0.7%−1.4036 / 223.0 / 5bunch 0.50
res_3 0.30
res_7 0.20
bunchexact 0.50
St 11 LorcaBrennan56.5%34.3%+0.501 / 16.0 / 9bunch 0.65
res_3 0.20
res_1 0.15
bunchexact 0.65
St 12 Calar AltoOmrzel1.0%0.8%+0.2325 / 225.7 / 6res_2 0.55
gc_day 0.45
gc_daycovered 0.45
St 14 La PanderaBrenner0.3%0.3%+0.0341 / 411.0 / 5gc_day 0.60
res_2 0.40
res_2covered 0.40
St 15 Córdobavan Aert7.2%14.2%−0.683 / 22.0 / 6bunch 0.55
res_3 0.30
res_1 0.15
res_4missed 0.00
St 16 La RábidaBrennan37.0%36.3%+0.0216 / 16.0 / 7bunch 0.55
res_3 0.30
res_1 0.15
bunchexact 0.55
St 17 SevillaBrennan59.5%45.1%+0.281 / 19.3 / 9bunch 1.00bunchexact 1.00
St 20 Collado del AlguacilLanda0.3%0.8%−1.0046 / 217.0 / 6res_2 0.45
gc_day 0.40
res_4 0.15
res_4covered 0.15
St 21 GranadaJohannessen2.0%0.8%+0.9113 / 216.3 / 6res_7 0.40
bunch 0.35
res_1 0.25
bunchcovered 0.35

One row per scored stage. Model and market columns are the win probability on the actual winner; Δ is the log-loss difference (+ = model closer). "Winner's rank" is where the winner sat on each board. "Top-15 found" is how many of the actual top fifteen each board had in its own top fifteen. The key is the morning's weights; "graded" is the evening verdict with the weight placed on the true item.

The misses have a shape, and it was visible by the first week. On stages 2, 5 and 6 the key put the "interesting" residual item ahead of the boring macro one, and the road went the boring way each time. Corrected for that, stage 7 went the interesting way and the key had 60% on a GC day. From there the rule became a question, "who has a reason to chase?", and it worked on the sprint stages: 8, 9, 10, 11, 16 and 17 were all exact. It did not work on the mountain escapes. Stages 7, 12, 14 and 20 all went to the break; on two of them (7 and 14) the key's majority was still the GC day, and on the other two the GC day still carried 40–45%. The written lesson from La Pandera was the sharpest: a breakaway with the leader's own team in it will not be chased, however good the launchpad, and the market had read that by lunchtime. There was also a labelling quirk: three consecutive escape wins (stages 15, 19 and 20) were graded as the "hard puncheur" item rather than the "mountain escape" one, even on stage 20 where the front fifteen were nearly all climbers. That cost stage 20 its grade.

Did the key help the boards?

This is the question the whole program turns on, and it can be measured cleanly because every prediction file carries both rankings: the production model's order and the key-adjusted order that was actually published. Count the actual top fifteen found by each.

StageProduction boardPublished (keyed) boardΔBest single readMarketHindsight run
St 1 Monaco ITT10.011.0+1.01111—
St 2 Manosque7.06.3−0.777—
St 4 Andorra9.710.0+0.3101010
St 5 Roquetes6.37.3+1.0887
St 6 Castellón9.08.0−1.0949
St 7 Valdelinares1.02.7+1.7434
St 8 Xeraco6.36.0−0.3786
St 9 Alto de Aitana9.010.0+1.0109—
St 10 Vinaròs3.03.3+0.3554
St 11 Lorca6.37.3+1.0897
St 12 Calar Alto6.36.3+0.0765
St 14 La Pandera1.33.0+1.7555
St 15 Córdoba2.01.7−0.3364
St 16 La Rábida6.76.7+0.010710
St 17 Sevilla11.010.0−1.0119—
St 20 Collado del Alguacil7.38.0+0.7867
St 21 Granada7.06.7−0.3967
Total, 17 stages109 / 255114 / 255+513211985 on 13 stages

Actual top-fifteen riders inside each board's top fifteen, averaged across that morning's reads (production and published are the same riders priced the same way; only the order differs). These use the model's published ranking, which is a separate ranking head; the depth table earlier orders riders by their win price, as the Tour review did, and that ordering finds fewer of the top fifteen (103) than the ranking head does. "Best single read" is the highest of the morning's reads. The hindsight run re-ran the day afterwards knowing its real shape; on the 13 stages that have one it found 85 against the published boards' 77, the best single read's 93 and the market's 83.

Read plainly: the key moved the shortlist by +5 riders in 255 over the whole race. That is a small positive, and at ten deep it was a small negative (−3). The gains came exactly where the theory said they would, on the two mountain escapes (stages 7 and 14, +1.7 and +1.7) where the front group looked nothing like the production ranking's default, and the losses came on days where the key was wrong and pushed the right riders out (stage 6, −1.0). The market still found more of the top fifteen than either of our boards.

The more encouraging number is the "best single read" column. Across the race the best of our own morning reads found 132 of the actual top fifteen, against the market's 119. The information is inside our own scenario structure. What we could not do, yet, was say in the morning which read to trust. That is the same finding the Tour produced about scenario weighting, now with a mechanism attached.

Did the key tell us which days to trust?

At the Tour the days we had flagged in advance as hard-man days were the days we lost most heavily, which suggested a simple rule: publish with less confidence on flagged days. The Vuelta's version of a flag is a key that puts most of its weight on a residual item. Six days were keyed that way (stages 2, 5, 6, 12, 20, 21); eleven were keyed macro-majority.

Days where the key said…nWin LL model / marketTop 10Top 15
…mostly a residual (unusual) day62.889 / 3.187 (+0.298)+10+4
…mostly a bunch sprint, GC day or time trial112.935 / 2.808 (−0.126)−10−12

The Tour's rule inverted. The days we flagged as unusual were our better days against the market; the days we called ordinary were where we lost. The reason is recall: of the seven escape and hard-man days, the key put its majority on an unusual item on only three (12, 20 and 21). Stages 7, 10, 14 and 15 were all keyed as ordinary days and were not.

So the honest verdict on the fix: the machinery works as designed (the prices were never touched, the re-ranking helped exactly where the key was right about an unusual front), the keying rules improved measurably through the race, and neither yet catches the days that matter most. The mountain-escape question, "will the bunch let it go?", turned out to be about team incentives rather than terrain, and that is now written down as a rule rather than a feeling.

The shadow agent

From stage 16 an automated agent chose its own key each morning, blind to the human one, as a rehearsal for running the daily cycle unattended. It produced 4 live keys. It also replayed the stages before it went live from frozen morning bundles after the fact (a calibration exercise, not a live record), where it was exact on nine of eleven graded stages against the human's five on the same days.

StageAgent keyHuman keyOracleAgent gradedHuman gradedAgent confidence
St 16bunch 0.60
res_3 0.25
res_1 0.15
bunch 0.55
res_3 0.30
res_1 0.15
bunchexact 0.60exact 0.550.60 ⚑
St 18itt 1.00no human key (missed morning)ittexact 1.00—0.97
St 20gc_day 0.42
res_2 0.35
res_4 0.23
res_2 0.45
gc_day 0.40
res_4 0.15
res_4covered 0.23covered 0.150.42 ⚑
St 21res_7 0.45
res_1 0.30
bunch 0.25
res_7 0.40
bunch 0.35
res_1 0.25
bunchcovered 0.25covered 0.350.40 ⚑

Live, blind keys only. ⚑ marks a key the agent flagged for human review itself. On stage 18 there was no human key at all, because the morning was missed; the agent's key was the only prospective read of the day and it was exact.

The other race

GC: the race changed on stage 8, and only one of our heads noticed

For seven stages this was a procession. Pogačar won the prologue, Andorra and Castellón and led by 3:34. Then he crashed on the flat run into Xeraco and abandoned, and the Vuelta became a four-man race that Enric Mas won from Roglič and Gall. That makes the GC boards a test of one thing above all: does the board respond to the race? We had two answers running side by side all month. The main blend, which prices riders from their history and form and does not look at the standings, and the state-aware "GC outlook" head, which does.

How well each board matched the final GC

Rank correlation with the final classification, board by board

0.40.60.81.0st 1st 5st 8st 11st 14st 17st 20
model blendGC outlook headmarket

Win probability on the eventual winner, Enric Mas

After each stage: model blend, outlook head, devigged market

0%25%50%75%100%st 1st 5st 8st 11st 14st 17st 20
model blendGC outlook headmarket

Left: the market's board converges on the final order as the race resolves; the blend's stays flat near 0.71, exactly the Tour's frozen-board defect again; the outlook head sits between them. Right: the same story in the price on the winner. From the morning after Aitana, when Mas took red, the blend had him at 7% and never moved; the outlook head had him at 44% that day and 58% going into the last mountain stage; the market went from 33% to 83%. The market's GC prices closed after stage 19, so its line stops there.

After Pogačar's abandon (10 boards, stages 8–19)Model blendGC outlook headMarket
Log loss on the eventual winner (lower is better)2.5420.6640.661
Podium, mean per-rider log loss0.03540.00760.0121
Actual top 15 inside the board's top 15 (of 15)7.612.412.3
Actual top 5 inside the board's top 5 (of 5)3.04.04.0
Rank correlation with the final GC0.730.740.89

Boards paired with the market snapshot that knew the same stages (the market closed its GC prices after stage 19, so the board after stage 20 is not in this table). The outlook head matched the market on the winner, beat it on the podium and at fifteen deep, and trailed it on whole-field ordering because it collapses to near zero on the chasers once it has picked its two leaders.

The last board with a market price to compare against, going into the final mountain stage:

Final GCRiderModel blendGC outlook headMarket
1Mas Enric8.6%58.2%82.9%
2Roglic Primoz21.6%38.2%7.3%
3Gall Felix12.1%1.0%4.1%
4Carapaz Richard3.6%0.4%3.3%
5Kuss Sepp1.2%0.1%0.2%
6Onley Oscar9.8%0.5%1.1%

GC win probability after stage 19. The blend had the race leader fourth on its own board, behind Roglič, Gall and Onley, because it never saw the standings and Mas's history is that of a rider who finishes second. The outlook head knew who was winning. Neither head is right alone: the outlook over-concentrates on the leaders and gives third-placed Gall a 1% chance; the blend knows who is good and ignores the race. The Tour review said this needed a corrector over the shared board rather than either head on its own, and the Vuelta says it twice as loudly.

Before the abandon. All three boards had Pogačar first through stage 7. The blend had him at about 61%, the outlook head at 89%, the market at 85%. When he left the race the model's caution looked good in the ledger and the market's confidence looked bad, which is why the whole-race GC numbers are kinder to the blend than the post-abandon table. That is luck, not skill: a board that does not move cannot be credited for not having moved.
GC, whole raceVuelta: blendVuelta: marketTour: blendTour: market
Log loss on the eventual winner, mean over boards2.9671.7900.9690.205
Rank correlation with the final GC0.710.800.770.88
Actual top 15 inside the board's top 157.410.910.011.5
Podium log loss: blend / outlook head / market0.0392 / 0.0165 / 0.02200.0343 / 0.0202 / 0.0299

Same defect, two races. The blend's ordering of the GC does not learn from the race in either; the market's does. The outlook head was the best podium estimator on the board at both Grand Tours, market included, and both times it was displayed as a caption rather than used as the price.

July against September

What changed between the two Grand Tours, and what did not

TourVueltaReading
Winner market, model minus market (nats per stage)−0.463+0.023From clearly behind to level.
…on peloton / GC-settled days+0.033+0.301From level to clearly ahead.
…on break-won and hard-man days−1.38−0.43 / −0.39Still behind; a third of the cost, because the market was blind too.
Market's own winner log loss1.9442.942A far less predictable race for everyone.
Top-15 overlap, model minus market+0.3pp−6.3ppDepth advantage lost, mostly on escape days.
Top-end shyness on the winner headyesmostly goneDepth heads now over-confident instead.
Days the model beat the market6 of 2011 of 17
Best single day+2.77 (Evenepoel, st 15)+1.26 (Pogačar, st 1)Both: the market typecast a rider by discipline, and class won.
Worst single day−2.62 (Carapaz, st 20)−1.40 (Tronchon, st 10)Both: an escape the model could not see.
GC blend, rank correlation with the final GC (market)0.77 (0.88)0.71 (0.80)The frozen GC board, twice.
Mornings missednone (the stage 1 team time trial was not previewed by design)3 of 20 racedThe process, not the model, cost three days of evidence.
What we do about it

The programme this Vuelta wrote for us

In priority order, with the priority argued by the numbers above.

Put the GC outlook head on the GC page, with a corrector over both heads

Two Grand Tours, same result: the blend's GC board does not move with the race, and the state-aware head that does was the best podium forecaster on the board both times, market included. After the abandon it matched the market on the winner (0.66 against 0.66) while the blend sat at 2.54. Its weakness is over-concentration on two leaders, which is what the blend is good at. This is the clearest, most repeatable finding we have and the cheapest to act on. The first step was taken with this review: the GC tracker now leads with the outlook head and shows the pre-race blend beside it for contrast. The corrector that combines the two is still to build.

Teach the key when the bunch lets the break go

The channel worked where the key was right and did nothing where it was wrong, and it was wrong on three of four mountain escapes. The rules that would have fixed those days are now written: ask who has a reason to chase, weight the composition of the move over the terrain, and treat the leader's own team in the break as the deciding fact. They need to be applied before a stage, not discovered after one.

Learn to weight our own reads

The best of our morning reads found 132 of the actual top fifteen across the race, more than the market's 119; the published average found 114. The Tour said the same thing in probability terms. The scenario structure holds more information than we publish, and the missing piece is a weighting over reads that can be set in the morning and scored in the evening, which is what the day key was supposed to become.

Calibrate against the current race, not a July constant

The Tour said sharpen; the Vuelta said leave it alone. The depth heads went from shy to over-confident as the field thinned. A fixed temperature fitted on one race is the wrong instrument. What is needed is a calibration that sees the state of the field it is pricing, starting with who has already left the race.

Escape membership remains the structural hole

Every break-won day this race had the same signature: the winner at or near 50th on every board, including the hindsight run given the day's real shape, and the market not much better. Handing the model the day's shape has now failed to find the escape winner on 12 of 13 hindsight runs against the best morning read. Course knowledge is not the constraint; a model of who gets in the move is. The Vuelta added five labelled instances with full gap curves and prices to the Tour's four.

Do not miss mornings

Three of twenty raced stages have no scored read because the daily cycle was not run. The shadow agent kept its key on one of them and was exact. The agent's live record is short but clean, and the cost of a missed day is a day of evidence that cannot be recovered. The unattended cycle exists; the next campaign should run on it.

A closing note in the same spirit as July's. The story we expected to tell coming into this race was that the day key would show up as a measurable improvement on the hard days. It did not, and the same records that would have shown the improvement show exactly why not. The story we did not expect was that the model would be level with the market on winners and ahead on ordinary days by a clear margin, and that our best single days would come from refusing the market's breakaway cards on stages where the strongest rider simply rode away. We only know either of those things because every read, every board and every key was written down before the road answered.