Overview
Race Control Messages (RCM) are official communications sent by race officials to teams about track status, flags, DRS availability, penalties, and incidents. These messages dictate the rules of engagement during the session and directly impact strategy decisions.Race control messages are the official record of track conditions. They determine when drivers can overtake, when DRS is available, and when the session is under caution or stopped.
File Location
Race control messages are stored once per session:Pre-Season Testing 2/Practice 3/rcm.jsonBahrain Grand Prix/Race/rcm.jsonMonaco Grand Prix/Qualifying/rcm.json
Data Structure
The JSON file contains parallel arrays where each index represents one message:Field Reference
Core Message Information
Timestamp when this message was issued by race control.Format: ISO 8601 timestamp
Example:
Example:
["2026-02-20T06:48:12.000000000", "2026-02-20T07:00:00.000000000", ...]Category of the message being sent.Values:
"Other"- General session information"Flag"- Flag-related messages (Yellow, Red, Green, etc.)"Drs"- DRS status changes"CarEvent"- Driver-specific events (penalties, unsafe release, etc.)
["Other", "Flag", "Drs", "CarEvent", ...]Human-readable description of the event.Examples:
"GREEN LIGHT - PIT EXIT OPEN""YELLOW IN TRACK SECTOR 11""DRS ENABLED""RED FLAG - RACE SUSPENDED""CAR 44 - UNSAFE RELEASE""CHEQUERED FLAG"
["SESSION WILL START AT 09:00", "GREEN LIGHT - PIT EXIT OPEN", ...]Additional context about the message state, depends on category.Common values:
"ENABLED"- DRS/feature enabled"DISABLED"- DRS/feature disabled"CLEAR"- Condition clearednull- No specific status
[null, "ENABLED", "DISABLED", "CLEAR", ...]Flag Information
Type of flag being waved (if category is “Flag”).Values:
"GREEN"- Track clear, session active"YELLOW"- Caution, hazard on track"RED"- Session stopped"CLEAR"- Previous flag condition cleared"CHEQUERED"- Session endednull- Not a flag message
[null, "GREEN", "YELLOW", "CLEAR", "RED", ...]Scope and Location
How wide the impact of this message is.Values:
"Track"- Entire circuit affected"Sector"- Specific sector(s) affected"Driver"- Single driver affectednull- Not applicable
["Track", "Sector", "Driver", ...]Which mini-sector is affected (if scope is “Sector”).Range: 1-24
Example:
The track is divided into 3 main sectors, each subdivided into 8 mini-sectors, giving 24 total mini-sectors (numbered 1-24).
Example:
[null, null, 11, 12, null, ...]Driver number affected by the message (if scope is “Driver”).Format: String car number
Example:
Example:
[null, null, "44", "1", "63", null, ...]Which lap number this message refers to (context-dependent).Example:
[null, null, 5, 12, null, ...]Real Data Example
Here’s actual race control message data from Pre-Season Testing 2, Practice 3:- 06:48:12 - Pre-session equipment requirement notification
- 07:00:00 - Pit lane opens (GREEN), session can begin
- 09:11:03 - YELLOW flag in sector 11 (mini-sector, likely debris or incident)
- 09:11:25 - RED FLAG - Session stopped due to serious incident
- 09:13:18 - Track cleared, ready to resume
- 09:13:20 - Another YELLOW in sector 11 (follow-up inspection)
- 09:16:01 - Sector 11 CLEAR
- 09:16:10 - Session will resume at 12:17 (delayed restart)
Message Categories Explained
- Flag Messages
- DRS Messages
- Car Events
- Other Messages
Category:
"Flag"Flag messages communicate track safety status:Green Flag
- Meaning: Track is clear, racing can begin/resume
- Driver action: Full racing speed allowed
- Example:
{"cat": "Flag", "msg": "GREEN LIGHT - PIT EXIT OPEN", "flag": "GREEN", "scope": "Track"}
Yellow Flag
- Meaning: Hazard on track (debris, stopped car, marshal activity)
- Driver action: Slow down, no overtaking in affected sector
- Scope: Usually sector-specific (1-24 mini-sectors)
- Example:
{"cat": "Flag", "msg": "YELLOW IN TRACK SECTOR 11", "flag": "YELLOW", "scope": "Sector", "sector": 11}
Red Flag
- Meaning: Session stopped, unsafe to continue
- Driver action: Return to pit lane immediately
- Reasons: Major accident, barrier damage, severe weather
- Example:
{"cat": "Flag", "msg": "RED FLAG - RACE SUSPENDED", "flag": "RED", "scope": "Track"}
Chequered Flag
- Meaning: Session ended
- Driver action: Complete current lap and return to pits
- Example:
{"cat": "Flag", "msg": "CHEQUERED FLAG", "flag": "CHEQUERED", "scope": "Track"}
Clear
- Meaning: Previous flag condition resolved
- Driver action: Resume normal racing
- Example:
{"cat": "Flag", "msg": "CLEAR IN TRACK SECTOR 11", "flag": "CLEAR", "scope": "Sector", "sector": 11}
Track Status Codes
Race control messages correlate with track status codes found in the Lap Timesstatus field:
| Code | Status | Corresponding Message | Impact |
|---|---|---|---|
1 | Track Clear | ”TRACK CLEAR”, “CLEAR IN SECTOR X” | Normal racing |
2 | Yellow Flag | ”YELLOW IN TRACK SECTOR X” | No overtaking, reduced speed |
3 | Unknown/Unused | Rarely observed | System reserved |
4 | Safety Car | ”SAFETY CAR DEPLOYED” | All cars bunch up |
5 | Red Flag | ”RED FLAG - RACE SUSPENDED” | Session stopped |
6 | VSC Deployed | ”VIRTUAL SAFETY CAR” | Controlled speed delta |
7 | VSC Ending | ”VIRTUAL SAFETY CAR ENDING” | Prepare for restart |
Use Cases
Strategic Analysis
Pit Window OptimizationRace Reconstruction
Timeline Visualization- Plot message timestamps on a timeline
- Color-code by category (flags, DRS, car events)
- Overlay with lap times to show impact on pace
- Identify chaotic periods with multiple incidents
- Filter for RED FLAG messages to identify major incidents
- Look at preceding YELLOW flags to trace incident development
- Correlate with telemetry data to understand what happened
Penalty Tracking
Driver PenaltiesDRS Zone Analysis
DRS Availability Timeline- Track when DRS is enabled/disabled throughout session
- Correlate with yellow flags (DRS auto-disables)
- Measure overtaking success rate during DRS-enabled periods
- Compare with Telemetry DRS usage data
Data Quality Notes
Race control messages are timestamped with wall-clock time (ISO 8601), not session time. To correlate with lap times or telemetry (which use session time), you’ll need to calculate the session start time and convert accordingly.
Some messages may be issued retroactively or updated. The message stream represents the official record as finalized after the session.
Mini-Sector Reference
The track is divided into 24 mini-sectors (3 main sectors × 8 mini-sectors each):| Main Sector | Mini-Sectors | Description |
|---|---|---|
| Sector 1 | 1-8 | First third of track |
| Sector 2 | 9-16 | Middle third of track |
| Sector 3 | 17-24 | Final third of track |
