RAKEF1 · 2026
← home

HOW IT’S CALCULATED

RAKE estimates two numbers for every driver, on every session: how much drag (CdA) and how much downforce (ClA) the car had on track. Both come from fitting a physical model against public telemetry — never from private team data.

01 · DATA IN

Where the numbers come from

Everything comes from public F1 telemetry: speed, distance travelled, gear, sector times, and each session’s conditions — including measured air density and declared mass. There is no private team data.

02 · WINDOWS

Which stretches get measured

Not every part of the lap is useful. RAKE looks for windows where the car runs steady, above a speed floor, and past a flatness threshold — the stretches where the fit is trustworthy.

03 · THE FIT

What gets fitted

The aerodynamic force is fitted over those windows. The fit returns a central value and a margin of error — never a single number presented as exact.

04 · PUBLICATION

When a number gets published

A driver needs a minimum number of useful windows before a value is published. Reaching that minimum is necessary, but not sufficient on its own.

05 · WHAT IT DOESN’T CAPTURE

What this doesn’t capture

Wind, mass drift from fuel burn, tyre temperature, and engine modes are not captured. These numbers are useful to compare drivers and sessions within the same event — not as an absolute measurement.

Technical detail

06 · DRAG MODEL

The full equation has three terms: (0.5·ρ·C2·v² + c_const_n + k_scrub·(m·a_lat)²) / m. The first term is aerodynamic, growing with the square of speed. The second is a mechanical constant — rolling and drivetrain resistance that doesn’t depend on speed. The third is tyre scrub: mechanical drag, not aerodynamic, that only appears in a corner, when there is lateral acceleration. Ignoring it inflates the measured drag coefficient by up to 93%. With k_scrub = 0 and a_lat = 0, the model reduces back to the simpler two-term form.

(0.5 · ρ · C2 · v2 + c_const_n + k_scrub · (m · a_lat)2) / m

  • Aerodynamic term: 0.5 · ρ · C2 · v²
  • Mechanical constant: c_const_n
  • Tyre scrub: k_scrub · (m · a_lat)²

07 · TYRE AND EFFICIENCY COEFFICIENTS

crr = 0.014crr (rolling resistance coefficient): starting value 0.014. Assumed, not measured or calibrated — a declared physical assumption. It enters cda_z = c2 − crr·cla, the pure aerodynamic drag once the load contribution is subtracted out. Unlike other parameters, it has no documented uncertainty in any reference source — the ±30% sensitivity range around 0.014 is an explicit design decision, not a measurement.

eta = 0.95eta (efficiency): starting value 0.95. Also assumed. Used to back out the implied deployed power on a straight, anchoring the coast-down c2.

08 · LOAD MODEL

Friction ellipse: m·√(a_lat² + a_lon²) = μ(N)·N, with μ(N) = mu0/(1 + k_s·N) and N = m·g + 0.5·ρ·cla·v² — the total vertical load, weight plus aerodynamic downforce.

μ(N) = mu0 / (1 + k_s · N), N = m · g + 0.5 · ρ · cla · v2

mu0 = 1.9 (±0.1)mu0 (base tyre coefficient): starting value 1.9, uncertainty ±0.1. Fixed — not calibrated live per session.

k_sk_s (grip sensitivity to load): unit 1/N. Swept over a range, keeping only the values whose effective μ falls within physically reasonable bands — looser for slow corners, tighter for fast ones.

ClA is solved using the TrackModel’s frozen radius multiplied by the lap’s v² — never the individual lap’s own radius, which would break consistency across laps (see Lateral acceleration).

09 · POWER AND REGENERATION

p_regen_max_kwExact bound: p_regen_max ≤ (c_const_n − c_mech_min)·v_max. It is a bound, not a measurement — declared explicitly as bounded, the only provenance category besides measured/calibrated/assumed. Starting range 0–130 kW, never the regulatory ceiling of 350 kW.

p_regen_max_kw ≤ (c_const_n − c_mech_min) · v_max, 0–130 kW

Why regeneration contaminates deceleration: lifting off, the car doesn’t only slow from air and rolling resistance — the system recovers energy, and that recovery mixes into any measurement that treats deceleration as purely aerodynamic. It is more pronounced in the race and the sprint (more fuel, more braking) than in qualifying.

