Skip to main content

Overview

Telemetry data provides second-by-second insights into car performance and driver behavior. This data is sampled at approximately 3.7 Hz (~270ms intervals) and captures everything from engine RPM to 3D position coordinates.
Telemetry data is the most granular dataset in the platform, enabling detailed analysis of driving lines, braking points, throttle application, and g-force distribution through corners.

File Location

Telemetry files are organized by driver and lap number:
Pre-Season Testing 2/Practice 3/{DRIVER_CODE}/{LAP_NUMBER}_tel.json
Example:
  • Pre-Season Testing 2/Practice 3/VER/9_tel.json - Verstappen’s 9th lap telemetry
  • Pre-Season Testing 2/Practice 3/SAI/15_tel.json - Sainz’s 15th lap telemetry

Data Structure

The JSON file contains a single tel object with arrays of synchronized measurements:
{
  "tel": {
    "time": [0.0, 0.071, 0.265, ...],
    "rpm": [12120, 12180, 12240, ...],
    "speed": [289, 290, 291, ...],
    "gear": [8, 8, 8, ...],
    "throttle": [100, 100, 100, ...],
    "brake": [0, 0, 0, ...],
    "drs": [14, 14, 14, ...],
    "distance": [0.0, 5.6, 20.8, ...],
    "rel_distance": [0.0, 0.001, 0.004, ...],
    "x": [-1234.5, -1230.2, ...],
    "y": [5432.1, 5438.7, ...],
    "z": [12.3, 12.5, ...],
    "acc_x": [0.5, 0.3, -2.1, ...],
    "acc_y": [-15.2, -14.8, -15.5, ...],
    "acc_z": [0.1, 0.2, 0.3, ...],
    "DriverAhead": ["44", "44", "44", ...],
    "DistanceToDriverAhead": [234.5, 235.1, ...],
    "dataKey": "2026-PreSeasonTesting1-Practice3-VER-9"
  }
}

Field Reference

Basic Car Metrics

time
array<number>
required
Time in seconds from the start of the lap. Sampling occurs at ~270ms intervals (3.7 Hz).Example: [0.0, 0.071, 0.265, 0.311, ...]
rpm
array<number>
required
Engine revolutions per minute. Higher on straights, lower in corners. Modern F1 engines are limited to 15,000 RPM.Unit: RPM
Range: 0-15,000
Example: [12120, 12180, 12240, ...]
speed
array<number>
required
Car velocity derived from GPS and telemetry sources.Unit: km/h
Range: 0-350+
Example: [289, 290, 291, 285, ...]
gear
array<number>
required
Current transmission gear. F1 cars use 8-speed sequential gearboxes.Range: 1-8
Example: [8, 8, 7, 6, 5, ...]
throttle
array<number>
required
Throttle pedal position as a percentage.Unit: % (percentage)
Range: 0-100 (0% = fully released, 100% = fully depressed)
Example: [100, 100, 85, 0, ...]
brake
array<number>
required
Binary brake application indicator.Values: 0 (not braking) or 1 (braking)
Example: [0, 0, 0, 1, 1, 1, 0, ...]
drs
array<number>
required
Drag Reduction System status. DRS opens a flap in the rear wing to reduce drag on straights.Values:
  • 0, 1 - DRS closed/unavailable
  • 10, 12, 14 - DRS open/active
Example: [0, 0, 14, 14, 14, 0, ...]
distance
array<number>
required
Cumulative distance traveled since the start of the lap. Monotonically increasing.Unit: meters
Example: [0.0, 5.6, 20.8, 45.3, ...]
rel_distance
array<number>
required
Relative distance as a normalized value where 0.0 represents the first sample and 1.0 represents the last sample of the lap.Range: 0.0-1.0
Example: [0.0, 0.001, 0.004, 0.009, ..., 1.0]

Driver and Car Ahead Information

DriverAhead
array<string|null>
The car number of the driver directly ahead in race order.Example: ["44", "44", "44", null, ...]
DistanceToDriverAhead
array<number|null>
Gap to the car ahead in meters.Unit: meters
Example: [234.5, 235.1, 240.3, null, ...]

Acceleration Vectors (G-Forces)

Acceleration 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 include smoothing and outlier handling.
acc_x
array<number>
required
Longitudinal acceleration (forward/backward along track).Computation: ax = gradient(v_ms) / gradient(time) where v_ms = speed / 3.6Outlier handling: Values > 25 m/s² are replaced with the previous sample’s valueSmoothing: 3-point moving averageUnit: m/s²
Example: [0.5, 0.3, -2.1, -8.5, ...] (negative = braking, positive = acceleration)
acc_y
array<number>
required
Lateral acceleration (side-to-side, horizontal forces in corners).Computation: ay = v² × C where C = dθ / (ds + 0.0001), θ = arctan2(dy, dx), phase-unwrappedOutlier handling:
  • Stage 1: If |dθ| > 0.5 rad/sample, replace with previous value
  • Stage 2: Hard-zero if |ay| > 150 m/s² (~15G)
