Motorsport Race Intelligence

The F1 race
intelligence layer.

Fourteen 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; the IndyCar data API is available now, with live delivery and more series in development.

14
parallel models
733
sessions covered
340K+
laps analyzed
<50ms
per-model inference
20
drivers per update
Talk to salesSee 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 fourteen 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 fourteen 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(Kalman filter)
avg 12ms
Win Probability / ECP(Monte Carlo)
avg ~30ms
Pit Stop Prediction(Gradient-boosted ensemble)
avg 18ms
Safety Car(Gradient-boosted ensemble)
avg 5ms
Overtake Probability(Gradient-boosted ensemble)
avg 14ms
Pace Normalization(Gradient-boosted ensemble)
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 the most-integrated of the fourteen production models, documented in depth.

TIRE

Tire State Intelligence

Kalman filter state-space model

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

0–100
live tyre health score
How it works

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. A second stage models the full degradation curve per compound, including non-linear acceleration near the thermal cliff, and 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: an independent pit-window read a trading desk can weigh against its own pricing.

Live output preview
cliff0255075100L0L15L30L45Health
Input features
Tyre age
Compound
Circuit profile
Stint pace trend
Sector-time degradation
Track temperature
Track evolution
Constructor 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

Monte Carlo race-to-finish simulation

"Calibrated win and podium probability from simulating the race to the flag hundreds of times — no driver pinned to a flat 0% or 100%."

Race to the flag
simulated on every update
How it works

Win probability is the share of simulated races a driver finishes first. On each update we run the remaining laps forward hundreds of times: every car carries its own pace and lap-to-lap uncertainty, its tire degrades on its current compound, and its remaining mandatory pit stops are sampled — so a fresher car yet to stop is correctly weighed against the car ahead on track. A shared safety-car draw, per-driver retirement hazard, and dirty-air overtaking (a faster car has to complete the pass, gated by how hard the circuit is to overtake on) play out across every simulation. Early-race pace is shrunk toward a pre-race prior built from the weekend's practice and qualifying and recent form, then handed over to live pace as clean laps accumulate. The finishing-order distribution across all simulations gives win, podium, and points-finish probability directly.

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. It is an independent, real-time probability read your traders can weigh against their primary feed and in-house models.

Live output preview
SC0.00.51.0L30L36L42L48L54
Input features
Per-driver pace + uncertainty
Tyre degradation state
Remaining mandatory pit stops
Pre-race pace prior
Live safety-car probability
Driver retirement hazard
Circuit overtake difficulty
Gap to leader
Output fields
analytics.winProbability0–1. Recomputed every lap.
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

Monte Carlo finishing 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 — every lap, for every driver."

0 – 25
championship points range
How it works

ECP is the expectation of the same race-to-finish simulation that drives win probability. Each lap the simulation produces P(finish = k) for every driver; ECP is the dot product of that finishing distribution with the F1 points vector [25, 18, 15, 12, 10, 8, 6, 4, 2, 1, 0…]. Because ECP and win probability come from one simulation, they always agree. The result is championship-granular: a leader holding station maps to roughly 18–22 ECP; a P12 driver just outside the points has ECP ≈ 0.3. A safety car neutralises the field and can move ECP by 10+ points across multiple drivers at once. 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, pit stops, and overtakes produce the largest single-lap ECPA swings.

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
Monte Carlo finishing-position distribution
F1 points vector [25, 18, 15, 12, 10, 8, 6, 4, 2, 1, 0…]
Per-driver pace, tyre, and strategy state (shared with win probability)
Prior-lap ECP (for signed ECPA delta)
SC / pit / overtake event classification
Consistent by construction with served win/podium probability
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

Gradient-boosted ensemble

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

3–5 laps
advance warning
How it works

A gradient-boosted ensemble reads a rolling window of recent contextual features per driver and assesses how far through the tire lifecycle a driver is sitting relative to the expected end-of-stint pattern. The output is a probability per driver per lap, not a binary window signal. This means downstream consumers can track the gradient — a probability climbing lap over lap is a very different signal than one holding steady.

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
Tyre age
Stint pace trend
Gap ahead
Gap behind
Safety-car probability
Sector-time degradation
Compound
Per-driver degradation profile
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

Gradient-boosted ensemble

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

Every lap
SC + VSC probability
How it works

A gradient-boosted ensemble 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 frequency, how tightly the pack has bunched, per-circuit historical SC probability, session phase (the opening laps are statistically higher risk), and weather severity. An elevated 2026 safety-car rate was anticipated from the regulation change and applied as a base-rate adjustment 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 incidents
Field compression
Circuit incident history
Session phase
Weather severity
Track status
Field pace-stress signal
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

Gradient-boosted ensemble, 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

A gradient-boosted classifier trained on driver-pair laps across multiple seasons predicts 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 — a similar activation concept with 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
Tyre-age differential
Compound differential
Straight-line speed trend
Overtake Mode eligibility
Circuit overtake index
Circuit pass-rate history
Closing-pace trend
Output fields
analytics.overtakePairs[]Array of { attacker, defender, p3lap } sorted descending. Every pairing within 3s.
LTOE

Pace Normalization (LTOE)

Gradient-boosted 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 full historical archive. Core features: tyre age and compound (compound-specific degradation per circuit), fuel-corrected lap time, track evolution, a clean-air / traffic indicator, and a constructor baseline that absorbs car performance relative to the field for that specific constructor and 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
Tyre age and compound
Fuel-corrected lap time
Track evolution
Clean-air / traffic state
Constructor performance baseline
Circuit profile
Regulation-era context
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 the pre-2026 historical archive 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 changes to tyre thermal loading required revisiting stint-length assumptions and recalibrating circuit parameters.

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

New-era power-unit behaviour changes lap-time variance patterns; the recommendation threshold was re-tuned while 2026 retraining completes.

MEDIUM-HIGHWin Probability (Monte Carlo)

Overtake Mode raises pass-through rates versus DRS-zone-specific activation. The simulation's circuit overtake difficulty is recalibrated for the broader envelope, so probabilities reflect easier on-track passing.

MEDIUMSafety Car Probability

An elevated early-season SC rate was anticipated from the regulation change; a base-rate adjustment was applied for the opening races.

MEDIUMOvertake Probability

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

Custom tier — talk to sales

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

An independent model set for your trading desk.

A mid-tier sportsbook running in-play markets might carry $150K–$500K in open positions during a race, where a safety car shifts win probability 15–25 points in seconds. RaceHooks gives your traders an independent, F1-specialist set of models to weigh against their official feed and in-house pricing — a challenger signal on the desk, not the settlement source.

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. Custom 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. Custom is the production-ready alternative.

Data Science TeamsBuild vs. buy

Fourteen 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 across the model suite. Custom delivers all of them as webhook fields. Ship a feature instead.

Fourteen models.
One webhook field.

Start on the free tier to prove the integration. Talk to sales when the data starts earning.

Talk to salesTry free replay first

Betting operator or media platform? Talk to sales for custom contracts with contractual SLAs.