Motorsport Race Intelligence

The F1 race
intelligence layer.

Twelve production ML models running live during every F1 session — delivered as a single analytics key on your existing webhook payload. F1 is the first series on the platform; IndyCar and NASCAR are coming soon.

12
parallel models
733
sessions covered
340K+
laps analyzed
<50ms
per-model inference
20
drivers per update
Start Analytics — $6,999/moSee the models ↓
Live architecture

What runs behind every payload.

During a live F1 race, our pipeline processes a continuous stream of live race events and runs twelve ML models in parallel — for every driver, on every update. Enriched payloads reach your endpoint in real time, typically well within a second of happening live.

Each model runs in an isolated inference context. One slow computation never blocks the others.

Session state manager
Maintains per-driver tire age, stint history, gap history, and incident flags across the full race distance.
Kalman filter (every update)
Tire degradation state estimation runs on every timing packet — not just lap completions. The filter updates its degradation rate estimate continuously.
Parallel model inference
All twelve models execute concurrently, each in an isolated inference context — one slow computation never blocks the others.
Live inference pipeline
Live F1 race data
Real-time timing and telemetry
RaceHooks Ingestion
Node.js 22 · TypeScript
Session State Manager
Kalman filter runs continuously
PARALLEL MODEL INFERENCE
Tire Degradation(GPR + Kalman)
avg 12ms
Win Probability / ECP(CTMC)
avg 8ms
Pit Stop Prediction(Bi-LSTM)
avg 18ms
Safety Car(LightGBM)
avg 5ms
Overtake Probability(XGBoost)
avg 14ms
Pace Normalization(LightGBM)
avg 9ms
Payload Enrichment
analytics{} merged into timing data
Your Endpoint
HMAC-signed · retry · delivery logs
real-time
The model stack

The core models, in full.

Technical approach, live output visualizations, input features, and business context — for six of the twelve production models, documented in depth.

TIRE

Tire State Intelligence

Kalman Filter + Gaussian Process Regression

"The model catches degradation cliffs 3–5 laps before the team notices the delta."

0–100
live tyre health score
How it works

The tire model runs two layers. A Kalman filter provides online state estimation — updating the tire health estimate and, critically, the estimated degradation rate on every incoming lap time. Early degradation is detected before the lap time cliff fully materializes. On top of the Kalman state, a Gaussian Process Regression model captures the full degradation curve per compound, including non-linear acceleration near the thermal cliff. The GP provides uncertainty bounds alongside the point estimate.

Business value

Tire strategy determines ~40% of race outcomes. A model that catches the cliff 3–5 laps early — before any on-screen indication — is the most valuable pre-pit signal available. For fantasy: transfer decisions. For betting: pit window odds with real degradation data behind them.

Live output preview
cliff0255075100L0L15L30L45Health
Input features
Tire age (laps)
Compound
Circuit profile
Stint mean lap delta
Sector time degradation (S1/S2/S3)
Session track temperature
Track evolution coefficient
Team × season baseline
Output fields
analytics.tireHealth0–100. Below ~35 is the cliff zone.
analytics.tireHealthDeltaRate of change per lap. Accelerating negative = cliff approaching.
analytics.predictedLapsRemainingModel-estimated laps before critical threshold.
analytics.degradationRate"slow" | "moderate" | "high" | "critical"
WIN PROB

Live Win Probability

Continuous Time Markov Chain (CTMC)

"Analytically exact probability over all final positions — updated on every timing packet, not just at lap boundaries."

Microseconds
to compute full field update
How it works

Win probability is modelled as a CTMC over the joint position state of all 20 drivers. Transition rates between position states are parameterised functions of current gap, tire health differential, remaining laps, Overtake Mode eligibility (gap < 1.0s), safety car probability, and lap delta trajectory. The CTMC computes the probability distribution over final positions analytically via matrix exponentiation. This is why it can run on every timing packet — not just at lap boundaries. It does not simulate the race forward; it solves the current state exactly.

Business value

A 15–25 percentage point swing in win probability during a safety car period is routine. For a sportsbook carrying $200K–$500K in open race positions during a race, that is material risk exposure moving faster than most odds refresh pipelines. Real-time win probability delivery is risk management infrastructure.

