Cycling race predictor Β· one-day race

Coppa Bernocchi (no prediction made) settled

One day, one result: the production stack priced the whole field under 1 course reading, against the market's line where one was captured. A one-day race is its own best reference β€” the main reading is built from this race's own recent editions.

Raced 5 October 2026 1 reading 165 riders priced models retrained 72bc1bd857 market snapshot no capture

The fork

1 reading of the same road

Course profile is an input the model cannot see from a map β€” it is set from reference races. The main reading averages this race's own last editions, so the terrain and the kind of rider it selects come from the race's own history; any alternate reading swaps in an archetype set to ask what a different day would do to the same field.

Hindsight (post-hoc)

Hindsight (post-hoc) β€” oracle-matched references
sprint0.06
mountain0.03
hilly0.32
rolling0.09
break0.51
TT0.00
References: Egmont Cycling Race (2017); Veenendaal Classic (2017); GP de Plumelec-Morbihan (2022); Classic Var (2026); Paris - Bourges - Paris - Bourges (2016)
RETROSPECTIVE ONLY β€” no pre-race prediction was made. This board uses the settled result as the oracle and the nearest historical realized race shapes. It is corpus completion, not evidence of forecasting skill.
Top 5 (blend): Godon Dorian 10.4%; Pithie Laurence 9.1%; Silva Thomas 8.7%; Pedersen Mads 7.8%; van den Berg Marijn 5.9%

The board

Win probabilities across the heads

Blend is the production price (cascade Γ— LambdaRank, DNF-adjusted at the pricing layer); Cascade and LambdaRank are the two underlying heads shown for the main reading. The market columns are the devigged win line, present as the information benchmark the model is scored against.

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 hindsight 95% β€” while the devigged market column sums to exactly 100%. Putting the two side by side flatters the model, and Max edge is inflated by about that factor. Of our heads only the LambdaRank one is natively book-preserving.

RiderTeamBlendCascadeLambdaRankMarket oddsMarket devigMax edge
Godon DorianNETCOMPANY INEOS10.4%15.9%9.6%n/a––
Pithie LaurenceRED BULL - BORA - HANSGROHE9.1%14.0%8.4%n/a––
Silva ThomasXDS ASTANA TEAM8.7%4.6%10.3%n/a––
Pedersen MadsLIDL-TREK7.8%17.6%5.8%n/a––
van den Berg MarijnEF EDUCATION - EASYPOST5.9%3.5%6.8%n/a––
Matthews MichaelTEAM JAYCO ALULA4.1%5.0%4.1%n/a––
Vendrame AndreaTEAM JAYCO ALULA3.5%2.6%3.9%n/a––
Oldani StefanoCAJA RURAL-SEGUROS RGA3.4%1.3%4.2%n/a––
Aranburu AlexCOFIDIS2.6%2.1%2.9%n/a––
Strong CorbinNSN CYCLING TEAM2.6%2.0%2.8%n/a––
Isidore NoaDECATHLON CMA CGM TEAM2.4%1.9%2.7%n/a––
Lamperti LukeEF EDUCATION - EASYPOST2.2%1.3%2.6%n/a––
Dati TommasoTEAM UKYO2.1%1.0%2.5%n/a––
Zambanini EdoardoBAHRAIN VICTORIOUS1.9%1.5%2.1%n/a––
Donati DavideRED BULL - BORA - HANSGROHE ROOKIES1.8%1.4%2.0%n/a––
Turner BenNETCOMPANY INEOS1.8%1.7%1.9%n/a––
Colnaghi LucaBARDIANI CSF 7 SABER1.3%0.5%1.6%n/a––
Schmid MauroTEAM JAYCO ALULA1.2%2.6%0.9%n/a––
Belletta DarioTEAM POLTI VISITMALTA1.2%1.0%1.2%n/a––
Groves KadenALPECIN-PREMIER TECH1.1%0.9%1.2%n/a––
Hindsight (post-hoc) β€” oracle-matched references β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Market odds
1Godon Dorian10.4%15.9%9.6%30.1%59.4%n/a
2Pithie Laurence9.1%14.0%8.4%30.6%54.5%n/a
3Silva Thomas8.7%4.6%10.3%16.5%42.8%n/a
4Pedersen Mads7.8%17.6%5.8%30.9%50.8%n/a
5van den Berg Marijn5.9%3.5%6.8%16.4%46.2%n/a
6Matthews Michael4.1%5.0%4.1%13.1%44.8%n/a
7Vendrame Andrea3.5%2.6%3.9%11.0%47.2%n/a
8Oldani Stefano3.4%1.3%4.2%9.0%43.3%n/a
9Aranburu Alex2.6%2.1%2.9%11.2%42.9%n/a
10Strong Corbin2.6%2.0%2.8%9.4%40.9%n/a
11Isidore Noa2.4%1.9%2.7%7.4%29.0%n/a
12Lamperti Luke2.2%1.3%2.6%6.4%30.4%n/a
13Dati Tommaso2.1%1.0%2.5%5.7%21.4%n/a
14Zambanini Edoardo1.9%1.5%2.1%7.7%43.4%n/a
15Donati Davide1.8%1.4%2.0%4.5%14.1%n/a
16Turner Ben1.8%1.7%1.9%7.3%22.6%n/a
17Colnaghi Luca1.3%0.5%1.6%3.5%26.1%n/a
18Schmid Mauro1.2%2.6%0.9%5.3%20.9%n/a
19Belletta Dario1.2%1.0%1.2%2.9%31.2%n/a
20Groves Kaden1.1%0.9%1.2%2.6%13.7%n/a
21Tesfazion Natnael1.0%0.4%1.2%2.1%28.6%n/a
22Barrenetxea Jon1.0%0.8%1.1%3.7%31.9%n/a
23Trentin Matteo1.0%0.5%1.1%1.7%33.1%n/a
24Ganna Filippo0.9%2.0%0.6%8.1%20.6%n/a
25Raccagni Noviero Andrea0.8%1.0%0.7%4.3%24.9%n/a
26Canal Carlos0.6%0.6%0.7%4.8%27.1%n/a
27Narvaez Jhonnatan0.6%0.5%0.6%1.3%13.0%n/a
28Persico Davide0.5%0.1%0.6%0.7%4.5%n/a
29Baroncini Filippo0.4%0.2%0.5%1.2%9.3%n/a
30Zanoncello Enrico0.4%0.2%0.5%1.4%17.5%n/a

After the race

Result β€” won by Isidore Noa

PosRiderTeamHindsight (post-hoc) win p
1Isidore NoaDECATHLON CMA CGM TEAM2.4%
2Dati TommasoTEAM UKYO2.1%
3Aular OrluisMOVISTAR TEAM0.2%
4Romele AlessandroXDS ASTANA TEAM0.2%
5Godon DorianNETCOMPANY INEOS10.4%
6Reinderink PepijnSOUDAL QUICK-STEP0.2%
7Donati DavideRED BULL - BORA - HANSGROHE ROOKIES1.8%
8Vendrame AndreaTEAM JAYCO ALULA3.5%
9Baroncini FilippoUAE TEAM EMIRATES XRG0.4%
10LΓΈland Sakarias KollerUNO-X MOBILITY0.2%

Scoring β€” probability given to the actual winner

ReadingBlendCascade LambdaRankMarket devig
Hindsight (post-hoc)2.44%1.86%2.72%–

Result rows are joined to the boards by FirstCycling rider id through the riders table. 0 row(s) needed the normalised-name fallback; 2 finisher(s) could not be matched at all.