Overview
Performance tables capture the on-track action, including race results, qualifying times, lap-by-lap data, and pit stop information. These tables form the core analytical dataset for Formula 1 performance analysis.results.csv
The primary table containing race results, finishing positions, and performance statistics for each driver in each race.Schema
Unique identifier for each result. Primary key.Example:
1Foreign key to
races.csv.Example: 18Foreign key to
drivers.csv.Example: 1Foreign key to
constructors.csv.Example: 1Driver’s car number for this race. May be
\N for older races.Example: 44Starting grid position (1 = pole position, 0 = pitlane start).Example:
1Finishing position. May be
\N if driver did not finish.Example: 1Text representation of position. May be “R” (retired), “D” (disqualified), “E” (excluded), “W” (withdrawn), “F” (failed to qualify), “N” (not classified), or a number.Example:
"1" or "R"Order of finish for sorting purposes. Finishers come before non-finishers.Example:
1Championship points scored in this race.Example:
10.0Number of laps completed.Example:
58Total race time for winner, or gap to winner (e.g., “+5.478”). May be
\N for DNF.Example: "1:34:50.616" or "+5.478"Total race time in milliseconds. May be
\N for DNF.Example: 5690616Lap number of driver’s fastest lap. May be
\N.Example: 39Rank of this driver’s fastest lap compared to all drivers (1 = fastest). May be
\N.Example: 2Time of the fastest lap in M:SS.mmm format. May be
\N.Example: "1:27.452"Speed of fastest lap in km/h. May be
\N.Example: 218.3Foreign key to
status.csv indicating finish status.Example: 1 (Finished)Sample Data
| resultId | raceId | driverId | constructorId | grid | position | points | laps | time | fastestLapTime |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 18 | 1 | 1 | 1 | 1 | 10 | 58 | 1:34:50.616 | 1:27.452 |
| 2 | 18 | 2 | 2 | 5 | 2 | 8 | 58 | +5.478 | 1:27.739 |
| 3 | 18 | 3 | 3 | 7 | 3 | 6 | 58 | +8.163 | 1:28.090 |
Time Format: The
time field shows absolute time for P1 and relative time (gap) for all other finishers. DNF entries have \N.qualifying.csv
Qualifying session results with Q1, Q2, and Q3 times.Schema
Unique identifier for each qualifying result. Primary key.Example:
1Foreign key to
races.csv.Example: 18Foreign key to
drivers.csv.Example: 1Foreign key to
constructors.csv.Example: 1Driver’s car number.Example:
44Final qualifying position.Example:
1Q1 lap time in M:SS.mmm format. May be
\N if driver didn’t participate.Example: "1:26.572"Q2 lap time. May be
\N if driver didn’t advance to Q2.Example: "1:25.187"Q3 lap time. May be
\N if driver didn’t advance to Q3.Example: "1:26.714"Sample Data
| qualifyId | raceId | driverId | position | q1 | q2 | q3 |
|---|---|---|---|---|---|---|
| 1 | 18 | 1 | 1 | 1:26.572 | 1:25.187 | 1:26.714 |
| 2 | 18 | 9 | 2 | 1:26.103 | 1:25.315 | 1:26.869 |
| 3 | 18 | 5 | 3 | 1:25.664 | 1:25.452 | 1:27.079 |
Qualifying Format: Drivers eliminated in Q1 have only
q1 populated. Top 15 have q1 and q2. Top 10 have all three sessions.sprint_results.csv
Results from sprint races (introduced in 2021).Schema
Unique identifier for each sprint result. Primary key.
Foreign key to
races.csv.Foreign key to
drivers.csv.Foreign key to
constructors.csv.Driver’s car number.
Starting grid position for sprint.
Finishing position. May be
\N for DNF.Text representation of position.
Order of finish for sorting.
Points scored in sprint race.Example:
3.0 (P1 in sprint)Number of laps completed in sprint.
Sprint race time or gap.
Time in milliseconds.
Lap number of fastest lap.
Fastest lap time.
Foreign key to
status.csv.Rank of fastest lap.
Sample Data
| resultId | raceId | driverId | grid | position | points | laps | time |
|---|---|---|---|---|---|---|---|
| 1 | 1061 | 830 | 2 | 1 | 3 | 17 | 25:38.426 |
| 2 | 1061 | 1 | 1 | 2 | 2 | 17 | +1.430 |
Sprint Points: Sprint races award fewer points than main races. The points system has changed over the years (2021: top 3, 2022+: top 8).
lap_times.csv
Individual lap times for every driver in every lap of a race.Schema
Foreign key to
races.csv. Part of composite primary key.Foreign key to
drivers.csv. Part of composite primary key.Lap number. Part of composite primary key.Example:
1Driver’s position at the end of this lap.Example:
1Lap time in M:SS.mmm format.Example:
"1:32.713"Lap time in milliseconds.Example:
92713Sample Data
| raceId | driverId | lap | position | time | milliseconds |
|---|---|---|---|---|---|
| 841 | 20 | 1 | 1 | 1:38.109 | 98109 |
| 841 | 20 | 2 | 1 | 1:33.006 | 93006 |
| 841 | 20 | 3 | 1 | 1:32.713 | 92713 |
Data Availability: Lap time data is generally available from 1996 onwards. Earlier races may not have lap-by-lap data.
First Lap Times: Lap 1 times are typically slower due to the standing start and include the run from grid to timing line.
pit_stops.csv
Detailed pit stop information including duration and timing.Schema
Foreign key to
races.csv. Part of composite primary key.Foreign key to
drivers.csv. Part of composite primary key.Pit stop number for this driver in this race. Part of composite primary key.Example:
1 (first stop)Lap number when pit stop occurred.Example:
18Time of day when pit stop occurred (HH:MM:SS).Example:
"14:22:35"Duration of pit stop in seconds.Example:
"28.482"Duration of pit stop in milliseconds.Example:
28482Sample Data
| raceId | driverId | stop | lap | time | duration | milliseconds |
|---|---|---|---|---|---|---|
| 258 | 100 | 1 | 1 | 14:01:34 | 49.111 | 49111 |
| 258 | 79 | 1 | 17 | 14:20:46 | 28.482 | 28482 |
| 258 | 57 | 1 | 18 | 14:22:35 | 43.745 | 43745 |
Data Availability: Comprehensive pit stop data is generally available from 2011 onwards.
Duration Measurement: Duration measures time from pit entry to exit, including time in pit box and pit lane.
constructor_results.csv
Constructor results for each race, showing points scored per constructor per race.Schema
Unique identifier for each constructor result. Primary key.Example:
1Foreign key to
races.csv.Example: 18Foreign key to
constructors.csv.Example: 1Total points scored by the constructor in this race (sum of both drivers’ points).Example:
14.0Status information for the constructor in this race. Often
\N (null).Example: \NSample Data
| constructorResultsId | raceId | constructorId | points | status |
|---|---|---|---|---|
| 1 | 18 | 1 | 14 | \N |
| 2 | 18 | 2 | 8 | \N |
| 3 | 18 | 3 | 9 | \N |
Points Calculation: Constructor points are the sum of points scored by both team drivers in a race. In early F1 seasons, only the best-placed driver’s points counted toward constructor championship.
status.csv
Lookup table for race finishing status codes.Schema
Unique status identifier. Primary key.Example:
1Description of the status.Example:
"Finished" or "Engine"Sample Data
| statusId | status |
|---|---|
| 1 | Finished |
| 2 | Disqualified |
| 3 | Accident |
| 4 | Collision |
| 5 | Engine |
| 6 | Gearbox |
| 7 | Transmission |
| 8 | Clutch |
| 9 | Hydraulics |
Common Status Codes
- 1 - Finished (completed the race)
- 2 - Disqualified
- 3 - Accident
- 4 - Collision
- 5 - Engine (engine failure)
- 6 - Gearbox (gearbox failure)
- 11 - +1 Lap (finished but 1 lap down)
- 12 - +2 Laps
- 13 - +3 Laps
