Pitwallevery call published before the race
Loading race week…
[01] Pitwall

Every call,
published first

Pole, winner and podium for the next Grand Prix — committed to the record before the race runs, and scored against it afterwards. Every number here is measured against what a one-line rule would have got.

Scroll ↓
Loading…

Our call

Loading…

How we have done

Loading…

Last race

Loading…

The first tab shows one call per question. This is what each model said on its own — they disagree more often than you would expect, which is the honest texture of the problem.

Pole prediction

Not published yet.

Race — before qualifying

Not published yet.

Race — after qualifying

Not published yet.

Live record, per model

No races settled yet.

The bar is “assume the pole sitter wins” — 0.573 over 103 races. It is in the table below, and it is the first number to look at.

Intervals are 95% bootstrap, resampling races. At ~22 races a season a single-season accuracy carries a standard error near 10 points, which is why this spans five seasons rather than one.

Backtest — grid known

Loading…

Backtest — before qualifying

Loading…

Method

What is being predicted. For each Grand Prix the models rank the whole field. The top of that ranking is the winner call, the top three is the podium call, and a separate set of models ranks qualifying to call pole. Every model outputs a probability for each driver, and those probabilities sum to one across the grid — so "24% Antonelli" means what it says.

Walk-forward testing. Each of the 103 races from 2022 to 2026 is predicted by a model fitted only on races dated strictly before it, then refitted for the next one. No model ever sees a row dated on or after the race it is predicting. This replaces the single train/test split the project started with, which put half the "test" season inside the training data.

Why five seasons and not one. A season is about 22 races, which puts the standard error on an accuracy near 10 percentage points. The pole-sitter rule alone scores 0.455 in 2022 and 0.727 in 2026 — the same rule. One season cannot tell a good model from a lucky one, so every figure here spans five and carries a 95% bootstrap interval that resamples races, since the twenty rows of one Grand Prix are not independent of each other.

The baseline is the point. Every number is shown against what a one-line rule would have achieved. "Assume the pole sitter wins" scores 0.573. A model that cannot beat that is not adding anything, however sophisticated it looks — and for most of this project's history, none of them could.

The leak guard. Every column is registered with the moment its value becomes knowable, and anything unregistered is rejected rather than admitted. It exists because the original 2023 pipeline fed status_Finished — whether the driver finished the race being predicted — straight into the model. Of 3707 rows, 681 had it set to zero and not one was a winner: the model was told which 18% of the grid to rule out in advance. Measured, that was worth +0.136 top-1. While rebuilding, the same guard caught nine further post-race columns the new pipeline had produced by accident.

Three models, kept side by side. The original neural network is preserved and still scored. A LightGBM ranker treats each race as a ranking problem with the field as its candidates. A Plackett–Luce choice model produces probabilities that are a genuine distribution over the grid by construction. Both newer models are then shrunk toward an empirical prior over starting slots — because the diagnostic showed the ranker was right 81% of the time when it agreed with pole and only 32% when it overrode it. Making it less willing to back its own marginal opinions is what finally matched the baseline.

What was tried and rejected. A weighted ensemble, a retirement-hazard model, and a re-tune on practice-era data were all built, measured and dropped: none beat what it was meant to improve. The code for each is still in the repository so the negative results stay reproducible. A language model was tested too, on the 35 races its training data provably does not cover, and landed mid-table.

Where the headroom is. 88% of winners start in the top three and only 7% from outside the top five. The real task is telling front-runners apart, not finding one driver in twenty — which puts a realistic ceiling somewhere near 0.85, not 1.0.