Skip to main content
Part of the Residual family.
Item 02h. int_corner_skill_residuals residualized a SECOND time: for each (stint_id, corner_name), the mean of the three phase residuals over the stint’s own first 6 valid laps (valid_lap_in_stint 1-6) is taken as a BASELINE, and every later lap’s residual minus that baseline is DRIFT. Grain: (lap_id, corner_name), same as int_corner_skill_residuals. WHY. 02c’s residuals do not persist lap-to-lap (measured lag-1 within-stint autocorrelation 0.032-0.176) because (field trailing-5 median - own) is a relative-PACE construct, and the columns that survive ablation elsewhere in the contract all sit at .27-.42 (proximity .421, thermal’s push_residual .343, dirty_air .266). A driver who is steadily 0.05s worse than the field all race has zero drift and is captured by pace already three times over; a driver who opens that gap from 0.05s to 0.35s across the stint has +0.30s of drift, which is the tyre-degradation signal a pace residual cannot distinguish from a driver who is simply slow-but-stable. LEAKAGE. The baseline window is FIXED at valid_lap_in_stint 1-6, not trailing relative to the query lap. Every row with a non-NULL drift value has valid_lap_in_stint >= 7, strictly after the baseline window, so the baseline never draws on the lap it is subtracted from or any lap after it. Rows with valid_lap_in_stint <= 6 — the baseline-defining window — get drift = NULL by construction (verified: zero exceptions). Stints with fewer than 7 valid laps get NULL throughout (no lap to report a drift value for). A (stint, corner, phase) baseline additionally requires >= 3 non-NULL observations inside the 6-lap window.

Lineage

Overview

7 tests guard this model - 7 generic, 0 singular.

Columns