M

← Back to Projects
Project 03v1.0.0

Inchident

Counterfactual F1 Tyre-Degradation Estimation

13
F1 Races Analyzed
10,381
Green Dry Laps
4x
Circuit Degradation Spread
0.022s
Monaco Degradation/Lap
0.109s
Suzuka Degradation/Lap
2023–24
Seasons Covered
The Problem

Raw lap-time deltas conflate tyre degradation with fuel burn-off — cars get lighter (and faster) as they burn fuel over a stint, and that effect is nearly collinear with tyre age within a single stint, making naive lap-time-vs-tyre-age regressions unreliable for isolating the true wear coefficient. Without separating the two effects, tyre-degradation estimates overstate or understate wear depending on fuel-load assumptions, undermining strategy calls and post-race analysis.

The Solution

Inchident pools green-flag, dry-condition laps across 13 F1 races from the 2023–24 seasons (10,381 laps total, pulled via FastF1) and fits a pooled OLS pace model that includes both tyre age and a fuel-load proxy as separate regressors, exploiting the parts of their variation that aren't collinear to isolate the true per-lap wear coefficient. Running the fitted model per circuit recovers degradation rates from 0.022 s/lap at Monaco up to 0.109 s/lap at Suzuka — a 4x spread that emerges purely from the data, not from any circuit-specific prior. The fitted coefficients are shipped to a live dashboard that recomputes and renders degradation curves client-side.

Architecture

FastF1 API → lap-by-lap telemetry pull across 13 races (2023–24) → filtering to green-flag, dry-condition laps (10,381 laps) → pooled OLS pace model (statsmodels) regressing lap time on tyre age and a fuel-load proxy, fit once across all races and re-evaluated per circuit → fitted coefficients exported and loaded into a Streamlit dashboard that recomputes degradation curves client-side for any selected circuit.

Key Features
Pooled OLS Pace Model

A pooled ordinary least squares model regresses lap time on tyre age and a fuel-load proxy together, isolating the true wear coefficient from the near-perfectly collinear influence of fuel burn-off within a stint.

13-Race, 10,381-Lap FastF1 Corpus

Lap-by-lap data pulled via FastF1 across 13 F1 races from the 2023–24 seasons, filtered down to 10,381 green-flag, dry-condition laps to eliminate confounds from safety cars, rain, and traffic.

Per-Circuit Degradation Recovery

Evaluating the fitted model per circuit recovers degradation ranging from 0.022 s/lap at Monaco to 0.109 s/lap at Suzuka — a 4x spread the model was never told to expect, emerging purely from the pooled fit.

Live Client-Side Dashboard

An interactive dashboard recomputes and renders degradation curves client-side directly from the fitted coefficients, letting users explore any circuit's wear profile without a server round-trip.

Tech Stack
PythonFastF1statsmodelsPooled OLSStreamlit
backendfrontendmldbinframobile