Cycling race predictor Β· one-day race

Giro di Campania (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 20 September 2026 1 reading 110 riders priced models retrained 75c6e7af51 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.01
mountain0.20
hilly0.00
rolling0.77
break0.01
TT0.00
References: Giro dell'Appennino (2022); Coppa Agostoni (2021); Coppa Sabatini (2024); Trofeo CalviΓ  (2025); GP Miguel Indurain (2023)
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): Crescioli Ludovico 9.7%; Fancellu Alessandro 4.7%; Plapp Lucas 3.6%; Oldani Stefano 3.3%; Castellon Jan 3.2%

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 59% β€” 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
Crescioli LudovicoTeam Polti VisitMalta9.7%8.3%16.8%n/a––
Fancellu AlessandroMBH Bank Ballan Telecom Fort4.7%3.1%8.3%n/a––
Plapp LucasTeam Jayco-AlUla3.6%8.1%5.1%n/a––
Oldani StefanoCaja Rural-Seguros RGA3.3%1.6%6.0%n/a––
Castellon JanCaja Rural-Seguros RGA3.2%1.6%5.8%n/a––
Vendrame AndreaTeam Jayco-AlUla2.5%3.4%4.0%n/a––
Verre AlessandroMBH Bank Ballan Telecom Fort2.4%3.2%3.9%n/a––
Turconi FilippoBardiani-CSF 7 Saber2.1%1.5%3.8%n/a––
Fagundez EricBurgos Burpellet BH2.0%1.6%3.6%n/a––
Delettre AlexandreTeam TotalEnergies1.6%1.4%2.8%n/a––
Belletta DarioTeam Polti VisitMalta1.6%1.1%2.8%n/a––
Covi AlessandroTeam Jayco-AlUla1.5%1.5%2.6%n/a––
Bais MattiaTeam Polti VisitMalta1.5%1.8%2.5%n/a––
Magli FilippoBardiani-CSF 7 Saber1.4%0.6%2.6%n/a––
Marcellusi MartinBardiani-CSF 7 Saber1.4%1.4%2.4%n/a––
Lonardi GiovanniTeam Polti VisitMalta1.3%2.4%1.9%n/a––
Pescador DiegoMovistar Team Academy1.2%2.6%1.6%n/a––
Hindsight (post-hoc) β€” oracle-matched references β€” top 30, all heads
#RiderBlendCascade LambdaRankPodiumTop 15 Market odds
1Crescioli Ludovico9.7%8.3%16.8%25.9%71.3%n/a
2Fancellu Alessandro4.7%3.1%8.3%12.4%46.1%n/a
3Plapp Lucas3.6%8.1%5.1%17.9%45.3%n/a
4Oldani Stefano3.3%1.6%6.0%9.3%45.3%n/a
5Castellon Jan3.2%1.6%5.8%8.5%45.4%n/a
6Vendrame Andrea2.5%3.4%4.0%16.0%55.9%n/a
7Verre Alessandro2.4%3.2%3.9%12.3%41.7%n/a
8Turconi Filippo2.1%1.5%3.8%7.6%41.3%n/a
9Fagundez Eric2.0%1.6%3.6%7.6%39.6%n/a
10Delettre Alexandre1.6%1.4%2.8%7.0%43.6%n/a
11Belletta Dario1.6%1.1%2.8%4.7%42.3%n/a
12Covi Alessandro1.5%1.5%2.6%7.9%42.0%n/a
13Bais Mattia1.5%1.8%2.5%8.0%45.0%n/a
14Magli Filippo1.4%0.6%2.6%5.1%39.4%n/a
15Marcellusi Martin1.4%1.4%2.4%8.4%34.2%n/a
16Lonardi Giovanni1.3%2.4%1.9%9.4%39.5%n/a
17Pescador Diego1.2%2.6%1.6%10.9%37.8%n/a
18Delbove Joris1.0%0.5%1.8%3.0%31.8%n/a
19Bonnet Thomas1.0%0.4%1.8%3.3%35.8%n/a
20de la Calle Hugo0.9%1.5%1.3%2.9%27.1%n/a
21Burgaudeau Mathieu0.8%0.3%1.5%4.1%36.0%n/a
22Bagatin Christian0.8%1.4%1.3%6.8%26.6%n/a
23Mifsud Andrea0.8%0.6%1.3%4.2%36.3%n/a
24Tsarenko Kyrylo0.6%0.7%1.0%2.4%19.0%n/a
25Rubio Einer0.6%0.5%1.0%1.5%17.3%n/a
26Zanoncello Enrico0.5%0.3%0.9%1.4%11.0%n/a
27Budzinski Marcin0.5%0.8%0.7%5.7%40.0%n/a
28Maestri Mirco0.4%0.4%0.8%1.5%14.8%n/a
29Kudus Merhawi0.4%0.6%0.7%2.2%21.6%n/a
30Retegi Mikel0.4%0.1%0.8%1.3%15.7%n/a

After the race

Result β€” won by Fagundez Eric

PosRiderTeamHindsight (post-hoc) win p
1Fagundez EricBURGOS-BURPELLET-BH2.0%
2Delettre AlexandreTOTALENERGIES1.6%
3Ponomar AndriiGENERAL STORE - ESSEGIBI - F.LLI CURIA0.3%
4Rubio EinerMOVISTAR TEAM0.6%
5Corres GorkaCAJA RURAL-SEGUROS RGA0.0%
6Fancellu AlessandroMBH BANK CSB TELECOM FORT4.7%
7Vendrame AndreaTEAM JAYCO ALULA2.5%
8de la Calle HugoBURGOS-BURPELLET-BH0.9%
9Crescioli LudovicoTEAM POLTI VISITMALTA9.7%
10Delbove JorisTOTALENERGIES1.0%

Scoring β€” probability given to the actual winner

ReadingBlendCascade LambdaRankMarket devig
Hindsight (post-hoc)2.05%1.61%3.57%–

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