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

> One row per (driver_id, season).

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

One row per (driver\_id, season). Cross-era driver rating: compares drivers across 2018–2024 despite regulation changes (2022 ground-effect boundary). Uses bridge drivers (≥8 races both eras) to estimate era offset, then adjusts season residuals. era\_adjusted\_rating = comparable across eras; negative = faster than era average. low\_anchor\_sample\_flag = few bridge drivers (weak offset).

## Lineage

```mermaid theme={null}
flowchart LR
  int_driver_season_ratings --> int_era_normalized_driver_rating
  style int_era_normalized_driver_rating fill:#e40404,stroke:#e40404,color:#fff
```

## Overview

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

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

## Columns

| Column                          | Type | Nullable | Tests                                                                                                          | Description                                                                         |
| ------------------------------- | ---- | -------- | -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| `driver_season_id`              |      | Yes      | [`not_null`](/transform/ci/structural), [`unique`](/transform/ci/structural)                                   | Surrogate PK = hash(driver\_id, season). Matches int\_driver\_season\_ratings.      |
| `driver_id`                     |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Driver identifier                                                                   |
| `season`                        |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Race year (integer)                                                                 |
| `raw_residual_mean_s`           |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Unadjusted season mean. Not era-adjusted.                                           |
| `shrunk_residual_s`             |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Bayesian posterior mean (season shrinkage applied, no era offset).                  |
| `era_adjusted_rating`           |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Cross-era comparable rating. Negative = faster than era average. Key output column. |
| `era_adjusted_rating_se_s`      |      | Yes      | [`not_null`](/transform/ci/structural), [`expect_column_values_to_be_between`](/transform/ci/range-and-domain) | Propagated SE (sqrt of shrunk SE² + era shift SE²).                                 |
| `era_adjusted_rating_ci_low_s`  |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Lower bound of 95% CI on era\_adjusted\_rating                                      |
| `era_adjusted_rating_ci_high_s` |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Upper bound of 95% CI on era\_adjusted\_rating                                      |
| `rating_confidence`             |      | Yes      | [`not_null`](/transform/ci/structural), [`expect_column_values_to_be_between`](/transform/ci/range-and-domain) | n\_races / (n\_races + 5). \[0, 1].                                                 |
| `bridge_driver_anchor_flag`     |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | TRUE if this driver was used to estimate the era offset.                            |
| `low_anchor_sample_flag`        |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | TRUE if fewer than 3 bridge drivers found; era offset is 0 when this fires.         |
