Skip to main content
Bronze-layer event log. One row per race control message. ~50–200 rows per race (average ~100). Covers flags, incidents, safety car deployments, and procedure messages.

Overview

session_time_s is null for all 2024 races due to FastF1 v3.8.3 API change. Use Lap instead; join to laps via lap number for precise timing. message text is unstructured use regex or fuzzy matching. Race only; race control is never written for qualifying sessions.
Columns that look real but aren’t. A search for one of these on this dataset will come up empty:
  • code Never ingested; there is no code column in any partition.
  • lap (lowercase) The real column is Title-Case Lap.
  • time (lowercase) The real column is Title-Case Time.
  • flag (lowercase) The real column is Title-Case Flag.

Columns

integer
Lap number when message triggered. Null for pre-race messages (parades, formation laps). Source: FastF1 native.
TIMESTAMP_NS
Message timestamp (session clock). Source: FastF1 native.
float64
Time in seconds since session start. Null for all 2024 races due to FastF1 v3.8.3 DatetimeProperties API change. Use Lap for joins instead. ⚠️ Null for 2024 races (FastF1 v3.8.3 regression) Source: FastF1 native.
string
Flag colour: GREEN, YELLOW, DOUBLE YELLOW, RED, CLEAR, CHEQUERED, BLUE. Null for non-flag messages. Source: FastF1 native.
string
Message category: ‘Weather’, ‘Incident’, ‘CarEvent’, ‘SafetyCar’, ‘Procedure’, etc. Source: FastF1 native.
string
Human-readable message text. Unstructured values include ‘Safety car deployed’, ‘Debris on track’, ‘Lapped car released’. Use regex or fuzzy matching. Source: FastF1 native.
string
required
Links to laps.race_id. Format: YYYY_RoundNumber. Source: Ingestion pipeline.
integer
required
Hive partition key. Source: Ingestion pipeline.

Required Columns

These columns are always present (non-null, always ingested): race_id, season.