2025 Season — Round 21
Sao Paulo Grand Prix
São Paulo — 71 laps — 20 drivers
Total lap inversions
2296
start→finish: 28
Volatility score
1.6169
inversions / (grid × laps)
Winner
NOR
Lando Norris
Biggest mover
VER
+16 positions (Max Verstappen)
Most overtaken
HAD
-3 positions (Isack Hadjar)
DNFs
3
retirements
On-track overtakes
27
of 250 total moves
Interventions
4 SC / 3 VSC
laps under neutralisation
Race Summary
The 2025 Brazil GP produced 2296 lap inversions across 71 laps, with a volatility score of 1.6169. Max Verstappen (VER) was the biggest mover, gaining 16 positions. There were 3 retirements which influenced race positions.
Inversions Per Lap
Each point shows how many active inversions existed that lap relative to the starting grid order.
Higher peaks indicate more overtaking activity.
Cumulative Inversion Curve
Running total of inversions across the race. Steep sections indicate high-action phases.
Flat sections mean positions locked in for multiple laps.
Lap-by-Lap Position Tracker
Each line is one driver's position through the race. P1 is at the top.
Lines end where a driver retired. Use filters to isolate specific battles or storylines.
Quick select:17 / 20 drivers shown
Driver Position Changes
Positions gained (green) or lost (red) from grid start to final classification.
DNF drivers shown in grey.
Position Heatmap
Rows = drivers, columns = laps. Cell colour = position: green (P1) → yellow (mid-field) → red (last).
Faded cells = retired. More colour variance across a row = more movement for that driver throughout the race.
Hover any cell for driver, lap, and exact position.
Race Chaos Timeline
Lap-by-lap breakdown of overtaking activity by type. Green = genuine on-track passes,
orange = pit-cycle position changes, yellow = moves under Safety Car / VSC,
red = DNF-induced gains. Yellow dashed lines mark neutralisation laps.
Overtake Classification
Breaking down how position changes occurred during the race.
Only data from re-ingested races (fetch_race_data.py v2) will show full classification.
250
Total position gains
On-track
27 (11%)
Pit cycle
190 (76%)
SC / VSC
7 (3%)
DNF-induced
26 (10%)
Adjusted Volatility
Three inversion curves for comparison.
Raw: unfiltered (dashed grey).
Pit-adjusted: removes drivers on in/out-laps so pit stops don't inflate inversions (green).
SC-neutralized: SC and VSC laps weighted at 25% to reduce artificial compression effects (yellow).
Raw
1.6169
Pit-adjusted
1.3845
SC-neutralized
1.5636
Driver Battle Index
The most intense wheel-to-wheel fights of the race, ranked by a combined intensity score
(position swaps + laps within 1 position). Higher = more sustained wheel-to-wheel racing.
GASvsHAD
HAD wins
2 position swaps47 laps within 1 posIntensity: 25.5
COLvsSTR
COL wins
3 position swaps43 laps within 1 posIntensity: 24.5
OCOvsSAI
OCO wins
5 position swaps36 laps within 1 posIntensity: 23
ANTvsRUSTEAMMATE
ANT wins
4 position swaps35 laps within 1 posIntensity: 21.5
ANTvsNOR
NOR wins
0 position swaps39 laps within 1 posIntensity: 19.5
NORvsPIATEAMMATE
NOR wins
4 position swaps31 laps within 1 posIntensity: 19.5
RUSvsVER
VER wins
3 position swaps33 laps within 1 posIntensity: 19.5
BEAvsLAW
BEA wins
5 position swaps27 laps within 1 posIntensity: 18.5
ALOvsCOL
ALO wins
2 position swaps33 laps within 1 posIntensity: 18.5
COLvsTSU
COL wins
5 position swaps27 laps within 1 posIntensity: 18.5
Tyre Strategy Timeline
Lap-by-lap view of each driver's tyre compounds through the race. Solid = new tyres, faded with border = used tyres.
Hover over any stint bar to see compound, stint length, pit lap, duration, and net position change.
Quick select:20 / 20 drivers shown
Soft
Medium
Hard
Intermediate
Wet
Used tyres
1
15
30
45
60
71
NOR
ANT
VER
RUS
PIA
BEA
LAW
HAD
HUL
GAS
ALB
OCO
SAI
ALO
COL
STR
TSU
HAM
LEC
BOR
Lap
What If No Safety Car?
Simulates the race volatility if all SC and VSC laps were removed entirely.
Orange line = what the chaos curve would look like with pure racing laps only.
Faint yellow verticals mark the removed neutralisation laps.
1.6169
Actual Volatility
full race, all laps
1.7148
No-SC Volatility
64 racing laps only
+6.1%
Difference
more chaotic without SC
7
SC/VSC Laps
laps removed from calc
Faint yellow lines mark removed SC/VSC laps · Orange = what the race chaos would have looked like
Momentum Tracker
Rolling 5-lap position change per driver. Positive = charging forward, negative = falling back.
Shows who had the most momentum at each phase of the race. Defaults to top 10 finishers — use filters to explore all drivers.
Rolling 5-lap position change per driver. Positive = gaining, Negative = losing positions.
LAW-10
peak at L23
HAD-10
peak at L19
ALB-10
peak at L36
ALO-10
peak at L29
TSU-10
peak at L27
Quick select:10 / 20 drivers shown
Strategy Chaos Score
Measures how much strategy decisions shaped the race outcome.
Counts undercuts, overcuts, pit-cycle passes, and failed strategies.
499
Strategy Chaos Score
Undercuts
30
Pitted early, gained on exit
Overcuts
160
Stayed out, gained via track position
Pit-Cycle Passes
190
Positions gained through pit windows
Failed Strategies
18
Net position loss from pit strategy
GitHub
LinkedIn