Skip to main content
Part of the Marts family.
Driver corner skill vs a LORO (leave-one-race-out) same-car baseline. Grain: (race_year, driver_id). For each push-lap corner cell, subtracts the mean residual of the driver’s OTHER same-car teammates that race, so a driver’s edge over a teammate isn’t split in half by including themselves in their own car average. Each (driver, race, corner) cell is winsorized to +/-1.0s before the season mean so one thin/outlier cell can’t dominate a season. Each phase is z-scored within season so all three contribute equally to corner_skill_index. SC / VSC / pit / inaccurate / non-push (corrected or rain-affected) laps are excluded before car averages are formed. Negative values = faster. corner_skill_index = sum of three z-scores; lower = faster. SIGN FIX (00d, 2026-09-20). Until this date the braking phase entered the index inverted: int_corner_skill_residuals built braking_loss_s as (own - field median), so positive meant braking LATER = faster, while the mid and exit phases were positive = worse, and this model summed all three z-scores and ordered ASC. The fix was made at the SOURCE (braking_loss_s is now (field - own)), not by negating the braking z here, so that every column in this model shares one convention and corner_skill_index stays the plain sum of the three published z-scores - the identity the app prints beside them. braking_skill_s, braking_skill_se_s and braking_skill_z are therefore an exact sign flip of their pre-00d values (every step from the residual to the z is linear or odd; the STDDEV divisor and the cell counts are invariant), and corner_skill_index moved by exactly -2 * the old braking_skill_z. Both the direction and the sum identity are now pinned by transform/tests/assert_corner_skill_sign_convention.sql.

Lineage

Overview

25 tests guard this model - 22 generic, 3 singular.

Columns