10 · MASS BY SESSION

Q +15 kg · S +35 kg · R +70 kg · −1.2 kg/lap Fuel load by session type: qualifying (Q) +15 kg, sprint (S) +35 kg, race (R) +70 kg, burning −1.2 kg per completed lap. An unknown session type is an explicit error, never a silent default.

This fuel load feeds directly into the drag model’s mass m — in the race and the sprint, total mass falls linearly with laps, shifting the total mass by up to 8% within a single session.

11 · WHY 150 KM/H

Measured flatness (the ratio between the fit’s highest and lowest coefficient across speed ranges — the closer to 1×, the more stable the fit): no floor 8.57× (the model doesn’t describe the data); 120 km/h 1.59×; 150 km/h 1.01×; 170 km/h 1.01×.

Speed floorFlatness
no floor8.57×
120 km/h1.59×
150 km/h1.01×
170 km/h1.01×

v_min_fit_kmh = 150 was chosen because that is where flatness moves from "the model doesn’t describe the data" (8.57×) to stable (1.01×), with clear margin over the next-worst measured point (1.59× at 120 km/h). Below 150, the aerodynamic term (proportional to v²) is too small against the mechanical constant at low speed, and treating regeneration as constant stops holding. (v_min_fit_kmh = 150)

flatness_gate = 1.15: the threshold that separates, with margin, the chosen point (1.01×) from the next-worst measured point (1.59×), without getting close to either.

12 · CIRCUIT GEOMETRY

The FIA corner catalogue is anchored by lap distance, not measured directly: the metre marks are derived from the circuit map, and the official document carries sector anchors to validate them (for example, "110 m before turn 7" from the sector 1 cut).

Corner peaks are detected from real telemetry (lateral acceleration), not from the manual markers — the markers only label each peak with its official number.

SM A1 57 m vs 60 · SM A2 68 m vs 70 (FIA) Zandvoort validation: each straight-mode zone carries two activation lines whose separation the document states (60 m in zone A1, 70 m in A2). The positions transcribed off the plan reproduce 57 m and 68 m — under 3 metres of error in both, confirming the transcription is faithful.

13 · LATERAL ACCELERATION

~1 m GPS · 25 m base · ~2 g spurious GPS has an error of roughly 1 m, and over a 25 m measurement base that produces up to 2 g of spurious lateral acceleration — a large error against the real signal being measured.

Each measurement window’s lateral acceleration comes from a circuit curvature profile averaged across laps — not from fitting a local circle to that window’s own GPS position samples. The averaged profile is a stable property of the circuit (computed once per event), not of a single pass.

Technical detail: the averaging is done with signed curvature, not its absolute value — averaging the absolute value amplifies noise instead of cancelling it.

14 · PUBLICATION GATES

flatness_gate = 1.15See Why 150 km/h.

min_useful_windows = 30 A driver needs at least 30 windows above the speed floor for their coefficient to be published in a session.

load_range_ratio = 1.5 ClA identifiability: if the ratio between the maximum and minimum vertical load observed across the corners used for the fit is below 1.5, there isn’t enough load variation to reliably solve for ClA — the value travels as null, not as an unreliable number.

cda_band_width_high_max = 0.30 If the drag uncertainty band’s relative width exceeds 30% of the central value, the coefficient is declared order_of_magnitude instead of high.

noise_floor_g ≤ 0.05 · lap_count ≥ 40 The calibration-freeze double gate: freezing a calibration requires the measured noise floor over verified straight stretches (where curvature is zero by construction) to stay at or below 0.05, AND a minimum of accumulated laps of at least 40, at the same time. The noise floor is the direct measurement of whether the method works; the lap count is only a proxy — forty dirty laps can produce a worse floor than twenty-five clean ones.

15 · CONFIDENCE LEVELS

highThe identifiability gate passes and the uncertainty band is narrow (≤30% of the central value).

order_of_magnitude The identifiability gate passes but the band is wide (>30%) — the order of magnitude is trustworthy, the exact value is not.

not_publishableThe identifiability gate fails — the value and both of its bounds travel as null, never as an approximate number.

Why they’re declared separately: a driver can have a publishable load and a non-publishable drag (the most frequent case) — each magnitude has its own gate and its own reason to degrade.