ghost_id | | Yes | not_null, unique | Surrogate PK = MD5(ego_driver_id || host_constructor_id || race_id || lap_number) |
predicted_lap_time_s | | Yes | not_null | Recombined lap time using ego skill + host constructor pace. |
actual_lap_time_s | | Yes | not_null | Observed actual lap time for the ego driver. |
predicted_residual_pace_s | | Yes | not_null | predicted_lap_time_s with the fuel-burn component backed out (the fuel term is simply omitted from the recombination sum). Fuel-adjusted so ranking by pace isn’t biased by which lap window (heavy vs. light fuel) a driver ran. |
actual_residual_pace_s | | Yes | not_null | actual_lap_time_s minus fuel_component_s. Fuel-adjusted counterpart to actual_lap_time_s. |
delta_vs_actual_lap_s | | Yes | not_null | predicted_lap_time_s minus actual_lap_time_s. 0 when ego == host. |
deg_interaction_s | | Yes | not_null | (host deg slope - ego deg slope) x age_in_stint, slopes from int_constructor_deg_sensitivity at the ego lap’s (compound, season). The only host-dependent term that varies within a race, so it is what lets different hosts produce different driver orders. Exactly 0 when ego == host; 0 when no cell exists (wet compounds / low-sample = field-average degradation). |
host_deg_slope_s_per_lap | | Yes | not_null | Host constructor’s deg slope for the ego lap’s compound; 0 when no cell. |
ego_deg_slope_s_per_lap | | Yes | not_null | Ego constructor’s deg slope for the ego lap’s compound; 0 when no cell. |
cliff_interaction_s | | Yes | not_null, expect_column_values_to_be_between | severity x [hinge(host) - hinge(ego)] where hinge(c) = GREATEST(0, age - field_onset - cliff_onset_shift(c)). The nonlinear host-dependent term: it only fires once tyres approach/pass the cliff, reordering drivers on long stints. Exactly 0 when ego == host. Guardrail-clipped to +/-2 s. |
host_cliff_shift_laps | | Yes | not_null | Host constructor’s cliff-onset shift (laps) for the ego lap’s compound; 0 when no cell. |
ego_cliff_shift_laps | | Yes | not_null | Ego constructor’s cliff-onset shift (laps) for the ego lap’s compound; 0 when no cell. |
recombination_confidence | | Yes | not_null, expect_column_values_to_be_between | Continuous confidence in recombination [0, 1] = host_obs_factor (panel_obs / (panel_obs + 50)) × the lap’s correction_weight. Degrades smoothly when the host has sparse panel data or the lap was soft-down-weighted. |
host_constructor_pace_se_s | | Yes | not_null | SE-propagation ingredient: SE of the host constructor’s structural pace (0 when no panel cell). Aggregated into predicted_mean_lap_se_s downstream; cancels in within-scenario ordering since every driver shares the host car. |
host_deg_slope_sd_s_per_lap | | Yes | not_null | Posterior sd of the host deg slope for the ego lap’s compound; 0 when no cell. |
ego_deg_slope_sd_s_per_lap | | Yes | not_null | Posterior sd of the ego deg slope for the ego lap’s compound; 0 when no cell. |
host_cliff_shift_se_laps | | Yes | not_null | SE (laps) of the host cliff-onset shift; 0 when no cell. |
ego_cliff_shift_se_laps | | Yes | not_null | SE (laps) of the ego cliff-onset shift; 0 when no cell. |
host_cliff_active | | Yes | not_null | 1.0 when the host car is past its shifted cliff onset on this lap, else 0.0. |
ego_cliff_active | | Yes | not_null | 1.0 when the ego car is past its shifted cliff onset on this lap, else 0.0. |