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.
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.
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 Full sprint 137%, Reduced sprint 143%, Hindsight (post-hoc) 154% — 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.
| Rider | Team | Full sprint | Reduced sprint | Break survives | Hindsight (post-hoc) | Book odds | Book devig | Max edge |
|---|---|---|---|---|---|---|---|---|
| Merlier Tim | Soudal Quick-Step | 45.2% | 36.3% | – | 43.3% | 2.10 | 32.4% | +12.8pp |
| Kooij Olav | Decathlon CMA CGM Team | 30.2% | 33.1% | – | 42.9% | 5.00 | 13.6% | +29.2pp |
| Philipsen Jasper | Alpecin-Premier Tech | 24.3% | 24.8% | – | 25.5% | 6.00 | 11.4% | +14.1pp |
| Girmay Biniam | NSN Cycling Team | 4.1% | 10.3% | – | 8.3% | 17.00 | 4.0% | +6.3pp |
| Gaviria Fernando | Caja Rural-Seguros RGA | 4.6% | 3.7% | – | 5.3% | 101.00 | 0.7% | +4.6pp |
| Kanter Max | XDS Astana Team | 4.2% | 4.5% | – | 4.8% | 21.00 | 3.2% | +1.6pp |
| van der Poel Mathieu | Alpecin-Premier Tech | 1.2% | 4.0% | 8.5% | 1.7% | 34.00 | 2.0% | +2.0pp |
| Pedersen Mads | Lidl-Trek | 2.4% | 3.4% | 10.0% | 2.2% | 34.00 | 2.0% | +1.4pp |
| Ackermann Pascal | Team Jayco-AlUla | 3.1% | 2.7% | – | 3.0% | 151.00 | 0.5% | +2.7pp |
| Pogacar Tadej | UAE Team Emirates-XRG | 2.2% | 1.5% | – | 0.8% | 401.00 | 0.2% | +2.1pp |
| Fretin Milan | Cofidis | 1.9% | 1.8% | – | 2.1% | 81.00 | 0.8% | +1.3pp |
| Wærenskjold Søren | Uno-X Mobility | 1.8% | 1.9% | 7.4% | 1.9% | 15.00 | 4.5% | -2.6pp |
| Bauhaus Phil | Bahrain Victorious | 1.6% | 1.4% | – | 1.7% | 301.00 | 0.2% | +1.5pp |
| Ballerini Davide | XDS Astana Team | 1.3% | 1.6% | – | 1.4% | 301.00 | 0.2% | +1.3pp |
| Matthews Michael | Team Jayco-AlUla | 1.0% | 1.4% | 4.5% | 1.1% | 301.00 | 0.2% | +1.2pp |
| Bittner Pavel | Team Picnic PostNL | 1.2% | 1.1% | – | 1.2% | 126.00 | 0.5% | +0.6pp |
| Abrahamsen Jonas | Uno-X Mobility | 0.0% | 0.0% | 0.4% | 0.0% | 34.00 | 2.0% | -2.0pp |
| # | Rider | Blend | Cascade | LambdaRank | Podium | Top 15 | Book odds |
|---|---|---|---|---|---|---|---|
| 1 | Merlier Tim | 45.2% | 53.0% | 31.1% | 75.3% | 89.4% | 2.10 |
| 2 | Kooij Olav | 30.2% | 29.6% | 22.2% | 62.8% | 82.7% | 5.00 |
| 3 | Philipsen Jasper | 24.3% | 20.9% | 18.7% | 48.1% | 82.6% | 6.00 |
| 4 | Gaviria Fernando | 4.6% | 1.3% | 4.2% | 8.0% | 68.8% | 101.00 |
| 5 | Kanter Max | 4.2% | 3.0% | 3.4% | 16.9% | 81.2% | 21.00 |
| 6 | Girmay Biniam | 4.1% | 2.9% | 3.3% | 12.7% | 81.1% | 17.00 |
| 7 | Ackermann Pascal | 3.1% | 1.4% | 2.7% | 9.4% | 73.0% | 151.00 |
| 8 | Pedersen Mads | 2.4% | 2.5% | 1.7% | 10.4% | 53.8% | 34.00 |
| 9 | Pogacar Tadej | 2.2% | 5.5% | 0.8% | 8.4% | 26.3% | 401.00 |
| 10 | Fretin Milan | 1.9% | 1.8% | 1.4% | 8.7% | 73.5% | 81.00 |
| 11 | Wærenskjold Søren | 1.8% | 1.5% | 1.4% | 7.1% | 68.3% | 15.00 |
| 12 | Bauhaus Phil | 1.6% | 0.8% | 1.4% | 9.0% | 55.7% | 301.00 |
| 13 | Ballerini Davide | 1.3% | 0.9% | 1.1% | 8.2% | 50.3% | 301.00 |
| 14 | van der Poel Mathieu | 1.2% | 1.5% | 0.8% | 6.6% | 38.2% | 34.00 |
| 15 | Bittner Pavel | 1.2% | 1.5% | 0.8% | 7.9% | 72.4% | 126.00 |
| 16 | Matthews Michael | 1.0% | 0.9% | 0.8% | 6.1% | 61.0% | 301.00 |
| 17 | Wright Fred | 0.5% | 0.7% | 0.3% | 2.8% | 19.4% | 126.00 |
| 18 | van Dijke Tim | 0.4% | 0.7% | 0.3% | 3.6% | 26.4% | 401.00 |
| 19 | Askey Lewis | 0.4% | 0.4% | 0.3% | 2.1% | 18.4% | 801.00 |
| 20 | Vacek Mathias | 0.3% | 0.2% | 0.2% | 2.2% | 13.6% | 126.00 |
| 21 | Biesterbos Frits | 0.3% | 0.3% | 0.2% | 1.5% | 36.4% | 601.00 |
| 22 | Oldani Stefano | 0.2% | 0.1% | 0.2% | 1.6% | 38.7% | 801.00 |
| 23 | Bol Cees | 0.2% | 0.3% | 0.2% | 1.5% | 20.0% | 301.00 |
| 24 | Stuyven Jasper | 0.2% | 0.1% | 0.2% | 1.0% | 24.7% | 201.00 |
| 25 | del Toro Isaac | 0.2% | 0.2% | 0.1% | 0.7% | 5.1% | 801.00 |
| 26 | Cort Magnus | 0.2% | 0.2% | 0.1% | 1.1% | 27.4% | 67.00 |
| 27 | Asgreen Kasper | 0.2% | 0.6% | 0.0% | 0.7% | 6.6% | 41.00 |
| 28 | Artz Huub | 0.2% | 0.3% | 0.1% | 2.2% | 23.2% | 81.00 |
| 29 | Godon Dorian | 0.2% | 0.1% | 0.1% | 0.9% | 15.7% | 201.00 |
| 30 | Pidcock Tom | 0.1% | 0.1% | 0.1% | 1.0% | 6.2% | 501.00 |
| # | Rider | Blend | Cascade | LambdaRank | Podium | Top 15 | Book odds |
|---|---|---|---|---|---|---|---|
| 1 | Merlier Tim | 36.3% | 52.3% | 21.4% | 71.6% | 86.1% | 2.10 |
| 2 | Kooij Olav | 33.1% | 29.0% | 24.2% | 59.1% | 77.0% | 5.00 |
| 3 | Philipsen Jasper | 24.8% | 20.7% | 18.4% | 45.5% | 77.1% | 6.00 |
| 4 | Girmay Biniam | 10.3% | 7.9% | 7.8% | 29.0% | 77.8% | 17.00 |
| 5 | Kanter Max | 4.5% | 3.4% | 3.4% | 16.2% | 74.2% | 21.00 |
| 6 | van der Poel Mathieu | 4.0% | 4.1% | 2.7% | 16.1% | 53.2% | 34.00 |
| 7 | Gaviria Fernando | 3.7% | 1.2% | 3.2% | 8.9% | 56.1% | 101.00 |
| 8 | Pedersen Mads | 3.4% | 3.3% | 2.4% | 11.7% | 51.2% | 34.00 |
| 9 | Ackermann Pascal | 2.7% | 1.5% | 2.1% | 7.9% | 64.7% | 151.00 |
| 10 | Wærenskjold Søren | 1.9% | 1.6% | 1.4% | 7.9% | 54.6% | 15.00 |
| 11 | Fretin Milan | 1.8% | 2.2% | 1.2% | 10.3% | 64.8% | 81.00 |
| 12 | Ballerini Davide | 1.6% | 1.0% | 1.2% | 8.5% | 45.7% | 301.00 |
| 13 | Pogacar Tadej | 1.5% | 1.5% | 1.1% | 5.0% | 25.9% | 401.00 |
| 14 | Matthews Michael | 1.4% | 1.5% | 0.9% | 6.0% | 48.8% | 301.00 |
| 15 | Bauhaus Phil | 1.4% | 0.7% | 1.1% | 8.5% | 49.8% | 301.00 |
| 16 | Bittner Pavel | 1.1% | 1.7% | 0.6% | 8.7% | 62.1% | 126.00 |
| 17 | Askey Lewis | 0.6% | 0.3% | 0.5% | 3.1% | 32.9% | 801.00 |
| 18 | Wright Fred | 0.6% | 0.8% | 0.3% | 4.0% | 28.2% | 126.00 |
| 19 | Oldani Stefano | 0.5% | 0.1% | 0.4% | 1.5% | 49.0% | 801.00 |
| 20 | Vacek Mathias | 0.5% | 0.3% | 0.4% | 2.9% | 14.1% | 126.00 |
| 21 | van Dijke Tim | 0.4% | 0.5% | 0.3% | 3.1% | 22.5% | 401.00 |
| 22 | Pidcock Tom | 0.4% | 0.2% | 0.3% | 2.4% | 11.0% | 501.00 |
| 23 | Stuyven Jasper | 0.3% | 0.2% | 0.2% | 1.4% | 26.3% | 201.00 |
| 24 | Biesterbos Frits | 0.3% | 0.3% | 0.2% | 1.6% | 37.1% | 601.00 |
| 25 | Aranburu Alex | 0.3% | 0.1% | 0.2% | 1.5% | 23.2% | 601.00 |
| 26 | Godon Dorian | 0.3% | 0.3% | 0.2% | 1.5% | 24.1% | 201.00 |
| 27 | Van Gils Maxim | 0.3% | 0.3% | 0.2% | 1.5% | 9.1% | 601.00 |
| 28 | Bol Cees | 0.2% | 0.2% | 0.2% | 1.3% | 23.5% | 301.00 |
| 29 | Pluimers Rick | 0.2% | 0.1% | 0.2% | 2.3% | 29.4% | 301.00 |
| 30 | Artz Huub | 0.2% | 0.3% | 0.1% | 2.9% | 19.6% | 81.00 |
| # | Rider | Blend | Cascade | LambdaRank | Podium | Top 15 | Book odds |
|---|---|---|---|---|---|---|---|
| 1 | Pedersen Mads | 2.1% | 2.3% | 4.9% | 5.9% | 17.9% | 34.00 |
| 2 | van der Poel Mathieu | 1.8% | 2.1% | 4.1% | 5.1% | 17.0% | 34.00 |
| 3 | Wærenskjold Søren | 1.6% | 1.0% | 3.8% | 17.6% | 38.5% | 15.00 |
| 4 | Matthews Michael | 1.0% | 1.5% | 2.1% | 3.8% | 22.5% | 301.00 |
| 5 | Askey Lewis | 0.8% | 1.2% | 1.9% | 5.2% | 19.4% | 801.00 |
| 6 | Oldani Stefano | 0.6% | 0.2% | 1.6% | 2.3% | 21.6% | 801.00 |
| 7 | Vacek Mathias | 0.6% | 1.1% | 1.2% | 5.0% | 17.9% | 126.00 |
| 8 | Wright Fred | 0.5% | 0.9% | 1.0% | 3.0% | 18.5% | 126.00 |
| 9 | Stuyven Jasper | 0.5% | 0.8% | 1.1% | 3.0% | 20.1% | 201.00 |
| 10 | Godon Dorian | 0.5% | 1.6% | 0.9% | 4.6% | 21.8% | 201.00 |
| 11 | van Dijke Tim | 0.5% | 0.6% | 1.0% | 2.3% | 21.1% | 401.00 |
| 12 | Bol Cees | 0.4% | 0.2% | 1.1% | 0.9% | 14.5% | 301.00 |
| 13 | Tarling Joshua | 0.3% | 0.7% | 0.7% | 4.5% | 17.0% | 151.00 |
| 14 | Aranburu Alex | 0.3% | 0.2% | 0.7% | 0.9% | 9.3% | 601.00 |
| 15 | Cort Magnus | 0.3% | 0.1% | 0.7% | 0.8% | 17.5% | 67.00 |
| 16 | Vermeersch Florian | 0.3% | 0.5% | 0.5% | 1.4% | 13.8% | 801.00 |
| 17 | Teunissen Mike | 0.2% | 0.3% | 0.6% | 0.7% | 18.2% | 401.00 |
| 18 | Berckmoes Jenno | 0.2% | 0.2% | 0.6% | 3.3% | 21.7% | 401.00 |
| 19 | Asgreen Kasper | 0.2% | 0.9% | 0.3% | 4.2% | 16.1% | 41.00 |
| 20 | Russo Clément | 0.2% | 0.1% | 0.5% | 1.8% | 22.6% | 601.00 |
| 21 | Pidcock Tom | 0.2% | 0.2% | 0.5% | 1.5% | 8.8% | 501.00 |
| 22 | Märkl Niklas | 0.2% | 0.5% | 0.4% | 1.6% | 13.9% | n/a |
| 23 | Biesterbos Frits | 0.2% | 0.1% | 0.5% | 1.2% | 19.1% | 601.00 |
| 24 | Pluimers Rick | 0.2% | 0.1% | 0.5% | 0.9% | 17.3% | 301.00 |
| 25 | Debruyne Ramses | 0.2% | 0.1% | 0.5% | 1.3% | 17.6% | 401.00 |
| 26 | Gate Aaron | 0.2% | 0.1% | 0.5% | 0.9% | 7.9% | 401.00 |
| 27 | Vauquelin Kévin | 0.2% | 0.1% | 0.4% | 0.5% | 4.8% | 1001.00 |
| 28 | Turgis Anthony | 0.2% | 0.2% | 0.4% | 0.9% | 8.9% | 301.00 |
| 29 | Ganna Filippo | 0.2% | 0.5% | 0.3% | 4.1% | 14.9% | 41.00 |
| 30 | Le Berre Mathis | 0.2% | 0.1% | 0.4% | 2.5% | 17.9% | n/a |
| # | Rider | Blend | Cascade | LambdaRank | Podium | Top 15 | Book odds |
|---|---|---|---|---|---|---|---|
| 1 | Merlier Tim | 43.3% | 54.4% | 25.4% | 77.1% | 90.6% | 2.10 |
| 2 | Kooij Olav | 42.9% | 45.4% | 27.3% | 72.6% | 86.3% | 5.00 |
| 3 | Philipsen Jasper | 25.5% | 19.9% | 18.0% | 50.7% | 81.8% | 6.00 |
| 4 | Girmay Biniam | 8.3% | 5.8% | 6.0% | 19.8% | 80.5% | 17.00 |
| 5 | Gaviria Fernando | 5.3% | 1.5% | 4.4% | 9.9% | 70.0% | 101.00 |
| 6 | Kanter Max | 4.8% | 3.1% | 3.5% | 17.0% | 79.6% | 21.00 |
| 7 | Ackermann Pascal | 3.0% | 1.7% | 2.3% | 7.8% | 72.2% | 151.00 |
| 8 | Pedersen Mads | 2.2% | 2.0% | 1.5% | 9.1% | 50.3% | 34.00 |
| 9 | Fretin Milan | 2.1% | 2.2% | 1.4% | 10.0% | 73.2% | 81.00 |
| 10 | Wærenskjold Søren | 1.9% | 1.6% | 1.3% | 8.4% | 66.9% | 15.00 |
| 11 | Bauhaus Phil | 1.7% | 1.0% | 1.3% | 9.3% | 60.5% | 301.00 |
| 12 | van der Poel Mathieu | 1.7% | 2.2% | 1.0% | 8.6% | 44.2% | 34.00 |
| 13 | Ballerini Davide | 1.4% | 1.0% | 1.0% | 8.3% | 48.8% | 301.00 |
| 14 | Bittner Pavel | 1.2% | 1.7% | 0.6% | 8.6% | 71.4% | 126.00 |
| 15 | Matthews Michael | 1.1% | 1.2% | 0.7% | 4.7% | 54.5% | 301.00 |
| 16 | Pogacar Tadej | 0.8% | 0.7% | 0.6% | 2.7% | 15.0% | 401.00 |
| 17 | Wright Fred | 0.5% | 0.7% | 0.3% | 3.3% | 25.6% | 126.00 |
| 18 | Askey Lewis | 0.4% | 0.4% | 0.3% | 2.2% | 24.5% | 801.00 |
| 19 | van Dijke Tim | 0.4% | 0.7% | 0.2% | 2.7% | 26.4% | 401.00 |
| 20 | Oldani Stefano | 0.3% | 0.1% | 0.3% | 1.0% | 41.8% | 801.00 |
| 21 | Biesterbos Frits | 0.3% | 0.3% | 0.2% | 1.3% | 35.4% | 601.00 |
| 22 | Vacek Mathias | 0.2% | 0.3% | 0.2% | 2.7% | 13.9% | 126.00 |
| 23 | Stuyven Jasper | 0.2% | 0.2% | 0.2% | 1.3% | 26.5% | 201.00 |
| 24 | Bol Cees | 0.2% | 0.3% | 0.1% | 1.3% | 24.5% | 301.00 |
| 25 | Asgreen Kasper | 0.2% | 0.7% | 0.0% | 0.8% | 6.2% | 41.00 |
| 26 | Artz Huub | 0.2% | 0.3% | 0.1% | 3.4% | 22.7% | 81.00 |
| 27 | Godon Dorian | 0.2% | 0.2% | 0.1% | 1.0% | 21.0% | 201.00 |
| 28 | Cort Magnus | 0.2% | 0.1% | 0.1% | 0.8% | 24.7% | 67.00 |
| 29 | Vermeersch Florian | 0.1% | 0.4% | 0.0% | 0.8% | 11.5% | 801.00 |
| 30 | Teunissen Mike | 0.1% | 0.1% | 0.1% | 0.7% | 28.3% | 401.00 |
Angle
On a flat day the escape has to beat the fast men home, so the pool that can win from it is the field minus every pure sprinter and minus the top 9 on GC after stage 11. Pure sprinter is the model's own verdict, not a hand list: real speed on a flat-sprint anchor of this exact field, but collapsing to a fraction of it once the road turns selective — that collapse is what separates a Merlier from a Pedersen. Classified out: Ackermann Pascal, Ballerini Davide, Bauhaus Phil, Bittner Pavel, Fretin Milan, Gaviria Fernando, Girmay Biniam, Kanter Max, Kooij Olav, Merlier Tim, Philipsen Jasper. The conditional column renormalizes the survivors' win probability under the 'Break survives' read over this pool (P(win | the break wins); the pool holds 21% of the unconditional book). The model cannot see who actually gets up the road — read this as a fitness-for-the-day ranking, not break-formation odds.
| Rider | Team | Break survives win p | P(win | break wins) | Book odds | Book devig |
|---|---|---|---|---|---|
| Pedersen Mads | Lidl-Trek | 2.1% | 10.0% | 34 | 2.0% |
| van der Poel Mathieu | Alpecin-Premier Tech | 1.8% | 8.5% | 34 | 2.0% |
| Wærenskjold Søren | Uno-X Mobility | 1.6% | 7.4% | 15 | 4.5% |
| Matthews Michael | Team Jayco-AlUla | 1.0% | 4.5% | 301 | 0.2% |
| Askey Lewis | NSN Cycling Team | 0.8% | 4.0% | 801 | 0.1% |
| Oldani Stefano | Caja Rural-Seguros RGA | 0.6% | 3.1% | 801 | 0.1% |
| Vacek Mathias | Lidl-Trek | 0.6% | 2.7% | 126 | 0.5% |
| Wright Fred | Pinarello-Q36.5 Pro Cycling Team | 0.5% | 2.3% | 126 | 0.5% |
| Stuyven Jasper | Soudal Quick-Step | 0.5% | 2.3% | 201 | 0.3% |
| Godon Dorian | Netcompany INEOS | 0.5% | 2.3% | 201 | 0.3% |
| van Dijke Tim | Red Bull-BORA-hansgrohe | 0.5% | 2.2% | 401 | 0.2% |
| Bol Cees | Decathlon CMA CGM Team | 0.4% | 2.1% | 301 | 0.2% |
| Tarling Joshua | Netcompany INEOS | 0.3% | 1.6% | 151 | 0.5% |
| Aranburu Alex | Cofidis | 0.3% | 1.4% | 601 | 0.1% |
Angle
Shortest book prices for the stage, with our blend win probability (and rank) under each scenario. 'free' = outside the excluded GC pool (top 9 on GC after stage 11), i.e. the type the peloton might let up the road.
| Rider | Book odds | Devig | Full sprint | Reduced sprint | Break survives | GC status |
|---|---|---|---|---|---|---|
| Merlier Tim | 2.10 | 32.4% | 45.2% (#1) | 36.3% (#1) | 1.6% (#6) | free |
| Kooij Olav | 5.00 | 13.6% | 30.2% (#2) | 33.1% (#2) | 3.4% (#3) | free |
| Philipsen Jasper | 6.00 | 11.4% | 24.3% (#3) | 24.8% (#3) | 5.1% (#1) | free |
| Wærenskjold Søren | 15.00 | 4.5% | 1.8% (#11) | 1.9% (#10) | 1.6% (#7) | free |
| Girmay Biniam | 17.00 | 4.0% | 4.1% (#6) | 10.3% (#4) | 1.2% (#9) | free |
| Kanter Max | 21.00 | 3.2% | 4.2% (#5) | 4.5% (#5) | 3.5% (#2) | free |
| Pedersen Mads | 34.00 | 2.0% | 2.4% (#8) | 3.4% (#8) | 2.1% (#4) | free |
| van der Poel Mathieu | 34.00 | 2.0% | 1.2% (#14) | 4.0% (#6) | 1.8% (#5) | free |
| Abrahamsen Jonas | 34.00 | 2.0% | 0.0% (#52) | 0.0% (#60) | 0.1% (#67) | free |
| Asgreen Kasper | 41.00 | 1.7% | 0.2% (#27) | 0.1% (#40) | 0.2% (#33) | free |
After the stage
| Pos | Rider | Team | Full sprint win p | Reduced sprint win p | Break survives win p | Hindsight (post-hoc) win p |
|---|---|---|---|---|---|---|
| 1 | Merlier Tim | Soudal Quick-Step | 45.2% | 36.3% | 1.6% | 43.3% |
| 2 | Kooij Olav | Decathlon CMA CGM Team | 30.2% | 33.1% | 3.4% | 42.9% |
| 3 | Philipsen Jasper | Alpecin-Premier Tech | 24.3% | 24.8% | 5.1% | 25.5% |
| 4 | Girmay Biniam | NSN Cycling Team | 4.1% | 10.3% | 1.2% | 8.3% |
| 5 | Fretin Milan | Cofidis | 1.9% | 1.8% | 0.7% | 2.1% |
| Scenario | Blend win p | Book devig |
|---|---|---|
| Full sprint | 45.23% | 32.44% |
| Reduced sprint | 36.33% | 32.44% |
| Break survives | 1.57% | 32.44% |
| Hindsight (post-hoc) | 43.31% | 32.44% |
Reflection
The road picked the sprint — and, of the two sprint reads, the fuller one. Chalon-sur-Saône came down to a chaotic bunch gallop that Lidl-Trek spent the last 40 km trying to blow apart, Simmons, Vacek, Skjelmose and Pedersen attacking in relays to shed the fast men, only for it to knit back together for the kick. Tim Merlier took his third stage of this Tour from Olav Kooij and Jasper Philipsen, Biniam Girmay and Milan Fretin behind — the pure sprinters, not the hard-men the reduced read promotes, so the day landed nearer full_sprint than reduced_sprint. It was not clean: a crash inside the final kilometre put Fernando Gaviria and Jenno Berckmoes out of the race with broken collarbones and left Wærenskjold, Abrahamsen, Charmig and Godon on the deck but continuing.
Scored on the footing that compares with the book — each read renormalized over the field, since the raw blend totals 137% here and flatters the board above — this is the model's cleanest sprint of the Tour. full_sprint gave Merlier 33.1% against the book's devigged 32.4%: we agreed with the market on the favourite and he won. And the lean behind him, the one that has defined our sprint reads, paid a second straight day — we made Kooij 22.1% to the book's 13.6% and Philipsen 17.8% to its 11.4%, and they finished second and third, exactly as on stage 11. The difference from stage 11 is that this time the favourite landed too, so on win-log-loss we beat the market on the result rather than just matching it on the pool.
The hindsight run confirms course knowledge was not the constraint. Reconstructing the day from its finish curve — five flat bunch sprints at sprint ~0.90 — prices Merlier 28.2% and Kooij 27.9% renormalized, with the same top three, barely a step from the full_sprint read we published cold. A bunch gallop that regroups is a day-type the model already reads at book level; there was nothing structural it needed to have known. One method note for the record: FirstCycling's origin was returning 503 under Tour load the evening of the stage, so the full field gap-curve could not be archived and the finish shape was borrowed from stage 8 — Merlier's own near-identical chaotic gallop into a valley town — as the template; every near neighbour to a large-front-group sprint is itself a bunch sprint, so the reconstruction is robust to that choice.
Carry forward. (1) The intra-sprint edge over the book is now the most repeatable signal of the race: stages 11 and 12 both saw us over-weight Kooij and Philipsen against the market, and both times they filled the podium behind the winner — on stage 11 the model owned the pool and lost the win to a 34-1 lead-out, on stage 12 it owned the pool and took the win as well. (2) This is not the GT hard-day hole and does not pretend to be: a flat bunch sprint settled by pure speed, priced at book on the winner and above book on the placings — the sprinter's mirror of the stage-10 mountain day. (3) Attrition is the story now turning the Tour. Two more sprinters gone to the Chalon crash and several banged up as the race leaves the valleys for the Vosges — stage 12 was, in all likelihood, the last true bunch sprint for a while.