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

> Per-compound driver rankings of average tyre degradation, as a bar chart and as a table.

## Overview

Tyre Deg Ranking covers six widgets, a horizontal bar chart and a ranked table for each of soft, medium and hard compounds. Both presentations of one compound draw from the exact same ranking: best (shallowest) degradation at the top, worst at the bottom. Reach for the chart to compare the field at a glance, or the table when you need exact figures and driver identity side by side.

> [!NOTE]
>
> The chart and table for one compound always agree on whether there is anything to show: both go empty together, and both carry the same "Adjusted" badge when manual lap overrides are live.

***

## What It Shows

![The soft-compound ranking chart (Madrid 2026)](https://mintcdn.com/smedley_group/Tjan_fF50tdTQI7z/images/watchparty/tyre-deg-ranking-chart.png?fit=max\&auto=format\&n=Tjan_fF50tdTQI7z\&q=85\&s=347e291a04c6793b2d87329b6756c864)

![The matching ranking table for the same compound (Madrid 2026)](https://mintcdn.com/smedley_group/Tjan_fF50tdTQI7z/images/watchparty/tyre-deg-ranking-table.png?fit=max\&auto=format\&n=Tjan_fF50tdTQI7z\&q=85\&s=00134d642eef73bcf480b10790233413)

**Chart**

A horizontal bar per driver, sorted by rank with rank 1 at the top. Bars are team-coloured, and each bar's value label prints at the bar end in white text at three decimal places (s/lap). The x axis is labelled "s/lap". Every driver's three-letter code is drawn on the axis, including in a full field, where the chart would otherwise thin the labels out and leave bars unattributed.

**Table**

Three columns: **Pos**, **Driver** (roster acronym, team-coloured), **Degradation (s/lap)**, at three decimal places. Rows arrive pre-sorted by rank; unlike the Tyre Deg Table, this table has no client-side re-sort, since the ranking itself is the ordering.

A small header caption reads the number of ranked drivers, for example "18 drivers". When a manual lap override refit (made on the Corrected Laps Plot) changes the ranking, both the chart and the table show an amber **Adjusted** pill in the header, driven by one shared `rankingsAdjusted` flag so the two never disagree.

There are no click, drag or toggle interactions on either widget: they are read-only views over the field-wide ranking.

***

## Data Behind It

Both widgets read the `deg_rankings` block of the field-wide `insight:race_pace` snapshot (`model_id="race_pace"`, `model_version="1.9.0"`, trigger `new_lap`). `race_pace` is field-scoped, one snapshot per firing covering every driver, unlike the driver-scoped `stint_deg` the Tyre Deg Table and plots read.

A driver enters a compound's ranking only if they have at least one stint on that compound clearing `min_stint_laps` (the same qualifying-stint filter `stint_deg`'s fits use), and the ranking applies one further filter of its own: a negative average gradient (the car got faster through the stint) is excluded unless the session is flagged as wet, since a dry negative gradient usually reflects fuel or evolution noise rather than genuine tyre improvement. This sign filter is ranking-only; it does not affect the gradient shown in the Tyre Deg Table or Deg Fit Plot for the same stint. Ties share the lower rank.

Team colours and driver labels come from the REST `/drivers` endpoint, the same as every other widget, not from `race_pace`'s own `team_name` field (which can be null on a fixture-derived replay).

The webapp subscribes to `insight:race_pace` over WebSocket and hydrates the same data over REST (`api.metrics(sessionKey, "race_pace")`) on session enter and on rehydrate.

The **Adjusted** badge reflects a client-side mirror of the same manual lap overrides described on the [Corrected Laps Plot](/software/internal/watchparty/widgets/corrected-laps-plot) page: reproducing the server's own qualifying threshold and dry-negative-gradient sign filter locally, so a what-if refit re-ranks the field the same way the server would. The canonical, unadjusted numbers are never overwritten; the badge marks a local what-if, not a save.

***

## States

> **No ranked stints for a compound**
>
> Shows "No ranked soft/medium/hard stints yet." for the compound in question. This covers both "no `race_pace` snapshot has arrived" and "a snapshot arrived but no driver qualifies on this compound" (for example, nobody has run hards yet).

> **Compound present but every gradient filtered out**
>
> If every qualifying stint on a compound has a negative gradient and the session is not flagged wet, the compound's ranking is empty and reads the same as "no ranked stints yet".

> **Adjusted**
>
> Shown only while at least one manually excluded or included lap actually changes the field-wide ranking; a manual override that reverts back to the automatic verdict clears the badge.

> **Session gating: race and practice, never qualifying**
>
> All six widgets run on race and practice sessions, and render a not-applicable state in qualifying, where `race_pace` itself returns nothing. On practice the rankings are published uncorrected where the fuel load behind them is not known.

> **Live vs replay**
>
> Identical: live and replay publish the same `race_pace` envelopes, so both presentations behave the same either way.

***

## FAQ

> **Why is a driver missing from a compound's ranking?**
>
> Either they have not run enough laps on that compound to clear `min_stint_laps`, or every one of their qualifying stints on it came back with a negative gradient on a dry session.

> **Do the chart and table ever show different rankings for the same compound?**
>
> No. Both read the same `deg_rankings` block and the same `rankingsAdjusted` flag, so they are always in agreement.

***

## Next Steps

> **[Tyre Deg Table](/software/internal/watchparty/widgets/tyre-deg-table)**
>
> Per-stint fits, and the source of manual lap overrides that can adjust this ranking.

> **[Corrected Laps Plot](/software/internal/watchparty/widgets/corrected-laps-plot)**
>
> Where manual lap exclusion and inclusion happen.

> **[Tyre Strategy](/software/internal/watchparty/widgets/tyre-strategy)**
>
> A wider view of compound choice and strategy across the field.

> **[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.