Skip to main content

Overview

Telemetry data (tel.json) contains detailed second-by-second data from the car’s sensors and systems, sampled at approximately 3.7 Hz (~270ms intervals). This reference documents every field available in the telemetry dataset.
All telemetry samples are linked to specific laps via the dataKey field in the format: Year-EventName-Session-DriverCode-LapNumber (e.g., “2025-United States Grand Prix-Race-VER-9”)

Basic Car Metrics

FieldFull NameDescriptionUnitNotes
timeTimeTime when this data sample was recorded from start of the lapseconds
rpmRevolutions Per MinuteEngine rotations per minuteRPMHigher on straights, lower in corners
speedSpeedHow fast the car is travelingkm/hDerived from GPS/telemetry sources
gearGearCurrent gear the car is in1-8F1 uses 8-speed gearboxes
throttleThrottle PositionHow much the driver is pressing the throttle pedal0-100%0% = fully released, 100% = floored
brakeBrakeWhether brakes are being appliedBoolean (0/1)Binary: either braking or not
drsDrag Reduction SystemStatus of DRS (rear wing flap that reduces drag)0-140,1 = Off; 10,12,14 = On; can only be used on straights
distanceDistanceTotal distance driven since start of lapmetersIncreases monotonically (always increasing)
rel_distanceRelative DistanceDistance driven since the first sample as a floating point number where 0.0 is the first sample and 1.0 is the last sample0.0-1.0Normalized lap progress

Position Data (3D Coordinates)

FieldFull NameDescriptionUnitDetails
xX PositionHorizontal position on the track (left-right)metersInterpolated from GPS
yY PositionHorizontal position on the track (forward-backward)metersInterpolated from GPS
zZ PositionVertical height above track surfacemetersCurbs, jumps, and elevation changes
Position data is interpolated (estimated between actual measurements) to align with the higher-frequency car data. The car data comes at ~240ms intervals, position data at ~220ms, so they are matched up through interpolation.

Acceleration Vectors (G-Forces)

The car experiences forces in three directions simultaneously. These values are computed by the extraction script using gradient analysis of position, speed, and distance data.
These are NOT raw IMU sensor values—they are mathematically derived and heavily processed with outlier handling and smoothing applied.

Computation Details

Axis Direction: Forward/backward (along track)Computation Formula:
ax = gradient(v_ms) / gradient(time)
where v_ms = speed / 3.6
Outlier Handling:
  • If ax > 25 m/s² (one-sided, positive only), value is replaced with previous sample’s value
  • Boundary samples (first/last) are excluded
Smoothing: 3-point moving average
Axis Direction: Side-to-side (horizontal)Computation Formula:
ay = v² × C
where:
  C = dθ / (ds + 0.0001)
  θ = arctan2(dy, dx), phase-unwrapped
Outlier Handling:
  • Stage 1 (intermediate): If |dθ| > 0.5 rad/sample, replace with previous value before computing C and ay
  • Stage 2: Hard-zero if |ay| > 150 m/s² (~15G)
Smoothing: 9-point moving average
Axis Direction: Up/down (elevation changes)Computation Formula:
az = v² × C_z
where:
  C_z = dθ_z / (ds + 0.0001)
  θ_z = arctan2(dz, dx), phase-unwrapped
Outlier Handling:
  • Stage 1 (intermediate): If |dθ_z| > 0.5 rad/sample, replace with previous value
  • Stage 2: Hard-zero if |az| > 150 m/s² (~15G)
Smoothing: 9-point moving average

Summary Table

FieldFull NameAxis DirectionUnitOutlier ThresholdSmoothing
acc_xLongitudinal AccelerationForward/backward (along track)m/s²> 25 m/s² (positive only)3-point moving average
acc_yLateral AccelerationSide-to-side (horizontal)m/s²> 150 m/s² (~15G)9-point moving average
acc_zVertical AccelerationUp/down (elevation changes)m/s²> 150 m/s² (~15G)9-point moving average

Driver and Car Ahead Information

FieldFull NameDescriptionType
DriverAheadDriver AheadThe car number of the driver directly ahead in the race orderString or None
DistanceToDriverAheadDistance To Driver AheadHow far behind the next car ismeters

Data Key

FieldFull NameDescription
dataKeyData KeyUnique identifier that links this telemetry data to a specific driver and lap
Format: Year-EventName-Session-DriverCode-LapNumber Examples:
  • 2025-United States Grand Prix-Race-VER-9
  • For 2026 Pre-Season Testing: 2026-PreSeasonTesting1-FP1-HAM-5
For 2026 Pre-Season Testing, ‘PreSeasonTesting1’ is used as EventName instead of ‘Pre-Season Testing 1’

Build docs developers (and LLMs) love