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

# Tyre Deg Table

> Per-stint degradation fits for every driver, and the drag source that loads stints onto the Deg Fit and Corrected Laps plots.

## Overview

The Tyre Deg Table lists one row per (driver, stint), with the fitted degradation gradient, base pace and mid-stint pace for each. Reach for it to compare how stints degraded across the field, and to pick which stints to inspect further: a row is a **drag source** for the Deg Fit Plot and Corrected Laps Plot.

> [!NOTE]
>
> A stint with too few valid laps to fit is muted, never hidden. It is real evidence the wire carried; it just did not qualify for the fit-backed columns.

***

## What It Shows

![The Tyre Deg Table mid-race, fitted gradients per driver and stint (Madrid 2026)](https://mintcdn.com/smedley_group/Tjan_fF50tdTQI7z/images/watchparty/tyre-deg-table.png?fit=max\&auto=format\&n=Tjan_fF50tdTQI7z\&q=85\&s=0662c14fc4482029a74d8accef7ff414)

| Column | Meaning |
| - | - |
| Driver | Roster acronym, coloured by team |
| Stint | Stint number |
| Compound | Tyre compound badge |
| Start age | Effective tyre age at stint start (a `?` suffix means tyre age was not reported and had to be assumed) |
| Gradient | Fitted degradation, seconds per lap |
| Base pace | Fitted intercept, seconds |
| Mid-stint | Fitted pace at the stint's midpoint, seconds |
| Valid laps | Count of laps that entered the fit |

All second-valued columns show three decimal places, with a dash for a missing value rather than a fabricated `0.000`.

Click any column header to sort: the first click sorts ascending, a second click flips to descending, and clicking a different column resets to ascending. Gradient, base pace and mid-stint pace sort with missing values always last, in either direction, so an unfittable stint can never read as the shallowest or steepest degradation.

Each row is **draggable** onto the Deg Fit Plot or Corrected Laps Plot. A stint currently loaded on those plots is pinned above the rest of the table (each block keeping its own column sort), highlighted, and given a right-edge **✕** to remove it from the plots without re-dragging.

A row whose fit reflects manually excluded or included laps (see below) is marked with a trailing `*` on its fit-backed cells; hovering shows how many laps were excluded and/or included, or "Reverted to automatic fit" if the manual overrides have since been undone.

The header row shows the corrections' evolution provenance (`evolution: parameter` / `estimate` / `none`) so you can see when stints were corrected with no track evolution term at all. When there is something to save or discard, the header also hosts the save/discard control described under States below.

***

## Data Behind It

Rows come from each driver's latest `insight:stint_deg` snapshot as of the playhead (`model_id="stint_deg"`, `model_version="1.9.0"`, trigger `new_lap`). `stint_deg` is driver-scoped: one snapshot per firing, for the triggering driver only. The fit itself is an ordinary least-squares regression of fuel- and evolution-corrected lap time against effective tyre life, over laps that clear the configurable outlier cutoff (default `cutoff_pct` 4.0%) and meet `min_stint_laps` (default 5) to count as a qualifying fit. The fuel and evolution correction maths itself is never re-derived here; see [Fuel Correction](/software/internal/watchparty/concepts/fuel-correction).

The webapp subscribes to `insight:stint_deg` over WebSocket and hydrates the same data over REST (`api.metrics(sessionKey, "stint_deg")`) on session enter and on rehydrate, so a live stream and a REST snapshot converge on identical rows.

**Manual lap exclusion/inclusion.** Clicking a lap point on the Corrected Laps Plot toggles a manual override for that lap; this table's `*`-marked rows reflect the resulting client-side refit. The refit mirrors the server's post-correction fit maths exactly (never the fuel or evolution correction itself, which stays server-owned) and is persisted via `PUT /v1/sessions/{session_key}/exclusions`, a replace-set write of the full desired override list. See the Corrected Laps Plot's page for the click workflow.

***

## States

> **No insight yet / no analysed stints**
>
> Before any driver's `stint_deg` snapshot has arrived, the table shows "No tyre degradation insight yet." Once snapshots exist but carry no stints (not expected in practice, since the metric withholds entirely rather than firing empty), it shows "No analysed stints yet."

> **Stint below min\_stint\_laps**
>
> The row renders muted (dimmed text) with a tooltip: "Below min\_stint\_laps: no qualifying fit." Gradient, base pace and mid-stint pace show as a dash.

> **Session gating: race and practice, never qualifying**
>
> The widget runs on **race and practice** sessions. In qualifying it renders a not-applicable state, because the metric itself returns nothing there: qualifying stints are too short and too unrepresentative to fit. On practice the fits are published uncorrected where the fuel load behind them is not known, and the widget says so rather than implying a correction that did not happen.

> **Live vs replay**
>
> Identical: live and replay publish the same envelopes on the same channel, so the table behaves the same either way.

> **Unsaved changes and reconciliation**
>
> The header's save/discard bar (hosted here, driven by manual lap overrides made on the Corrected Laps Plot) shows one of three states: **Adjusted** (an unsaved local diff; Save and Discard are both live), **Reconciling** (saved, but the latest `race_pace` snapshot has not caught up yet; both buttons are inert), or **Canonical** (baseline and the server's echo agree). The bar is hidden entirely when nothing has ever been excluded or included.

***

## Next Steps

> **[Deg Fit Plot](/software/internal/watchparty/widgets/deg-fit-plot)**
>
> See the fitted degradation lines for stints dragged from this table.

> **[Corrected Laps Plot](/software/internal/watchparty/widgets/corrected-laps-plot)**
>
> Inspect and manually exclude or include the laps behind a fit.

> **[Tyre Deg Ranking](/software/internal/watchparty/widgets/tyre-deg-ranking)**
>
> Compare degradation across the whole field, per compound.

> **[Fuel Correction](/software/internal/watchparty/concepts/fuel-correction)**
>
> How lap times are corrected before they reach this table's fits.


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