The model in one paragraph
The Five Reds engine is a hierarchical Bayesian model that learns separate latent ability ratings for drivers, teams and chassis-era effects, then combines them with circuit-specific and weather-conditional terms. Predictions come out as full probability distributions over finishing positions, not point estimates — that's why we always quote pole-likelihood, podium-likelihood and points-likelihood rather than a single forecast.
What it learns from
- Ergast — the open historical F1 archive (1950 onwards). Used for long-range team and driver priors.
- FastF1 — live timing, lap-by-lap data, weather and tyre allocation back to 2018.
- Race control snapshots — yellow flags, safety cars, deletions, recorded mid-session.
The three layers
Driver ratings
Driver ability is estimated from teammate head-to-head Elo from 2003 onwards — the modern Q1/Q2/Q3 era. We use teammate comparisons rather than absolute lap times because the car is by far the largest variable. See the ratings page for current and historical Elo trajectories.
Pace
Absolute pace estimates combine the driver rating with the team's current-season form, the circuit, and the conditions. We then sample from the joint posterior to get a Monte-Carlo race simulation per session. Output is on the pace page.
Reliability
Reliability is its own model. We learn a per-team DNF base rate, modulated by season, circuit and recent reliability history. A separate per-driver DNF-by-error component picks up incidents independent of mechanical reliability.
Backtesting and calibration
Every release runs a walk-forward backtest back to 2018. We measure log-loss and Brier score on each prediction surface (pole, podium, winner, points) and report calibration: a 70% probability should be right 70% of the time, not 60%, not 80%. We publish the calibration plot on the charts page.
What we don't claim
The model doesn't predict crashes. It can model how often a driver crashes, on average, in a given conditions; it can't tell you Lap 14 will produce a Turn 7 incident. It also can't predict regulation changes, contract moves, or anything else that resets its priors. We document those events as they happen and let the model re-learn.
If you want to see the code
The full engine source lives in a private repo. We publish the methods in detail because we want the analysis to be reviewable; the code stays private because the production engine is part of the paid product. We're happy to talk through specifics — drop us a line.