Live output preview
SC0.00.51.0L30L36L42L48L54
Input features
Current gap (seconds)
Tire health differential
Remaining laps
Overtake Mode eligibility (gap < 1.0s)
Safety car probability (live)
Lap delta trajectory
Circuit overtake index
Driver retirement probability
Output fields
analytics.winProbability0–1. Updates on every timing packet.
analytics.winProbabilityDeltaSigned change from prior lap. Spikes on SC deployment.
analytics.podiumProbabilityP(top 3 finish). Broader signal for fantasy and media.
analytics.topHalfProbabilityP(top 10 finish). Fantasy points threshold modelling.
ECP

Expected Championship Points

CTMC Position Distribution × F1 Points Vector

"The safety car is the most valuable championship-value event in a race. ECP converts abstract position probability into a concrete number of expected championship points — instantly, for every driver."

0 – 25
championship points range
How it works

ECP is a deterministic function of the CTMC position distribution. After the CTMC solver produces P(final position = k) for each driver, ECP is the dot product of that distribution with the F1 points vector [25, 18, 15, 12, 10, 8, 6, 4, 2, 1, 0…]. The result is championship-granular: a leader at 65% win probability maps to roughly 18–21 ECP depending on circuit overtake index. A P12 driver outside the points has ECP ≈ 0.3. A safety car neutralises the field and can move ECP by 10+ points across multiple drivers simultaneously. ECPA — the signed delta from the prior lap — is the fastest single-number summary of which driver gained or lost championship value this lap. SC deployments produce the largest single-lap ECPA swings in the dataset.

Business value

Championship title races have 3–4 decisive weekends per season. Live ECP converts real-time race data into the metric championships are actually decided on. For sports media covering a title fight, ECP arc visualisations are the highest-signal graphic available. For DFS/fantasy scoring: ECP directly models what points finishes cost and gain in the context of the current race.

Live output preview
SC01225L10L14L18L22L26
Input features
CTMC position distribution (20+ position states)
F1 points vector [25, 18, 15, 12, 10, 8, 6, 4, 2, 1, 0…]
Pit-exit correction (virtual position adjustment)
Prior-lap ECP (for signed ECPA delta)
SC deployment flag (triggers ECPA event classification)
Lapped car adjustment (shrinks rivalry count)
Output fields
analytics.ecpExpected championship points. Updates every lap. Range: 0–25.
analytics.ecpaSigned delta from prior lap. Spikes at SC deployment, pit stops, overtakes.
analytics.ecpaEvent"lapCompletion" | "pitStop" | "safetyCarDeploy" | "overtake" — cause of the ECPA change.
PIT STOP

Pit Stop Prediction

Bidirectional LSTM Neural Network

"The probability gradient matters as much as the value — watch it climb, not just peak."

3–5 laps
advance warning
How it works

A Bidirectional LSTM processes the last 8 laps of contextual features per driver. The bidirectional architecture is deliberate: the backward pass gives the model knowledge of the expected end-of-stint degradation pattern, so it can assess how far through the tire lifecycle a driver is sitting. The output is a probability per driver per lap, not a binary window signal. This means downstream consumers can track the gradient: 0.31 → 0.44 → 0.62 → 0.78 across successive laps is a very different signal than stable at 0.45.

Business value

The pit stop market is F1's most actively traded in-play event. A probability signal with 3–5 laps of advance notice — before the team has made the call, before any on-screen hint — represents a genuinely tradeable edge. No other commercial F1 data API provides it.

Live output preview
68%82%0.00.51.0T-5T-4T-3T-2T-1T
Input features
Tire age
Stint mean lap delta (deviation from running avg)
Gap ahead (undercut threat)
Gap behind (overcut threat)
Safety car probability
Sector time degradation (S1/S2/S3 separately)
Compound
Driver degradation fingerprint
Output fields
analytics.pitStopProbability0–1 per lap. Track the gradient, not just the value.
analytics.expectedWindowOpenLaps from now until the probable pit window opens.
analytics.expectedWindowCloseLaps from now until the probable pit window closes.
analytics.undercut{ vs, gain } — estimated position gain from pitting this lap.
SAFETY CAR

