Overview
Lap times data provides comprehensive timing and performance information for each completed lap, including sector times, speed trap measurements, tire compound selection, and pit stop timing. This is the primary dataset for understanding lap-by-lap performance trends.Unlike telemetry which captures millisecond-level data, lap times aggregate performance over entire laps and sectors, making it ideal for high-level performance analysis and strategy evaluation.
File Location
Lap times are stored per driver within each session:Pre-Season Testing 2/Practice 3/VER/laptimes.json- All Verstappen lap timesPre-Season Testing 2/Practice 3/SAI/laptimes.json- All Sainz lap times
Data Structure
The JSON file contains parallel arrays where each index represents one lap:Field Reference
Core Timing Information
The actual lap time in seconds.
Example:
null for incomplete laps (e.g., out-laps, in-laps, or retirement laps).Unit: secondsExample:
[137.573, 98.428, 98.855, 98.674, null, ...]Sequential lap number starting from 1.Example:
[1, 2, 3, 4, 5, ...]Session time in seconds when this lap ended, relative to session start.Unit: seconds from session start
Example:
Example:
[145.2, 243.6, 342.5, ...]Lap start time in seconds, relative to session start. Combined with
Example:
sesT, you can calculate exact lap duration.Unit: seconds from session startExample:
[0.0, 145.2, 243.6, ...]Calendar date/timestamp when the lap started. Useful for multi-day sessions or correlating with external events.Format: ISO 8601 timestamp
Example:
Example:
["2026-02-20T09:15:23.000000000", ...]Sector Times
F1 tracks are divided into 3 sectors. Sector times help identify where drivers gain or lose time. The sum of
s1 + s2 + s3 equals the total lap time.Time to complete the first section of track.Unit: seconds
Example:
Example:
[31.118, 31.54, 31.307, ...]Time to complete the second section of track.Unit: seconds
Example:
Example:
[43.465, 43.488, 43.362, ...]Time to complete the final section of track.Unit: seconds
Example:
Example:
[23.845, 23.827, 24.005, ...]Session time when Sector 1 was completed, relative to session start.Unit: seconds
Example:
Example:
[31.2, 176.3, 274.8, ...]Session time when Sector 2 was completed, relative to session start.Unit: seconds
Example:
Example:
[74.7, 219.8, 318.2, ...]Session time when Sector 3 was completed, relative to session start.Unit: seconds
Example:
Example:
[98.5, 243.6, 342.5, ...]Speed Trap Data
Top speed measured at the speed trap in Sector 1.Unit: km/h
Example:
Example:
[298.5, 301.2, 299.8, ...]Top speed measured at the speed trap in Sector 2.Unit: km/h
Example:
Example:
[315.3, 316.7, 314.9, ...]Top speed measured at the finish line.Unit: km/h
Example:
Example:
[312.5, 315.2, 314.8, ...]Top speed measured on the longest straight of the circuit.Unit: km/h
Example:
Example:
[325.1, 327.8, 326.3, ...]Tire Information
The tire compound being used for this lap.Values:
"SOFT"- Fastest, least durable"MEDIUM"- Balanced performance"HARD"- Slowest, most durable"INTERMEDIATE"- Light rain conditions"WET"- Heavy rain conditions"TEST_UNKNOWN"- Testing compound (pre-season)"UNKNOWN"- Compound not identified
["MEDIUM", "MEDIUM", "MEDIUM", "SOFT", ...]Number of laps completed on this tire set, including laps from previous sessions if tires were reused.Unit: laps
Example:
Example:
[0, 1, 2, 3, 4, 0, 1, ...] (resets after pit stop with fresh tires)Indicates whether this was a new (fresh) tire when first fitted.
true means the tire had life = 0 at stint start.Example: [true, true, true, true, true, false, false, ...]Stint number, incrementing with each pit stop. First stint = 1, after first pit stop = 2, etc.Example:
[1, 1, 1, 1, 2, 2, 2, 3, ...]Position and Status
Driver’s position in the race/sprint at the end of this lap.Range: 1-22
Example:
This value is
null for practice sessions (FP1, FP2, FP3), qualifying sessions, sprint shootout, and crash/incomplete laps.Example:
[5, 4, 3, 3, 2, 1, ...]Track status codes that occurred during this lap (concatenated as a string).Status Codes:
"1"- Track Clear"2"- Yellow Flag"4"- Safety Car"5"- Red Flag"6"- Virtual Safety Car"7"- VSC Ending
["1", "1", "216", "1", ...] (“216” = Yellow flag during lap)Indicates whether this lap is the official personal best lap of the driver. If any lap is quicker than the marked PB, the faster lap was invalid (e.g., track limits exceeded).Example:
[false, false, true, false, ...]Pit Stop Information
Session time when the driver entered the pit lane.
Example:
null if this wasn’t an in-lap.Unit: seconds from session startExample:
[null, null, 325.4, null, ...]Session time when the driver exited the pit lane.
Example:
null if this wasn’t an out-lap.Unit: seconds from session startExample:
[null, null, null, 348.2, null, ...]Data Quality and Accuracy
Indicates if this lap timing data passed basic accuracy checks. Lap start and end times are synced correctly with other laps.Example:
This does NOT indicate accuracy of lap time or sector times (those are always considered accurate if they exist). Laps marked as inaccurate should be handled with caution.
[true, true, true, false, true, ...]Indicates that this lap was added by FastF1 (the data extraction tool). Such laps have limited information available, with some data interpolated or based on assumptions.Example:
This commonly occurs for partial last laps when drivers retire on track.
[false, false, false, false, true]Indicates that a lap was deleted by stewards (e.g., track limits violation).Example:
[false, false, true, false, ...]Reason for lap time deletion, if applicable.Example:
[null, null, "Track limits at Turn 4", null, ...]Driver/Team Reference
Driver identifier (3-letter code).Example:
"VER", "HAM", "LEC"Driver’s car number for cross-referencing with other datasets.Example:
"1", "44", "16"Team name.Example:
"Red Bull Racing", "Ferrari", "Mercedes"Real Data Example
Here’s an actual sample from Max Verstappen’s lap times in Pre-Season Testing 2, Practice 3:Use Cases
Performance Tracking
- Lap Time Evolution: Track how lap times improve or degrade over a stint
- Sector Analysis: Identify which track sections favor specific drivers or teams
- Speed Trap Comparison: Compare top speeds to evaluate straight-line performance
- Tire Performance: Correlate lap times with tire age and compound
Strategy Analysis
- Pit Stop Timing: Analyze
pinandpoutto understand pit stop strategies - Stint Length: Use
stintandlifeto determine optimal tire strategy - Tire Degradation: Plot lap time vs. tire life to model degradation curves
- Personal Best Analysis: Use
pbflag to identify fastest valid laps
Race Analysis
- Position Changes: Track
posacross laps to visualize race progression - Yellow Flag Impact: Analyze lap times during
status = "2"(Yellow Flag) - Safety Car Timing: Identify pit stop opportunities during
status = "4"or"6" - Track Limits: Use
delanddelRto identify common track limit violation zones
Track Status Reference
| Code | Status | Description | Impact |
|---|---|---|---|
1 | Track Clear | Normal racing conditions | Full speed racing |
2 | Yellow Flag | Hazard on track | No overtaking, reduced speed in sector |
4 | Safety Car | Physical safety car deployed | All cars bunch up, pit window opens |
5 | Red Flag | Session stopped | Cars return to pit lane |
6 | Virtual Safety Car | VSC deployed | Controlled speed delta, no safety car queue |
7 | VSC Ending | VSC about to end | Prepare for racing restart |
Related Pages
- Telemetry - Millisecond-level sensor data for each lap
- Weather - Environmental conditions affecting lap times
- Race Control - Official messages about flags and track status
- Drivers - Driver information and team affiliations
