Skip to content
Data Driver
METHODOLOGY

How we predict

We do not pick winners. We assign probabilities. When we say a driver has a 28% chance of winning, we mean that across many similar situations, that outcome would occur roughly 28% of the time.

model status LIVE API

Our system connects directly to primary F1 data sources, engineers 52 predictive features, fuses four distinct signals (Elo, ensemble model, recent form, team performance), and runs 10,000 Monte Carlo simulations. Every prediction is published before the race and scored after.

01 / THE PIPELINE

↓Tap any stage to explore the detail

Each feature is normalised, validated against outliers, and weighted by recency. The feature store regenerates completely before each race weekend.

  • Qualifying pace delta vs teammate
  • Race pace & tyre degradation curve
  • Circuit-specific historical performance
  • Weather conditions & forecast accuracy
  • Safety Car & VSC probability
  • Constructor development trajectory (R-squared slope)
feature_engineering.py
# 52 features per driver-race combination
def build_features(driver, race):
features = {}
features['quali_pace_delta'] = quali_delta(driver, race)
features['tyre_degradation'] = deg_curve(driver, race, compound)
features['circuit_history'] = track_score(driver, race.circuit)
features['dev_slope'] = constructor_trend(driver.team, n=5)
return normalise(features) # 52 keys
02 / THE APPROACH
01

Primary Data

Official classifications come directly from formula1.com and the FIA. Historical OpenF1 data enriches post-session analysis only, with attribution. Every data point is traceable to its origin.

  • formula1.com (official results, qualifying, standings)
  • FIA (stewards decisions, regulations)
  • Historical archive (1950–2024, one-time import)
  • OpenF1 historical API (attributed enrichment, CC BY-NC-SA 4.0)
02

Feature Engineering

Raw session data is transformed into 52 predictive features for each driver-race combination.

  • Qualifying pace
  • Race pace & tyre degradation
  • Circuit history
  • Weather conditions
  • Safety Car probability
  • Constructor development trajectory
03

Model Inference

An Elo rating system combined with recent form and team performance generates calibrated probabilities, validated by 10,000 Monte Carlo simulations.

  • Elo ratings with regulation resets
  • Recent form + team car performance signals
  • Monte Carlo simulation (10,000 paths)
  • Dynamic weighting as season data grows
03 / OUR MODELS

Race Winner

Win probability for each driver, combining Elo ratings with recent form and car performance

Elo ratingRecent resultsTeam performanceCircuit type
—live top-1 accuracy

Podium

P(podium) for each driver via Monte Carlo position distribution

Force scoreGrid positionRace paceSafety car rate
—live top-3 accuracy

Safety Car

Probability of Safety Car, VSC, or red flag during a race

Circuit incidentsWeatherGrid spreadHistorical SC rate
—not scored here

Monte Carlo

10,000 race simulations producing full position distributions and expected points

Driver forceDNF ratesSafety carGrid order
10Ksims/race

Championship

Season-long points simulation and title probability

Race predictionsReliabilityCalendarRegulation impact
0.3734live skill vs baseline

Calibration

Probability calibration and scoring against standard baselines

Brier scoreLog lossSkill scoreDecomposition
0.0376live overall Brier
04 / TRACK RECORD

Every prediction we publish is scored against reality. No cherry-picking, no retroactive adjustments. The full history is public.

What is a Brier score?

The Brier score measures the accuracy of probabilistic predictions. It is the mean squared difference between predicted probabilities and actual outcomes. A perfect score is 0.000. A coin flip on a 20-driver field scores approximately 0.090.

We also compute a skill score: how much better (or worse) our predictions are compared to naive baselines like grid position or championship standings. A positive skill score means our model adds value over simpler approaches.

The same scoring system is used in meteorology, epidemiology, and quantitative finance. It penalises overconfidence and rewards honest uncertainty.

View our full track record

243

Win probabilities scored

across 11 live races

—

Accuracy

0.038

Brier score

05 / DATA INDEPENDENCE

Official results, qualifying and championship standings come only from formula1.com. Historical OpenF1 data enriches post-session analysis under CC BY-NC-SA 4.0: it is attributed, labelled as non-official, and never used to set or overwrite a result. No live timing feed is used.

formula1.com

Authoritative source for race results, qualifying, championship standings, drivers, teams and calendar

FIA

Stewards decisions, technical directives, regulations, penalty points

Historical archive

Race data from 1950 to 2024, imported once from an audited archive and normalised

OpenF1 historical API

Post-session laps, stints, weather and race control. Non-official enrichment under CC BY-NC-SA 4.0, attributed in every row

06 / MULTI-SERIES

The same methodology, adapted per series. Our architecture is designed to support multiple motorsport championships from a single platform, but planned coverage stays off the page until it is verified and live.

Formula 1

Active

Since 1950