> ## 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.

# fct_driver_isolation_stint

> Driver isolation per stint and phase: one row per (stint_id, stint_phase) with stint_phase in early / mid / cliff / recovery, plus an 'all' row per stint (built with UNION ALL, never GROUPING SETS).

<Note>Part of the [Marts](/transform/families/marts) family.</Note>

Driver isolation per stint and phase: one row per (stint\_id, stint\_phase) with stint\_phase in early / mid / cliff / recovery, plus an 'all' row per stint (built with UNION ALL, never GROUPING SETS). Per rating: raw, n, SE, lambda, shrunk, confidence\_pct, trust\_label; tactical\_banked\_s; cliff\_excess\_gain\_s (overextension when negative); the tier-3 identity split; and context (strategy verdict and opportunity cost, stint end cause, strategy position, lift-and-coast excess, dirty-air share). tau^2 per season from the 'all' rows with n >= 6. Positive = faster. 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
  fct_driver_isolation_lap --> fct_driver_isolation_stint
  fct_driver_isolation_pair_lap --> fct_driver_isolation_stint
  int_driver_isolation_stint_tyre --> fct_driver_isolation_stint
  int_pit_strategy_value --> fct_driver_isolation_stint
  int_stint_end_regime --> fct_driver_isolation_stint
  style fct_driver_isolation_stint fill:#e40404,stroke:#e40404,color:#fff
