What this pillar does
Every other pillar in this app measures pace: how fast a car was, and why. Race Craft measures the things that suspend pace altogether. A neutralisation is the single largest exogenous shock in a Grand Prix. It erases the gaps that twenty laps of degradation management built, it halves the price of a pit stop for whoever has not yet taken one, and it routinely decides the result. A strategy call graded without it is graded against the wrong race.- Race Control Timeline puts every safety car, VSC and red flag of a single race on its lap axis, with each window’s duration in laps. Read alongside the Pit Strategy Gantt for the same race, it separates a strategist who called a caution correctly from one who was standing in the right place when it happened.
What this pillar deliberately does not claim
The obvious next question “how likely is a safety car at this circuit?” is not answered anywhere in this app, and the reason is measured rather than asserted. The warehouse holds about 4.1 races per circuit, and at that volume the between-circuit variance component of the per-race caution rate measures zero. Eight circuits in the naive table read exactly 100% and one reads 0%, which is what 36 estimates each carrying a 22-point standard error look like. The Race Control Timeline page carries the full argument, and shows a pooled rate with an interval in place of a per-venue percentage.Every feature in this pillar
Race Control Timeline
Safety cars, VSCs and red flags per race, on the lap and for the duration, with the
pooled caution frequency and its interval.
Data lineage
The per-lap status originates in the FIA track-status channel, decoded instg_laps and
carried into int_stint_geometry. The app reads it through race_caution_timeline, an
export-time aggregate at one row per (race, lap). Per-circuit hazard context comes from
int_sc_hazard_history, season-lagged and empirical-Bayes shrunk.
The FIA race-control message feed is also ingested (stg_race_control, 12,814 messages
across all 149 races) but is not yet consumed by any model or export. What it lacks is
structure: penalties and DRS windows live inside the message text, not as fields, which is
why Penalty Impact and DRS Dependency remain on the roadmap.