PARCFERMÉodds, locked after qualifying

How it works

Each race is predicted once qualifying is done: the likely finishing order, and every driver's chance to win, reach the podium, score points or retire.

Is it any good?

Straight answer: it doesn't predict the finishing order any better than assuming everyone finishes where they started. That was tested across 48 races in 2024 and 2025, model against grid, race by race.

The percentages are the real output, and a starting grid can't give you those. The grid tells you who starts first. It can't tell you he's 31% to win, or that someone has a 33% chance of not finishing. Checked against races that already happened, those numbers come out about right. The season scorecard tracks it race by race.

What goes in

Mostly the grid and qualifying: grid slot, pit-lane start, qualifying position, gap to pole, gap to teammate. On top of that, one pace estimate from practice lap times, recent finishes and the team's recent qualifying, for the fast car stuck at the back. It also knows the track: how well grid order has held there before and how often it brings out a safety car.

How the chances are made

A ranking model (XGBoost, pairwise) learns to order drivers within a race. Each race is then simulated 20,000 times from those scores, with the spread tuned on how the top three actually finished recently. A separate model estimates each driver's chance of retiring.

Everything is walk-forward: a race is only ever predicted from races that happened before it.

Live, or made after the race

Races marked LIVE were real forecasts, made after qualifying and before lights out. The earlier 2026 races were filled in afterwards, still using only the races before them, so the season has a full record. Only live ones count as a real test.

Grid penalties

Penalties never appear in the timing data. They are entered by hand after qualifying, so a missed one means the model assumes that driver starts where they qualified.

Code, tests and the full write-up are on GitHub.