> ## Documentation Index
> Fetch the complete documentation index at: https://offthepace.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# int_driver_isolation_lap_pace

> Driver isolation with the car removed: pace_isolated_gain_s = -(y_s - car_iso_s) per Ω lap, positive = faster than the field on an equal car, tyre state, traffic and fuel.

<Note>Part of the [Skill](/transform/families/skill) family.</Note>

Driver isolation with the car removed: pace\_isolated\_gain\_s = -(y\_s - car\_iso\_s) per Ω lap, positive = faster than the field on an equal car, tyre state, traffic and fuel. Exists so the stint and lap models subtract the car the same way. NULL without a car term, never a car term of 0. Leakage: a function of the residual trajectory; no ML- contract mart may depend on it (T48, ml/tests/test\_manifest\_contract.py). WI-16a, \_roadmap/\_fixes/wi/WI-16-cumulative-driver-isolation.md.

## Lineage

```mermaid theme={null}
flowchart LR
  int_constructor_car_fe_isolation --> int_driver_isolation_lap_pace
  int_driver_isolation_lap_panel --> int_driver_isolation_lap_pace
  int_driver_isolation_lap_pace --> int_driver_isolation_lap_values
  int_driver_isolation_lap_pace --> int_driver_isolation_stint_tyre
  style int_driver_isolation_lap_pace fill:#e40404,stroke:#e40404,color:#fff
```

## Overview

| Property | Value |
| - | - |
| Layer | `intermediate` |
| Family | [Skill](/transform/families/skill) |
| Contract enforced | No |
| Tags | `driver_isolation` |
| Upstream | [`int_driver_isolation_lap_panel`](./int_driver_isolation_lap_panel), [`int_constructor_car_fe_isolation`](./int_constructor_car_fe_isolation) |

**15 tests** [guard](/transform/ci/overview) this model  -  15 generic, 0 singular.

## Columns

| Column | Type | Nullable | Tests | Description |
| - | - | - | - | - |
| `lap_id` | | Yes | [`not_null`](/transform/ci/structural), [`unique`](/transform/ci/structural) | Lap identifier (int\_lap\_residual\_decomposed.lap\_id). |
| `stint_id` | | Yes | [`not_null`](/transform/ci/structural) | Stint identifier (int\_stint\_geometry.stint\_id). |
| `race_year` | | Yes | [`not_null`](/transform/ci/structural) | Season. |
| `race_id` | | Yes | [`not_null`](/transform/ci/structural) | FastF1 event id, e.g. 2021\_8. |
| `driver_id` | | Yes | [`not_null`](/transform/ci/structural) | Driver (three-letter code). In the pair mart, the focal driver whose gains the row reports. |
| `constructor_id` | | Yes | [`not_null`](/transform/ci/structural) | Constructor (stg\_laps.constructor\_id). |
| `stint_number` | | Yes | | Stint ordinal within the driver's race (int\_stint\_geometry). |
| `lap_number` | | Yes | [`not_null`](/transform/ci/structural) | Race lap number. Tiers 1 and 3 match cars on it, which is why 2020\_1 is excluded (W18). |
| `compound` | | Yes | [`not_null`](/transform/ci/structural) | Dry compound of the stint (INTERMEDIATE and WET laps are not in Ω). |
| `age_in_stint` | | Yes | [`not_null`](/transform/ci/structural) | Tyre age in laps (int\_stint\_geometry). |
| `lap_in_stint` | | Yes | | Lap ordinal within the stint, counting every lap. |
| `valid_lap_in_stint` | | Yes | | Ordinal among the stint's valid laps; early vs mid phase splits at 5/6. |
| `laps_past_cliff` | | Yes | | Laps beyond the compound seed's cliff onset (0 before it); drives tyre\_phase = cliff. Never NULL in Ω. |
| `fuel_mass_kg` | | Yes | | Scheduled-distance fuel load, kg. The same for every car on a lap, so it cancels from every rating (carried for WI-16b's V4 physics check). |
| `era` | | Yes | | Regulation era: pre\<era\_boundary> or post\<era\_boundary> (var era\_boundary, 2022). |
| `anomaly_class` | | Yes | | int\_lap\_anomaly\_flags.anomaly\_class; normal or clean\_cliff in Ω. |
| `air_state_dominant` | | Yes | | int\_lap\_air\_state.air\_state\_dominant (context; dirty\_air drives the recovery overlay). |
| `is_dirty_air_lap` | | Yes | | TRUE when air\_state\_dominant = 'dirty\_air'. |
| `field_n` | | Yes | | Ω laps on this (race, lap); >= var('isolation\_min\_field\_n') by construction (T40). |
| `lap_time_s` | | Yes | | Raw lap time, s. |
| `compound_component_s` | | Yes | | C: the compound seed's expected cost of this tyre state, s, positive = slower (int\_lap\_residual\_decomposed). Never COALESCEd: an unknown tyre is not in Ω. |
| `dirty_air_tax_s` | | Yes | | D: dirty-air tax, s, positive = slower (int\_lap\_residual\_decomposed). |
| `x_s` | | Yes | | lap\_time\_s - compound\_component\_s - dirty\_air\_tax\_s, s. |
| `y_s` | | Yes | [`not_null`](/transform/ci/structural) | x\_s minus the lap's Ω field median of x\_s, s. POSITIVE = SLOWER than the field- typical car and driver on the lap. Invariant to the field base, fuel, rubber and ambient terms, which depend on (race, lap) only (T41). |
| `tyre_offset_vs_field_s` | | Yes | | compound\_component\_s minus the lap's Ω field median of it, s; positive = this tyre state costs more than the field's. The strategy position on the lap: team-dominated context, not a rating. |
| `tyre_phase` | | Yes | [`accepted_values`](/transform/ci/range-and-domain) | early (laps\_past\_cliff = 0, valid\_lap\_in\_stint \<= 5), mid (laps\_past\_cliff = 0, >= 6) or cliff (laps\_past\_cliff > 0), from the seed's onset, so never selected on the residual. |
| `is_recovery` | | Yes | | TRUE on the first var('isolation\_recovery\_laps') valid laps of a non-dirty-air run directly after >= var('isolation\_recovery\_min\_dirty\_run') consecutive dirty-air valid laps in the stint. Backward-looking only. |
| `stint_phase` | | Yes | [`accepted_values`](/transform/ci/range-and-domain) | 'recovery' when is\_recovery, else tyre\_phase (T45). |
| `car_iso_s` | | Yes | | Isolation car term, s, NEGATIVE = FASTER than the race's lap-weighted car (int\_constructor\_car\_fe\_isolation). NULL when not identified. |
| `car_term_source` | | Yes | [`not_null`](/transform/ci/structural), [`accepted_values`](/transform/ci/range-and-domain) | Where car\_iso\_s came from: driver\_id (fitted per-era), unidentified (multiple components in race), not\_estimated (pyfixest singleton), or no\_fit\_row (no row in the fit). |
| `pace_isolated_gain_s` | | Yes | | p = -(y\_s - car\_iso\_s), s/lap. POSITIVE = FASTER than the field on an equal car, tyre state, traffic and fuel: the driver plus noise, everything modelled removed. NULL without a car term (never a car term of 0). |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.