Smoothing: 9-point moving averageUnit: m/s²
Example: [-15.2, -14.8, -15.5, -12.3, ...] (lateral g-forces through corners)
acc_z
array<number>
required
Vertical acceleration (up/down, elevation changes).Computation: az = v² × C_z where C_z = dθ_z / (ds + 0.0001), θ_z = arctan2(dz, dx), phase-unwrappedOutlier handling:
  • Stage 1: 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 averageUnit: m/s²
Example: [0.1, 0.2, -0.3, 1.2, ...] (bumps, kerbs, elevation)

Position Data (3D Coordinates)

Position data is interpolated from GPS measurements to align with the higher-frequency car data (~240ms intervals for car data, ~220ms for position data).
x
array<number>
required
Horizontal X position on the track (left-right axis).Unit: meters
Example: [-1234.5, -1230.2, -1225.8, ...]
y
array<number>
required
Horizontal Y position on the track (forward-backward axis).Unit: meters
Example: [5432.1, 5438.7, 5445.3, ...]
z
array<number>
required
Vertical height above track surface. Captures kerbs, jumps, and elevation changes.Unit: meters
Example: [12.3, 12.5, 12.4, 12.8, ...]

Metadata

dataKey
string
required
Unique identifier linking this telemetry data to a specific driver and lap.Format: Year-EventName-Session-DriverCode-LapNumberExamples:
  • "2026-PreSeasonTesting1-Practice3-VER-9"
  • "2025-United States Grand Prix-Race-HAM-42"
For 2026 Pre-Season Testing, the format uses ‘PreSeasonTesting1’ instead of ‘Pre-Season Testing 1’.

Real Data Example

Here’s an actual sample from Max Verstappen’s 9th lap in Pre-Season Testing 2, Practice 3:
{
  "tel": {
    "time": [0.0, 0.071, 0.265, 0.311, 0.551, 0.605],
    "rpm": [12120, 12180, 12240, 12255, 12285, 12300],
    "speed": [289, 290, 291, 292, 293, 293],
    "gear": [8, 8, 8, 8, 8, 8],
    "throttle": [100, 100, 100, 100, 100, 100],
    "brake": [0, 0, 0, 0, 0, 0],
    "drs": [14, 14, 14, 14, 14, 14],
    "distance": [0.0, 5.6, 20.8, 25.1, 44.5, 48.8],
    "rel_distance": [0.0, 0.001, 0.004, 0.005, 0.009, 0.010],
    "x": [-1234.5, -1230.2, -1220.8, -1218.3, -1209.1, -1205.6],
    "y": [5432.1, 5438.7, 5451.9, 5455.4, 5468.6, 5472.1],
    "z": [12.3, 12.5, 12.4, 12.6, 12.8, 12.7],
    "acc_x": [0.5, 0.3, -0.2, -0.1, 0.2, 0.1],
    "acc_y": [-1.2, -1.5, -1.3, -1.1, -0.9, -1.0],
    "acc_z": [0.1, 0.2, -0.1, 0.3, 0.2, 0.1],
    "DriverAhead": ["44", "44", "44", "44", "44", "44"],
    "DistanceToDriverAhead": [234.5, 235.1, 236.2, 236.8, 238.1, 238.7],
    "dataKey": "2026-PreSeasonTesting1-Practice3-VER-9"
  }
}

Use Cases

Performance Analysis

  • Braking Points: Identify where drivers brake by analyzing brake, speed, and distance
  • Throttle Application: Compare throttle traces between drivers through corners
  • Cornering Speed: Analyze speed, acc_y, and gear through specific corners
  • DRS Efficiency: Measure speed delta with DRS open vs. closed on straights

Driver Comparison

  • Racing Lines: Overlay x, y, z coordinates to visualize different racing lines
  • G-Force Distribution: Compare lateral (acc_y) and longitudinal (acc_x) forces
  • Gear Selection: Analyze gear choices through identical track sections
  • Wheel-to-Wheel Racing: Use DriverAhead and DistanceToDriverAhead to analyze battles

Engineering Insights

  • Engine Performance: Monitor rpm and throttle correlation
  • Tire Degradation: Compare speed and cornering forces across lap stints
  • Setup Optimization: Identify understeer/oversteer through acceleration patterns
  • Track Evolution: Analyze how optimal lines change throughout the session
  • Lap Times - Aggregate lap and sector timing
  • Weather - Track and air temperature affecting performance
  • Corners - Track corner positions for spatial analysis
  • Drivers - Driver information and team affiliations

Build docs developers (and LLMs) love