```

## Overview

| Property | Value |
| - | - |
| Layer | `marts` |
| Family | [Marts](/transform/families/marts) |
| Contract enforced | No |
| Tags | `driver_isolation` |
| Upstream | [`fct_driver_isolation_lap`](./fct_driver_isolation_lap), [`fct_driver_isolation_pair_lap`](./fct_driver_isolation_pair_lap), [`int_driver_isolation_stint_tyre`](../int/int_driver_isolation_stint_tyre), [`int_stint_end_regime`](../int/int_stint_end_regime), [`int_pit_strategy_value`](../int/int_pit_strategy_value) |
| Model-level tests | `unique_combination_of_columns` |

**21 tests** [guard](/transform/ci/overview) this model  -  18 generic, 3 singular.

## Columns

| Column | Type | Nullable | Tests | Description |
| - | - | - | - | - |
| `stint_phase_id` | | Yes | [`not_null`](/transform/ci/structural), [`unique`](/transform/ci/structural) | PK: stint\_id \|\| '\|' \|\| stint\_phase. |
| `stint_id` | | Yes | [`not_null`](/transform/ci/structural) | Stint identifier (int\_stint\_geometry.stint\_id). |
| `stint_phase` | | Yes | [`not_null`](/transform/ci/structural), [`accepted_values`](/transform/ci/range-and-domain) | 'recovery' when is\_recovery, else tyre\_phase (T45). |
| `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). |
| `compound` | | Yes | [`not_null`](/transform/ci/structural) | Dry compound of the stint (INTERMEDIATE and WET laps are not in Ω). |
| `era` | | Yes | | Regulation era: pre\<era\_boundary> or post\<era\_boundary> (var era\_boundary, 2022). |
| `n_laps` | | Yes | [`not_null`](/transform/ci/structural) | Ω laps in the group. |
| `first_lap_number` | | Yes | | First Ω lap number in the group. |
| `last_lap_number` | | Yes | | Last Ω lap number in the group. |
| `min_age_in_stint` | | Yes | | Youngest tyre age in the group, laps. |
| `max_age_in_stint` | | Yes | | Oldest tyre age in the group, laps. |
| `pace_isolated_gain_s` | | Yes | | Mean p over the group's laps, s/lap, positive = faster (pure + tactical before the split). |
| `n_pure_laps` | | Yes | [`not_null`](/transform/ci/structural) | Non-extrapolated laps with pure in the group (the pure rating's n). |
| `n_pair_laps` | | Yes | [`not_null`](/transform/ci/structural) | Pair-laps in the group (the relative rating's n). |
| `n_relative_laps` | | Yes | [`not_null`](/transform/ci/structural) | Distinct laps with at least one peer in the group. |
| `n_teammate_pair_laps` | | Yes | [`not_null`](/transform/ci/structural) | Of n\_pair\_laps, those against a teammate. |
| `relative_pace_raw_gain_s` | | Yes | | t(peer) - t(driver), s/lap: model-free, POSITIVE = the driver faster. In aggregates, the mean over pair-laps. |
| `identity_n_pair_laps` | | Yes | | Pair-laps with both car terms, over which the identity\_\* contributions are computed. |
| `identity_relative_pace_gain_s` | | Yes | | Mean relative\_pace\_gain\_s over the identity\_n\_pair\_laps rows, s/lap. = the three identity\_\* contributions plus the group's mean tyre-age bias (the seed's pricing of the peers' age gap, at most the match tolerance; not published, 0 when every pair is on the same tyre age). W63 design 2, 2026-10-03. |
| `identity_pace_gap_gain_s` | | Yes | | Contribution: SUM(pace\_gap) over rows with both car terms / identity\_n\_pair\_laps, s/lap. |
| `identity_car_advantage_gain_s` | | Yes | | Contribution: mean car\_advantage\_gain\_s over identity rows, s/lap; > 0 = the driver's car faster. |
| `identity_traffic_advantage_gain_s` | | Yes | | Contribution: mean traffic\_advantage\_gain\_s over identity rows, s/lap; > 0 = he lost less to dirty air. |
| `n_line_laps` | | Yes | | Line laps the stint's slope was fitted on (early/mid, not recovery, with p). Below var('isolation\_min\_stint\_laps') the slope and every tactical value are NULL. |
| `line_slope_s_per_lap2` | | Yes | | beta\_s: REGR\_SLOPE(p, age) over the stint's line laps, s/lap per lap of age; > 0 = his isolated pace rises through the stint. NULL below the line floor or with Sxx = 0 (never NaN). |
| `tyre_offset_vs_field_s` | | Yes | | Mean tyre\_offset\_vs\_field\_s over the group: the strategy position, context. |
| `lift_coast_excess_share` | | Yes | | Mean lift\_coast\_excess\_share over the group (context). |
| `dirty_air_lap_share` | | Yes | | Share of the group's laps with is\_dirty\_air\_lap. |
| `stint_end_cause` | | Yes | | int\_stint\_end\_regime.stint\_end\_cause (context). |
| `is_censored_stint` | | Yes | | int\_stint\_end\_regime.is\_censored\_stint (context). |
| `strategy_verdict` | | Yes | | int\_pit\_strategy\_value.strategy\_verdict (context: staying out is the pit wall's call, not the driver's). |
| `opportunity_cost_s` | | Yes | | int\_pit\_strategy\_value.opportunity\_cost\_s (context). |
| `pure_skill_gain_s` | | Yes | | Pure pace skill, mean over the group's non-extrapolated laps at stint-phase grain, s/lap, POSITIVE = faster / better (raw, before shrinkage). Includes the declared season offset (2018 +0.37 s, W33; see int\_driver\_isolation\_lap\_values). |
| `pure_skill_se_s` | | Yes | | SE of pure\_skill\_gain\_s, s/lap (see the model header for the formula). |
| `pure_skill_lambda` | | Yes | | Reliability tau^2 / (tau^2 + SE^2) in \[0, 1]; tau^2 per (season, rating) at this grain. 1 when SE = 0. |
| `pure_skill_shrunk_gain_s` | | Yes | | lambda \* pure\_skill\_gain\_s: shrunk toward 0 (the ratings are field- or peer- centred), s/lap. |
| `pure_skill_confidence_pct` | | Yes | | ROUND(100 \* lambda \* method\_score); NULL until WI-16b validates the method (seed driver\_isolation\_method\_scores). |
| `pure_skill_trust_label` | | Yes | [`accepted_values`](/transform/ci/range-and-domain) | solid (>= 75), indicative (50-75), thin (25-50), suppress (\< 25, grade F or no lambda), unvalidated (no method score yet). NULL without a raw value. |
| `relative_pace_gain_s` | | Yes | | Relative pace vs same-strategy peers, mean over the group's pair-laps at stint-phase grain, s/lap, POSITIVE = faster / better (raw, before shrinkage). |
| `relative_pace_se_s` | | Yes | | SE of relative\_pace\_gain\_s, s/lap (see the model header for the formula). |
| `relative_pace_lambda` | | Yes | | Reliability tau^2 / (tau^2 + SE^2) in \[0, 1]; tau^2 per (season, rating) at this grain. 1 when SE = 0. |
| `relative_pace_shrunk_gain_s` | | Yes | | lambda \* relative\_pace\_gain\_s: shrunk toward 0 (the ratings are field- or peer- centred), s/lap. |
| `relative_pace_confidence_pct` | | Yes | | ROUND(100 \* lambda \* method\_score); NULL until WI-16b validates the method (seed driver\_isolation\_method\_scores). |
| `relative_pace_trust_label` | | Yes | [`accepted_values`](/transform/ci/range-and-domain) | solid (>= 75), indicative (50-75), thin (25-50), suppress (\< 25, grade F or no lambda), unvalidated (no method score yet). NULL without a raw value. |


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