Track record
Every race since 2018 was predicted by a model trained only on races before it, then scored. Settings were tuned on 2018–2021; the numbers below are from 2022 on, which the tuning never saw. The bar to clear is the starting grid, and where Kalshi listed the race, the betting market.
| 108 races, 2022–now | Winner picked | Winner in top 3 | Avg. P(actual winner) | Log-loss ↓ | Brier ↓ |
|---|---|---|---|---|---|
| Model | 56% | 92% | 43% | 1.133 | 0.544 |
| Starting grid | 57% | 88% | 36% | 1.477 | 0.621 |
| Races with a Kalshi market (5) | Winner picked | Avg. P(actual winner) | Log-loss ↓ |
|---|---|---|---|
| Model | 60% | 39% | 1.369 |
| Market | 80% | 35% | 1.347 |
Small sample: read as a direction, not a verdict.
Spearman rank correlation, predicted vs actual order of classified finishers: model 0.81, grid 0.76. Podium: 1.96 of 3 places named correctly on average.
Calibration — when it says X%, does it happen X% of the time?
Every driver in every test race, binned by predicted win probability. Dots on the diagonal = honest probabilities. Bars show a 90% interval; wide bars are small bins.
Winner picked, by season
Model GridRace by race
| Race | Winner | Model pick | P(winner) | Grid pick | Market pick |
|---|---|---|---|---|---|
| 2026 Bahrain GP in Malaysia | VER P1 | VER 61% ✓ | 61% | VER ✓ | VER ✓ |
| 2026 Azerbaijan GP | RUS P1 | RUS 61% ✓ | 61% | RUS ✓ | RUS ✓ |
| 2026 Spanish GP | ANT P2 | NOR 43% ✗ | 27% | NOR ✗ | ANT ✓ |
| 2026 Italian GP | ANT P19 | RUS 33% ✗ | 3% | GAS ✗ | RUS ✗ |
| 2026 Dutch GP | NOR P1 | NOR 41% ✓ | 41% | NOR ✓ | NOR ✓ |
| 2026 Hungarian GP | NOR P1 | NOR 43% ✓ | 43% | NOR ✓ | – |
| 2026 Belgian GP | ANT P1 | ANT 31% ✓ | 31% | ANT ✓ | – |
| 2026 British GP | LEC P2 | ANT 53% ✗ | 12% | ANT ✗ | – |
| 2026 Austrian GP | RUS P1 | RUS 47% ✓ | 47% | RUS ✓ | – |
| 2026 Barcelona GP | HAM P2 | RUS 37% ✗ | 11% | RUS ✗ | – |
| 2026 Monaco GP | ANT P1 | ANT 46% ✓ | 46% | ANT ✓ | – |
| 2026 Canadian GP | ANT P2 | RUS 50% ✗ | 17% | RUS ✗ | – |
| 2026 Miami GP | ANT P1 | ANT 37% ✓ | 37% | ANT ✓ | – |
| 2026 Japanese GP | ANT P1 | RUS 40% ✗ | 26% | ANT ✓ | – |
| 2026 Chinese GP | ANT P1 | RUS 43% ✗ | 18% | ANT ✓ | – |
| 2026 Australian GP | RUS P1 | RUS 66% ✓ | 66% | RUS ✓ | – |
| 2025 Abu Dhabi GP | VER P1 | VER 64% ✓ | 64% | VER ✓ | – |
| 2025 Qatar GP | VER P3 | PIA 39% ✗ | 15% | PIA ✗ | – |
| 2025 Las Vegas GP | VER P2 | NOR 47% ✗ | 37% | NOR ✗ | – |
| 2025 São Paulo GP | NOR P1 | NOR 80% ✓ | 80% | NOR ✓ | – |
| 2025 Mexico City GP | NOR P1 | NOR 72% ✓ | 72% | NOR ✓ | – |
| 2025 United States GP | VER P1 | VER 69% ✓ | 69% | VER ✓ | – |
| 2025 Singapore GP | RUS P1 | VER 37% ✗ | 37% | RUS ✓ | – |
| 2025 Azerbaijan GP | VER P1 | VER 70% ✓ | 70% | VER ✓ | – |
| 2025 Italian GP | VER P1 | NOR 36% ✗ | 35% | VER ✓ | – |
| 2025 Dutch GP | PIA P1 | PIA 50% ✓ | 50% | PIA ✓ | – |
| 2025 Hungarian GP | NOR P3 | PIA 47% ✗ | 36% | LEC ✗ | – |
| 2025 Belgian GP | PIA P2 | NOR 56% ✗ | 31% | NOR ✗ | – |
| 2025 British GP | NOR P3 | VER 61% ✗ | 12% | VER ✗ | – |
| 2025 Austrian GP | NOR P1 | NOR 73% ✓ | 73% | NOR ✓ | – |
| 2025 Canadian GP | RUS P1 | RUS 42% ✓ | 42% | RUS ✓ | – |
| 2025 Spanish GP | PIA P1 | PIA 55% ✓ | 55% | PIA ✓ | – |
| 2025 Monaco GP | NOR P1 | NOR 48% ✓ | 48% | NOR ✓ | – |
| 2025 Emilia Romagna GP | VER P2 | PIA 44% ✗ | 35% | PIA ✗ | – |
| 2025 Miami GP | PIA P4 | VER 68% ✗ | 6% | VER ✗ | – |
| 2025 Saudi Arabian GP | PIA P2 | VER 59% ✗ | 19% | VER ✗ | – |
| 2025 Bahrain GP | PIA P1 | PIA 43% ✓ | 43% | PIA ✓ | – |
| 2025 Japanese GP | VER P1 | VER 59% ✓ | 59% | VER ✓ | – |
| 2025 Chinese GP | PIA P1 | VER 28% ✗ | 17% | PIA ✓ | – |
| 2025 Australian GP | NOR P1 | VER 56% ✗ | 20% | NOR ✓ | – |
| 2024 Abu Dhabi GP | NOR P1 | NOR 44% ✓ | 44% | NOR ✓ | – |
| 2024 Qatar GP | VER P2 | VER 45% ✓ | 45% | RUS ✗ | – |
| 2024 Las Vegas GP | RUS P1 | RUS 37% ✓ | 37% | RUS ✓ | – |
| 2024 São Paulo GP | VER P17 | NOR 67% ✗ | 5% | NOR ✗ | – |
| 2024 Mexico City GP | SAI P1 | VER 39% ✗ | 29% | SAI ✓ | – |
| 2024 United States GP | LEC P4 | VER 42% ✗ | 8% | NOR ✗ | – |
| 2024 Singapore GP | NOR P1 | NOR 44% ✓ | 44% | NOR ✓ | – |
| 2024 Azerbaijan GP | PIA P2 | LEC 45% ✗ | 19% | LEC ✗ | – |
| 2024 Italian GP | LEC P4 | NOR 41% ✗ | 6% | NOR ✗ | – |
| 2024 Dutch GP | NOR P1 | VER 50% ✗ | 30% | NOR ✓ | – |
| 2024 Belgian GP | HAM P3 | VER 30% ✗ | 13% | LEC ✗ | – |
| 2024 Hungarian GP | PIA P2 | VER 62% ✗ | 5% | NOR ✗ | – |
| 2024 British GP | HAM P2 | VER 40% ✗ | 14% | RUS ✗ | – |
| 2024 Austrian GP | RUS P3 | VER 86% ✗ | 2% | VER ✗ | – |
| 2024 Spanish GP | VER P2 | VER 63% ✓ | 63% | NOR ✗ | – |
| 2024 Canadian GP | VER P2 | VER 72% ✓ | 72% | RUS ✗ | – |
| 2024 Monaco GP | LEC P1 | LEC 51% ✓ | 51% | LEC ✓ | – |
| 2024 Emilia Romagna GP | VER P1 | VER 66% ✓ | 66% | VER ✓ | – |
| 2024 Miami GP | NOR P5 | VER 81% ✗ | 1% | VER ✗ | – |
| 2024 Chinese GP | VER P1 | VER 87% ✓ | 87% | VER ✓ | – |
| 108 races, 2022–now | Winner picked | Winner in top 3 | Avg. P(actual winner) | Log-loss ↓ | Brier ↓ |
|---|---|---|---|---|---|
| Model | 46% | 77% | 34% | 1.468 | 0.668 |
| Starting grid (not known yet at this stage; shown for scale) | 57% | 88% | 36% | 1.477 | 0.621 |
| Races with a Kalshi market (5) | Winner picked | Avg. P(actual winner) | Log-loss ↓ |
|---|---|---|---|
| Model | 40% | 22% | 1.566 |
| Market | 80% | 35% | 1.347 |
Small sample: read as a direction, not a verdict.
Spearman rank correlation, predicted vs actual order of classified finishers: model 0.77, grid 0.76. Podium: 1.67 of 3 places named correctly on average.
Calibration — when it says X%, does it happen X% of the time?
Every driver in every test race, binned by predicted win probability. Dots on the diagonal = honest probabilities. Bars show a 90% interval; wide bars are small bins.
Winner picked, by season
Model GridRace by race
| Race | Winner | Model pick | P(winner) | Grid pick | Market pick |
|---|---|---|---|---|---|
| 2026 Bahrain GP in Malaysia | VER P1 | ANT 47% ✗ | 18% | VER ✓ | VER ✓ |
| 2026 Azerbaijan GP | RUS P1 | ANT 31% ✗ | 21% | RUS ✓ | RUS ✓ |
| 2026 Spanish GP | ANT P2 | ANT 34% ✓ | 34% | NOR ✗ | ANT ✓ |
| 2026 Italian GP | ANT P19 | ANT 25% ✓ | 25% | GAS ✗ | RUS ✗ |
| 2026 Dutch GP | NOR P1 | ANT 27% ✗ | 13% | NOR ✓ | NOR ✓ |
| 2026 Hungarian GP | NOR P1 | ANT 27% ✗ | 8% | NOR ✓ | – |
| 2026 Belgian GP | ANT P1 | RUS 23% ✗ | 18% | ANT ✓ | – |
| 2026 British GP | LEC P2 | ANT 32% ✗ | 5% | ANT ✗ | – |
| 2026 Austrian GP | RUS P1 | ANT 39% ✗ | 14% | RUS ✓ | – |
| 2026 Barcelona GP | HAM P2 | ANT 52% ✗ | 8% | RUS ✗ | – |
| 2026 Monaco GP | ANT P1 | ANT 49% ✓ | 49% | ANT ✓ | – |
| 2026 Canadian GP | ANT P2 | RUS 31% ✗ | 29% | RUS ✗ | – |
| 2026 Miami GP | ANT P1 | ANT 31% ✓ | 31% | ANT ✓ | – |
| 2026 Japanese GP | ANT P1 | RUS 45% ✗ | 18% | ANT ✓ | – |
| 2026 Chinese GP | ANT P1 | RUS 43% ✗ | 7% | ANT ✓ | – |
| 2026 Australian GP | RUS P1 | VER 39% ✗ | 14% | RUS ✓ | – |
| 2025 Abu Dhabi GP | VER P1 | NOR 47% ✗ | 28% | VER ✓ | – |
| 2025 Qatar GP | VER P3 | NOR 37% ✗ | 16% | PIA ✗ | – |
| 2025 Las Vegas GP | VER P2 | NOR 44% ✗ | 17% | NOR ✗ | – |
| 2025 São Paulo GP | NOR P1 | NOR 37% ✓ | 37% | NOR ✓ | – |
| 2025 Mexico City GP | NOR P1 | NOR 36% ✓ | 36% | NOR ✓ | – |
| 2025 United States GP | VER P1 | NOR 31% ✗ | 30% | VER ✓ | – |
| 2025 Singapore GP | RUS P1 | PIA 30% ✗ | 7% | RUS ✓ | – |
| 2025 Azerbaijan GP | VER P1 | PIA 36% ✗ | 17% | VER ✓ | – |
| 2025 Italian GP | VER P1 | NOR 46% ✗ | 7% | VER ✓ | – |
| 2025 Dutch GP | PIA P1 | NOR 57% ✗ | 36% | PIA ✓ | – |
| 2025 Hungarian GP | NOR P3 | NOR 45% ✓ | 45% | LEC ✗ | – |
| 2025 Belgian GP | PIA P2 | PIA 44% ✓ | 44% | NOR ✗ | – |
| 2025 British GP | NOR P3 | PIA 37% ✗ | 35% | VER ✗ | – |
| 2025 Austrian GP | NOR P1 | NOR 34% ✓ | 34% | NOR ✓ | – |
| 2025 Canadian GP | RUS P1 | NOR 52% ✗ | 5% | RUS ✓ | – |
| 2025 Spanish GP | PIA P1 | PIA 43% ✓ | 43% | PIA ✓ | – |
| 2025 Monaco GP | NOR P1 | VER 42% ✗ | 24% | NOR ✓ | – |
| 2025 Emilia Romagna GP | VER P2 | NOR 33% ✗ | 24% | PIA ✗ | – |
| 2025 Miami GP | PIA P4 | VER 41% ✗ | 18% | VER ✗ | – |
| 2025 Saudi Arabian GP | PIA P2 | NOR 43% ✗ | 24% | VER ✗ | – |
| 2025 Bahrain GP | PIA P1 | NOR 41% ✗ | 17% | PIA ✓ | – |
| 2025 Japanese GP | VER P1 | NOR 43% ✗ | 18% | VER ✓ | – |
| 2025 Chinese GP | PIA P1 | NOR 47% ✗ | 3% | PIA ✓ | – |
| 2025 Australian GP | NOR P1 | VER 39% ✗ | 10% | NOR ✓ | – |
| 2024 Abu Dhabi GP | NOR P1 | VER 27% ✗ | 18% | NOR ✓ | – |
| 2024 Qatar GP | VER P2 | NOR 22% ✗ | 21% | RUS ✗ | – |
| 2024 Las Vegas GP | RUS P1 | NOR 34% ✗ | 11% | RUS ✓ | – |
| 2024 São Paulo GP | VER P17 | VER 40% ✓ | 40% | NOR ✗ | – |
| 2024 Mexico City GP | SAI P1 | VER 30% ✗ | 7% | SAI ✓ | – |
| 2024 United States GP | LEC P4 | VER 31% ✗ | 14% | NOR ✗ | – |
| 2024 Singapore GP | NOR P1 | VER 27% ✗ | 26% | NOR ✓ | – |
| 2024 Azerbaijan GP | PIA P2 | VER 35% ✗ | 13% | LEC ✗ | – |
| 2024 Italian GP | LEC P4 | VER 50% ✗ | 4% | NOR ✗ | – |
| 2024 Dutch GP | NOR P1 | VER 53% ✗ | 10% | NOR ✓ | – |
| 2024 Belgian GP | HAM P3 | VER 62% ✗ | 4% | LEC ✗ | – |
| 2024 Hungarian GP | PIA P2 | VER 73% ✗ | 3% | NOR ✗ | – |
| 2024 British GP | HAM P2 | VER 67% ✗ | 3% | RUS ✗ | – |
| 2024 Austrian GP | RUS P3 | VER 65% ✗ | 3% | VER ✗ | – |
| 2024 Spanish GP | VER P2 | VER 65% ✓ | 65% | NOR ✗ | – |
| 2024 Canadian GP | VER P2 | VER 69% ✓ | 69% | RUS ✗ | – |
| 2024 Monaco GP | LEC P1 | VER 75% ✗ | 11% | LEC ✓ | – |
| 2024 Emilia Romagna GP | VER P1 | VER 54% ✓ | 54% | VER ✓ | – |
| 2024 Miami GP | NOR P5 | VER 70% ✗ | 4% | VER ✗ | – |
| 2024 Chinese GP | VER P1 | VER 70% ✓ | 70% | VER ✓ | – |
Read this before trusting a number
It names the winner about as often as the grid does; its probabilities are much better. After qualifying, the model's favourite wins slightly less often than the pole-sitter. What it adds is how much probability it puts on whoever does win: about 44% on average against the grid's 36%, and a much lower log-loss. If you only want one name, the grid is almost as good. The model is for the odds.
2026 is its weakest season. Under the new rules pole has converted unusually often, and the model only matches the grid this year. Signals specific to 2026, like the energy derate, have too few races to earn much weight yet.
One protocol, chosen in advance. Settings and feature selection come from 2018–2021 only. After seeing the test results I tried re-selecting each season from the four before it. Overall it made no difference (log-loss 1.137 vs 1.135 after qualifying, 1.491 vs 1.480 before), so the original protocol stands. A method chosen because it scored well on the test would make the test meaningless.
The market comparison is tiny. Kalshi's API only lists settled race-winner markets for the last few races, so the head-to-head with the market covers a handful of races. Read it as a direction, not a verdict.
Generated 7 d ago. Parameters: after qualifying {'l2': 10.0, 'depth': 1, 'half_life': 150, 'sharpen': False, 'drop': ['dnf_rate', 'form_quali', 'home_race', 'log_grid_x_overtake', 'season_ppr', 'team_form', 'team_pace', 'track_affinity']}, before {'l2': 10.0, 'depth': 1, 'half_life': 150, 'sharpen': False, 'drop': ['experience', 'form_quali', 'home_race', 'team_form', 'track_affinity']}.