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

# Deg Fit Plot

> The fitted degradation line for each stint dragged in from the Tyre Deg Table.

## Overview

The Deg Fit Plot draws the fitted degradation line, corrected pace against effective tyre life, for whichever stints you have loaded onto it. It is a subject-stint plot: nothing is loaded by default, and you build up a comparison by dragging rows in from the Tyre Deg Table.

> [!NOTE]
>
> This plot and the Corrected Laps Plot share one selection. A stint dropped on either appears on both, so you can toggle a stint in from one plot and immediately see it on the other.

***

## What It Shows

![Deg Fit Plot comparing three stints dragged in from the Tyre Deg Table (Madrid 2026)](https://mintcdn.com/smedley_group/zwm6wmhxgH8zyABx/images/watchparty/deg-fit-plot.png?fit=max\&auto=format\&n=zwm6wmhxgH8zyABx\&q=85\&s=5f546b937a14323043ca09c82c4ccb51)

Each loaded stint that has a qualifying fit draws as a two-point line: the endpoints span that stint's own valid-lap tyre-life range, at the fitted pace (`base_pace + life * gradient`) rather than the raw lap time. A stint dropped without enough valid laps to fit is silently skipped, never given an invented slope.

Lines are coloured by team. Where two loaded stints resolve to the same colour, either two stints from one driver or two team-mates, the second and third get a dashed and dotted line respectively so they stay distinguishable; a fourth repeat of the same colour cycles back to solid.

**Every line carries its own equation.** The end of each fit line is labelled with that stint's base pace and gradient, in the form `y = 92.431 + 0.084x`, in the line's own colour, and the same figures appear in the tooltip. It displays the fit the table already holds; no second calculation happens here.

**Zooming.** Right-drag across the plot to draw a box, and on release the chart zooms both axes to it. The drag carries on if the pointer leaves the plot or the chart, and the zoom lands at the last point inside the plot when you let go. A right-click without moving opens a small menu with **Reset zoom**, which returns the chart to its opening view. Left-drag is unchanged and there are no zoom sliders.

A chip row above the plot lists every loaded stint (driver acronym and stint number, in team colour). Interactions:

| Action | Effect |
| - | - |
| Drag a row from the Tyre Deg Table | Loads that stint onto the plot |
| Click a chip's **✕** | Removes that stint from both plots |
| Click a chip's **adj ↺** | Reverts every manually excluded or included lap for that stint (shown only when the stint's fit is manually adjusted) |

Up to six stints can be loaded at once. Dropping a seventh is silently rejected rather than evicting an existing one.

***

## Data Behind It

The plot is a pure render over an ECharts option built from the shared selection, each driver's latest `insight:stint_deg` snapshot (`model_id="stint_deg"`, `model_version="1.9.0"`), and any manual lap overrides for the loaded stints. It reads no channel of its own: the underlying data hydrates exactly as described on the [Tyre Deg Table](/software/internal/watchparty/widgets/tyre-deg-table) page, over `insight:stint_deg` live and `api.metrics(sessionKey, "stint_deg")` on session enter and rehydrate.

A stint marked "adj" reflects a client-side refit against your manual lap overrides rather than the canonical server fit; the refit mirrors the server's post-correction fit maths exactly (fuel and evolution corrections themselves are never re-derived here). See the [Corrected Laps Plot](/software/internal/watchparty/widgets/corrected-laps-plot) for how those overrides are made and saved.

***

## States

> **Empty**
>
> "Drag a stint from the Tyre Deg Table" shows until at least one dropped stint resolves to a plottable fit.

> **Dropped stint has no qualifying fit**
>
> The stint is accepted into the selection (its chip appears) but draws no line, since it has no fit to draw. No error is shown.

> **Six stints already loaded**
>
> A further drop is silently rejected; the stint already on the plot stays put. Remove a chip first to make room.

> **Session gating: race and practice, never qualifying**
>
> The widget runs on race and practice sessions, and renders a not-applicable state in qualifying, where the metric itself returns nothing. Same rule as the [Tyre Deg Table](/software/internal/watchparty/widgets/tyre-deg-table).

> **Live vs replay**
>
> Identical rendering: the option only depends on the current stint\_deg snapshots and the local selection, both of which behave the same under live streaming or replay.

***

## Next Steps

> **[Tyre Deg Table](/software/internal/watchparty/widgets/tyre-deg-table)**
>
> The drag source for this plot's stints.

> **[Corrected Laps Plot](/software/internal/watchparty/widgets/corrected-laps-plot)**
>
> The exact lap-by-lap series behind each fit, with manual lap exclusion.

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

> **[Insights and Versioning](/software/internal/watchparty/concepts/insights-and-versioning)**
>
> How model\_id and model\_version work across the insight engine.


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