F1 Race Predictor
Three forecasters, one honest scorecard. The deliverable is the evaluation, not the prediction.
What this shows: I can test an AI system honestly: no peeking at future data, probabilities that mean what they say, and the result published even when the AI loses.
A calibrated probability for every driver, every race, graded against the real finishing order once it exists.
Every pick is committed to git before the race, so the timestamp proves it was called in advance. Across nine graded 2026 rounds neither AI has beaten the simple baseline, and at that sample size the gap is still inside the noise.
Most of F1’s predictable signal is just where you start. The scorecard mattered more than the model.
Predicted order vs actual
Monaco 2026, as it crossed the line
real resultAt Monaco, overtaking is nearly impossible, so grid position usually decides the finish; the model leaned on that and called Antonelli's pole-to-win at 76%. Six cars retired, three our own podium picks (orange): externalities no pre-race data can see.
Next race
projection · pre-qualifyingRound 11 · 26 Jul 2026
Hungarian Grand Prix
Hungaroring, Budapest
PROJECTED PODIUM
How often each slot delivers
Russell
Mercedes
Hamilton
Ferrari
Norris
McLaren
These are the model’s history, not Russell’s odds. Across 74 scored races, its pre-qualifying P1 pick won 46% of the time, and its P2 and P3 picks reached the podium 50% and 47%. The real per-driver probabilities arrive after qualifying.
Russell won at the Red Bull Ring and has been the quickest Mercedes over one lap lately, so the form-only model makes him the pick. Antonelli still leads the championship on 158 points from Hamilton on 129 and Russell on 128, but he has not won since Monaco, and the model reads recent form rather than the table.
Grid position is the model's strongest feature, and qualifying has not happened yet. Once the real grid exists, all three forecasters rerun and the win and podium probabilities update before lights out. The Hungaroring is hard to overtake on, so the grid should matter more here than it did at Silverstone.
Spa ran on 19 July, but the results feed had not published them when this projection was built, so the model has not seen that race. Everything here is based on the season through round 9. That gap is worth stating rather than hiding: the pick could look different once Spa lands.
The season so far
stats model · gradedEvery 2026 round, the model’s predicted podium against what actually happened. Green means a podium pick landed. Locked in after qualifying, before the race.
| Round | Our podium | Actual podium | Winner |
|---|---|---|---|
| R1 Australia | RUSANTLEC | RUSANTLEC | ✓ |
| R2 China | RUSANTLEC | ANTRUSHAM | × |
| R3 Japan | ANTRUSLEC | ANTPIALEC | ✓ |
| R4 Miami | ANTRUSLEC | ANTNORPIA | ✓ |
| R5 Canada | ANTRUSNOR | ANTHAMVER | ✓ |
| R6 Monaco | ANTHAMVER | ANTHAMGAS | ✓ |
| R7 Barcelona | ANTHAMRUS | HAMRUSNOR | × |
| R8 Austria | HAMRUSANT | RUSVERANT | × |
| R9 Britain | ANTHAMRUS | LECRUSHAM | × |
Called the winner in 5 of 9 · landed 17 of 27 podium picks. The first half of the season was the easy half: the last three rounds all went to a driver we had further down the order.
At a glance
- 79
- Races tested (2023-26)
- 3
- Forecasters compared
- 22% worse
- Claude's odds vs. just using the grid order. Nine races, so still inside the noise
- 2.79
- Places off per driver, on average
How it works
- 1
Gather
Race and qualifying results for 2023 to 2026 become nine pre-race clues per driver: grid slot, quali gap, recent form, team pace, track history. Strictly nothing from the race being predicted.
- 2
Predict
Three forecasters fill in the same form: a naive baseline (you finish where you start), a statistical model trained only on past races, and Claude reasoning over a written pre-race brief.
- 3
Grade
Proper scoring rules (Brier score, log loss, skill vs the baseline) plus calibration curves: when it says 70%, does that happen 70% of the time?
- 4
Track
Every forecaster is graded race by race across the season, and the next race is always called before lights out, so the prediction is locked in before the result exists.
Honest about it
A prediction is only worth the eval behind it. So I keep score: three forecasters, every race, graded against what actually happened.
How often do we call the winner?
2026 · 9 roundsProblem
Prediction posts are easy to fake after the fact, and LLMs make it worse: past seasons sit in their training data, so a strong backtest proves memory, not skill. I wanted calls put on the record before each race, and an evaluation I could actually trust.
Approach
Three forecasters emit the same output, so they compete like for like. The statistical model only sees earlier races, automated tests prove no future data leaks in, and Claude is graded only on races after its training cutoff. The rest of 2026 is the live test: every pick is locked in after qualifying, before the race.
Eval results
The headline is a negative result, the kind most write-ups quietly drop. Over the nine graded 2026 rounds, neither AI beat the baseline that just predicts the starting grid order: Claude came in 22% worse on win probability, the stats model 11% worse. Then the same honesty applied to my own headline. Nine races is thin, and bootstrapped error bars put Claude's win skill anywhere between 77% worse and 5% better. Every 2026 gap straddles zero, so the defensible claim is the direction and the uncertainty, not the number. The stats model shows why that matters: it led on wins earlier in the year and gave it all back once three different drivers won in a row. The second finding is the sturdy one. Almost all the predictable signal is a single feature: where you start. Remove grid position and podium error jumps about 19%. Remove any other feature and nothing moves.
What broke
A free data API silently returned four empty races after rate-limiting, caught by validation, not an error. Grid position 0 means a pit-lane start, which a model reads as better than pole. And the LLM sometimes returns duplicate finishing positions, so the schema rejects loudly and a deterministic repair re-ranks. The lesson that stuck: the eval design mattered more than the model. Most of the work was keeping the test fair.