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.
The fork
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.
The board
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.
| Rider | Team | Full sprint | Hindsight (post-hoc) | Book odds | Book devig | Max edge |
|---|---|---|---|---|---|---|
| Merlier Tim | Soudal Quick-Step | 46.3% | 44.1% | 2.25 | 30.5% | +15.8pp |
| Kooij Olav | Decathlon CMA CGM Team | 28.4% | 41.2% | 3.00 | 22.9% | +18.4pp |
| Philipsen Jasper | Alpecin-Premier Tech | 22.0% | 24.1% | 5.25 | 13.1% | +11.1pp |
| Girmay Biniam | NSN Cycling Team | 3.7% | 9.1% | 8.00 | 8.6% | +0.5pp |
| De Lie Arnaud | Lotto-Intermarché | 4.7% | 6.0% | n/a | – | – |
| Gaviria Fernando | Caja Rural-Seguros RGA | 4.3% | 5.0% | 101.00 | 0.7% | +4.4pp |
| Kanter Max | XDS Astana Team | 3.8% | 4.9% | 15.00 | 4.6% | +0.4pp |
| de Kleijn Arvid | Tudor Pro Cycling Team | 4.0% | 3.8% | n/a | – | – |
| Ackermann Pascal | Team Jayco-AlUla | 3.0% | 3.2% | 401.00 | 0.2% | +3.0pp |
| Pedersen Mads | Lidl-Trek | 2.1% | 2.5% | 34.00 | 2.0% | +0.4pp |
| Fretin Milan | Cofidis | 1.9% | 2.3% | 24.00 | 2.9% | -0.6pp |
| Wærenskjold Søren | Uno-X Mobility | 1.8% | 2.0% | 51.00 | 1.3% | +0.6pp |
| van der Poel Mathieu | Alpecin-Premier Tech | 1.3% | 2.0% | 101.00 | 0.7% | +1.3pp |
| Bauhaus Phil | Bahrain Victorious | 1.6% | 1.8% | 301.00 | 0.2% | +1.6pp |
| Ballerini Davide | XDS Astana Team | 1.3% | 1.5% | 401.00 | 0.2% | +1.3pp |
| Matthews Michael | Team Jayco-AlUla | 1.0% | 1.1% | 301.00 | 0.2% | +0.9pp |
| Bittner Pavel | Team Picnic PostNL | 1.1% | 1.1% | 201.00 | 0.3% | +0.7pp |
| Pogacar Tadej | UAE Team Emirates-XRG | 1.0% | 0.9% | 301.00 | 0.2% | +0.8pp |
| # | Rider | Blend | Cascade | LambdaRank | Podium | Top 15 | Book odds |
|---|---|---|---|---|---|---|---|
| 1 | Merlier Tim | 46.3% | 55.3% | 31.1% | 72.3% | 89.6% | 2.25 |
| 2 | Kooij Olav | 28.4% | 31.2% | 19.7% | 60.6% | 84.4% | 3.00 |
| 3 | Philipsen Jasper | 22.0% | 19.5% | 16.4% | 46.9% | 83.0% | 5.25 |
| 4 | De Lie Arnaud | 4.7% | 1.9% | 4.1% | 12.4% | 63.9% | n/a |
| 5 | Gaviria Fernando | 4.3% | 1.2% | 3.9% | 8.3% | 71.0% | 101.00 |
| 6 | de Kleijn Arvid | 4.0% | 2.2% | 3.3% | 9.9% | 74.0% | n/a |
| 7 | Kanter Max | 3.8% | 3.3% | 2.9% | 16.8% | 83.1% | 15.00 |
| 8 | Girmay Biniam | 3.7% | 2.7% | 2.9% | 11.8% | 81.8% | 8.00 |
| 9 | Ackermann Pascal | 3.0% | 1.4% | 2.5% | 8.5% | 72.5% | 401.00 |
| 10 | Pedersen Mads | 2.1% | 2.0% | 1.5% | 9.0% | 50.3% | 34.00 |
| 11 | Fretin Milan | 1.9% | 1.8% | 1.4% | 7.9% | 74.4% | 24.00 |
| 12 | Wærenskjold Søren | 1.8% | 1.7% | 1.3% | 7.4% | 70.7% | 51.00 |
| 13 | Bauhaus Phil | 1.6% | 0.8% | 1.3% | 9.9% | 55.2% | 301.00 |
| 14 | van der Poel Mathieu | 1.3% | 2.5% | 0.6% | 11.3% | 39.9% | 101.00 |
| 15 | Ballerini Davide | 1.3% | 1.1% | 0.9% | 8.9% | 51.7% | 401.00 |
| 16 | Bittner Pavel | 1.1% | 1.3% | 0.7% | 6.6% | 74.3% | 201.00 |
| 17 | Pogacar Tadej | 1.0% | 1.4% | 0.7% | 4.3% | 21.7% | 301.00 |
| 18 | Matthews Michael | 1.0% | 0.7% | 0.8% | 5.1% | 64.5% | 301.00 |
| 19 | van Dijke Tim | 0.5% | 1.1% | 0.2% | 4.2% | 26.6% | 1001.00 |
| 20 | Wright Fred | 0.4% | 0.4% | 0.3% | 2.1% | 23.2% | 301.00 |
| 21 | Askey Lewis | 0.4% | 0.4% | 0.3% | 2.2% | 21.5% | 801.00 |
| 22 | Biesterbos Frits | 0.3% | 0.2% | 0.2% | 1.8% | 36.0% | 1001.00 |
| 23 | Vacek Mathias | 0.2% | 0.2% | 0.2% | 1.6% | 13.6% | 201.00 |
| 24 | Oldani Stefano | 0.2% | 0.1% | 0.2% | 1.0% | 34.8% | 1001.00 |
| 25 | Cort Magnus | 0.2% | 0.3% | 0.1% | 1.7% | 28.9% | 301.00 |
| 26 | Bol Cees | 0.2% | 0.2% | 0.2% | 1.7% | 17.0% | 601.00 |
| 27 | del Toro Isaac | 0.2% | 0.2% | 0.1% | 0.7% | 5.2% | 601.00 |
| 28 | Stuyven Jasper | 0.2% | 0.1% | 0.2% | 1.1% | 24.7% | 201.00 |
| 29 | Trentin Matteo | 0.2% | 0.1% | 0.1% | 1.8% | 43.3% | 301.00 |
| 30 | Godon Dorian | 0.1% | 0.1% | 0.1% | 0.7% | 13.8% | 201.00 |
| # | Rider | Blend | Cascade | LambdaRank | Podium | Top 15 | Book odds |
|---|---|---|---|---|---|---|---|
| 1 | Merlier Tim | 44.1% | 57.0% | 23.6% | 72.0% | 86.9% | 2.25 |
| 2 | Kooij Olav | 41.2% | 46.8% | 23.8% | 67.2% | 82.6% | 3.00 |
| 3 | Philipsen Jasper | 24.1% | 20.6% | 15.6% | 45.2% | 78.4% | 5.25 |
| 4 | Girmay Biniam | 9.1% | 6.1% | 6.3% | 19.7% | 78.7% | 8.00 |
| 5 | De Lie Arnaud | 6.0% | 2.4% | 4.5% | 13.4% | 65.5% | n/a |
| 6 | Gaviria Fernando | 5.0% | 1.5% | 4.0% | 10.1% | 58.3% | 101.00 |
| 7 | Kanter Max | 4.9% | 3.6% | 3.4% | 17.5% | 79.3% | 15.00 |
| 8 | de Kleijn Arvid | 3.8% | 2.3% | 2.7% | 9.1% | 53.2% | n/a |
| 9 | Ackermann Pascal | 3.2% | 1.6% | 2.3% | 8.8% | 61.9% | 401.00 |
| 10 | Pedersen Mads | 2.5% | 2.2% | 1.6% | 10.1% | 51.6% | 34.00 |
| 11 | Fretin Milan | 2.3% | 2.0% | 1.4% | 9.0% | 67.7% | 24.00 |
| 12 | Wærenskjold Søren | 2.0% | 1.7% | 1.3% | 8.1% | 60.7% | 51.00 |
| 13 | van der Poel Mathieu | 2.0% | 3.1% | 0.9% | 15.4% | 45.4% | 101.00 |
| 14 | Bauhaus Phil | 1.8% | 0.8% | 1.3% | 9.3% | 49.4% | 301.00 |
| 15 | Ballerini Davide | 1.5% | 0.8% | 1.1% | 7.4% | 42.4% | 401.00 |
| 16 | Matthews Michael | 1.1% | 1.2% | 0.7% | 7.0% | 67.4% | 301.00 |
| 17 | Bittner Pavel | 1.1% | 1.4% | 0.6% | 8.2% | 64.2% | 201.00 |
| 18 | Pogacar Tadej | 0.9% | 0.9% | 0.6% | 3.1% | 22.4% | 301.00 |
| 19 | van Dijke Tim | 0.5% | 0.9% | 0.2% | 3.2% | 24.8% | 1001.00 |
| 20 | Askey Lewis | 0.5% | 0.3% | 0.3% | 2.8% | 28.4% | 801.00 |
| 21 | Wright Fred | 0.5% | 0.5% | 0.3% | 2.5% | 31.1% | 301.00 |
| 22 | Oldani Stefano | 0.4% | 0.1% | 0.3% | 1.0% | 41.1% | 1001.00 |
| 23 | Biesterbos Frits | 0.3% | 0.3% | 0.2% | 1.6% | 38.4% | 1001.00 |
| 24 | Vacek Mathias | 0.3% | 0.2% | 0.2% | 2.0% | 14.8% | 201.00 |
| 25 | Bol Cees | 0.3% | 0.2% | 0.2% | 1.2% | 20.6% | 601.00 |
| 26 | Stuyven Jasper | 0.2% | 0.2% | 0.2% | 1.4% | 34.1% | 201.00 |
| 27 | Trentin Matteo | 0.2% | 0.1% | 0.1% | 1.6% | 41.4% | 301.00 |
| 28 | Godon Dorian | 0.2% | 0.2% | 0.1% | 1.0% | 22.8% | 201.00 |
| 29 | Cort Magnus | 0.2% | 0.2% | 0.1% | 1.5% | 31.3% | 301.00 |
| 30 | Pidcock Tom | 0.2% | 0.1% | 0.1% | 1.0% | 7.6% | 601.00 |
After the stage
| Pos | Rider | Team | Full sprint win p | Hindsight (post-hoc) win p |
|---|---|---|---|---|
| 1 | Merlier Tim | Soudal Quick-Step | 46.3% | 44.1% |
| 2 | Wærenskjold Søren | Uno-X Mobility | 1.8% | 2.0% |
| 3 | Girmay Biniam | NSN Cycling Team | 3.7% | 9.1% |
| 4 | Kanter Max | XDS Astana Team | 3.8% | 4.9% |
| 5 | Philipsen Jasper | Alpecin-Premier Tech | 22.0% | 24.1% |
| 6 | Bauhaus Phil | Bahrain Victorious | 1.6% | 1.8% |
| 7 | Artz Huub | Lotto-Intermarché | 0.1% | 0.1% |
| 8 | Godon Dorian | Netcompany INEOS Cycling Team | 0.1% | 0.2% |
| 9 | Pedersen Mads | Lidl-Trek | 2.1% | 2.5% |
| 10 | Van Asbroeck Tom | NSN Cycling Team | 0.0% | 0.0% |
| Scenario | Blend win p | Book devig |
|---|---|---|
| Full sprint | 46.32% | 30.49% |
| Hindsight (post-hoc) | 44.08% | 30.49% |
Reflection
Stage 7 was the one stage on the route with no scenario to choose between, and the road honoured it to the letter. The single full_sprint read said the peloton would control from the gun, reel in the token break, and deliver an intact field for the fastest man off the best lead-out — and that is precisely what happened: 101 riders on the winner's time, Tim Merlier taking it off the Soudal train ahead of Wærenskjold, Girmay, Kanter and Philipsen. No branch, no ambiguity, no regret about the read. A flat GT sprint is the terrain the model prices without a shrug, and this was the cleanest version of it.
The model and the market agreed on the shape of the top of the board — both ordered it Merlier > Kooij > Philipsen — but the model was materially sharper on every one of them: Merlier 46.3% vs the book's devigged 30.5%, Kooij 28.4% vs 22.9%, Philipsen 22.0% vs 13.1%. Merlier won, so on the settled scoring the model handed the actual winner a full 15.8 points more win probability than the devigged book did. The two names it missed — Wærenskjold's 2nd (1.8% ours, 1.3% book) and Kanter's 4th (3.8%) — are lead-out and positioning outcomes that neither we nor the market price, and neither bears on the win call. Girmay, whom the book liked more than we did (8.6% vs 3.7%), came 3rd; a wash.
Hindsight confirmed rather than corrected: fed the five DB stages that finished exactly like this one, the model returned Merlier 44.1% — within two points of its live 46.3% and the same board. That is the mirror image of stages 4 and 5, where a flat sprint that happened to fragment fooled the finish-shape match into reading climbers; here the shape was the one everyone expected, so course knowledge was never the constraint. Carry forward, and this is the day's real signal: on an unambiguous bunch sprint the model doesn't just rank the right fast man, it is willing to run a large confidence premium over the market on him (46% vs 30%). It paid this time. But that is a big premium, and the opposite of stage 6, where the market out-concentrated us on the lone favourite — worth watching across the remaining sprint days whether the model's over-the-book confidence on the lead sprinter is genuine edge or systematic over-concentration.