Safety Car Probability

LightGBM Gradient Boosted Trees

"Safety car deployments are not random. They are preceded by detectable conditions in the timing data."

Every lap
SC + VSC probability
How it works

LightGBM was chosen specifically for this model: it handles the mix of continuous timing features and categorical circuit/weather features efficiently, with inference under 5ms — fast enough to update on every lap. Key predictive signals: recent incident flag frequency, field compression index (how tightly the pack has bunched), per-circuit historical SC probability, session phase (lap 1–5 is statistically higher risk), and weather severity. The 2026 elevated SC rate from driver adaptation to turbo lag was applied as a +0.10 base rate adjustment proactively before the season started.

Business value

Safety cars cause the largest single-lap swings in race outcome probability — and trigger the largest volume spikes across every in-play market simultaneously. Knowing before the flag drops is the most operationally valuable advance signal in live F1 data.

Live output preview
LOWMODHIGH31%SC PROBABILITY
Input features
Recent incident flag count (5-lap rolling)
Field compression index (gap distribution variance)
Circuit sector incident rate (historical per-sector)
Session phase (lap number / total laps)
Weather severity (rainfall, track temp delta)
Current track status
Pace normalization state (elevated LTOE = stress)
Output fields
analytics.safetyCarProbability0–1. Primary signal. Updates every lap.
analytics.vscProbabilityVirtual Safety Car probability — lower severity events.
analytics.redFlagRiskP(red flag). Low baseline, spikes materially on serious incidents.
OVERTAKE

Overtake Probability

XGBoost with Per-Circuit Calibration

"A 1-second gap on Monza is not the same as a 1-second gap in Monaco. The model knows the difference."

Per circuit
calibrated — Monza ≠ Monaco
How it works

XGBoost trained on driver-pair laps across the 2018–2025 seasons, predicting whether driver A overtakes driver B within the next 3 laps. The critical design decision: a per-circuit overtake index trained on historical position-change rates per circuit-sector pair. 2026 transition: the DRS feature becomes Overtake Mode (same 1.0s threshold, different physics). Overtake Mode provides electric boost anywhere on track — not just designated straights. The circuit index was recalibrated for the broader activation envelope.

Business value

Not all close gaps produce overtakes. A per-pair model that distinguishes real threat from traffic management gives broadcast graphics, fantasy scoring engines, and in-play market signals something genuinely predictive — not a replay of what the timing screen already shows.

Live output preview
41611%L4441638%L4541668%L46
Input features
Inter-car gap (seconds)
Tire age differential (attacker minus defender)
Compound differential
Speed trap delta (straight-line speed from prior lap)
Overtake Mode eligibility (gap < 1.0s)
Circuit overtake index (per-circuit historical calibration)
Historical pass rate for circuit sector
Pace trend (closing vs. maintaining)
Output fields
analytics.overtakePairs[]Array of { attacker, defender, p3lap } sorted descending. Every pairing within 3s.
LTOE

Pace Normalization (LTOE)

LightGBM Expected Lap Time Model

"Strip out tyre age, fuel burn, track evolution, and traffic — what's left is real pace, not a fresh-rubber illusion."

Every lap
normalized pace delta
How it works

LTOE — Lap Time on Expected — is the residual between actual lap time and what the model predicts, given all context. Trained on lap-level data across the 2018–2025 seasons. Core features: tire age × compound interaction (compound-specific degradation per circuit), fuel-corrected lap time (fuel burns ~0.03s/lap), track evolution coefficient, traffic indicator (clean air vs. dirty air), and a TeamYear baseline that absorbs car performance relative to the field for that specific constructor × season. LTOE = actual − predicted. Negative = faster than expected. That is real pace, not fresh tire advantage.

Business value

Tire age alone accounts for 0.8–1.2 seconds of lap time degradation in the final stint. Without correcting for this, 'fast lap times' just means 'driver on fresh rubber in clear air.' LTOE removes all of it. It is the only commercially available normalized pace metric for F1.

