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

> One row per (driver_id, season).

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

One row per (driver\_id, season). Aggregates race residuals to season grain. Shrunk toward season league average (Bayesian, prior = 5 virtual races). Negative = faster than season average. Intermediate for era\_normalized\_driver\_rating. Isolates driver strength from era variation (e.g., 2016 vs 2022 regulations).

## Lineage

```mermaid theme={null}
flowchart LR
  int_driver_race_skill_loro --> int_driver_season_ratings
  int_driver_season_ratings --> int_era_normalized_driver_rating
  style int_driver_season_ratings 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_race_skill_loro`](./int_driver_race_skill_loro) |

**13 tests** [guard](/transform/ci/overview) this model  -  11 generic, 2 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)                              |
| `driver_id`            |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Driver identifier                                                    |
| `season`               |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Race year (integer)                                                  |
| `n_races`              |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Races contributing to this estimate                                  |
| `raw_residual_mean_s`  |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Unadjusted season mean residual. Negative = faster.                  |
| `shrunk_residual_s`    |      | Yes      | [`not_null`](/transform/ci/structural)                                                                         | Bayesian posterior mean toward season league average.                |
| `shrunk_residual_se_s` |      | Yes      | [`not_null`](/transform/ci/structural), [`expect_column_values_to_be_between`](/transform/ci/range-and-domain) | Posterior standard error in seconds.                                 |
| `rating_confidence`    |      | Yes      | [`not_null`](/transform/ci/structural), [`expect_column_values_to_be_between`](/transform/ci/range-and-domain) | Data fraction of posterior mass. n\_races / (n\_races + 5). \[0, 1]. |