Live output preview
VER-0.182sNOR-0.094sLEC+0.048sHAM+0.071sRUS+0.163sSAI+0.241s0.0sfasterslower
Input features
Tire age × compound interaction
Fuel-corrected lap time (estimated fuel remaining)
Track evolution coefficient (session lap count proxy)
Traffic indicator (clear air vs. dirty air)
TeamYear baseline (car performance relative to field)
Circuit-specific sector weights
ERA encoding (pre-2022, 2022–2025, 2026+)
Output fields
analytics.ltoeSeconds (signed). Negative = faster than expected. Positive = slower.
analytics.ltoeCategory"underperforming" | "neutral" | "overperforming"
analytics.paceRankDriver's field position sorted by LTOE. 1 = fastest normalized pace.
analytics.trafficAdjustedBoolean. Whether the traffic correction was applied this lap.
2026 Recalibration

What maintaining production ML for a live sport actually looks like.

2026 introduced the most fundamental regulation change since 2022. MGU-H removed. MGU-K tripled to 350 kW. DRS replaced by active aerodynamics. Turbo lag returned for the first time in the hybrid era.

The result: Bahrain testing sector 2 times 2.96 seconds slower. Saw-tooth throttle profiles instead of flat full-throttle. Every model trained on 2018–2025 data required reassessment.

Anyone can train a model on historical data. Maintaining that model through a fundamental regulation change — while it is serving live data — is where most analytics efforts fail. We tracked this before the season started.

CRITICALTire Degradation

Turbo lag shifts front-tire thermal loading on high-speed circuits. Max stint lengths for Soft and Medium revised. Circuit parameters recalibrated.

CRITICALLTOE Pace Normalization

2026 is a full structural break — car performance baselines reset entirely. LTOE suppressed until 3+ races of 2026 data accumulate for fine-tuning.

HIGHPit Stop Prediction

ERS clipping creates saw-tooth lap time variance that mimics degradation cliff signatures. Decision threshold raised 0.53 → 0.60 while 2026 retraining completes.

MEDIUM-HIGHWin Probability (CTMC)

DRS → Overtake Mode: same 1.0s threshold, different physics. Transition rate β₃ updated 0.90 → 1.10 to reflect broader electric power advantage.

MEDIUMSafety Car Probability

Elevated SC rate from driver adaptation to turbo lag. Base rate +0.10 applied for all circuits in first 6 races. Referenced 1980s turbo-era F1 data.

MEDIUMOvertake Probability

Overtake Mode is circuit-wide vs. DRS zone-specific. Circuit overtake indices recalibrated for the broader activation envelope.

Analytics tier — $6,999/mo

What the analytics layer is worth.

Frame it against what it enables. The data either earns its keep or it doesn't — here is how it earns.

Betting OperatorsRisk management

Reprice before the crowd moves. Not after.

A mid-tier sportsbook running in-play markets might carry $150K–$500K in open positions during a race. A safety car shifts win probability 15–25 points in seconds. Real-time probability delivery is risk management infrastructure, not a data enrichment line item.

Fantasy PlatformsUser retention

The analytics layer that makes your premium tier defensible.

F1 Fantasy has an estimated 12 million registered players globally. Live tire state, win probability shifts, and pit prediction are the signals that separate a premium fantasy experience from a free one. The Analytics tier delivers all of them directly in your webhook payload.

Media & BroadcastProduction efficiency

Apple TV paid $150M/year for F1 rights. The data is the story.

The production teams building analytics overlays for the 2026 Apple TV broadcast need exactly this data — live win probability, tire state countdowns, pit window indicators. Assembling it from raw timing feeds requires a dedicated engineering team. The Analytics tier is the production-ready alternative.

Data Science TeamsBuild vs. buy

Twelve production ML models. Trained, maintained, and live.

Building one production ML model on live F1 data — training pipeline, feature engineering, live inference integration, backtesting, season recalibration — is a 3–6 month project for a senior ML engineer. Multiply by twelve. The Analytics tier delivers all of them as webhook fields. Ship a feature instead.

Twelve models.
One webhook field.

Start on the free tier to prove the integration. Upgrade to Analytics when the data starts earning.

Start Analytics — $6,999/moStart free first

Betting operator or media platform? Contact us for enterprise contracts with contractual SLAs.