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

> The pre-race degradation figure for each compound, straight out of the strategy engine's own race_data bundle.

## Overview

Deg Prediction covers three widgets, one for soft, medium and hard. Each shows the degradation rate the Race Strategy Tool was handed for that compound **before the race started**, with the tyre life it applies over.

This is an input, not a measurement. It is the number the strategy engine is planning with, so it never moves as the race unfolds and it does not follow the playhead. Put it beside [Live Deg Prediction](/software/internal/watchparty/widgets/live-deg-prediction) to see at a glance whether the race is degrading the way the plan assumed.

> [!NOTE]
>
> These three are the only widgets in the set that read a **parameter row** rather than a metric or a raw channel. If the pre-race bundle for this weekend was never loaded, they say so rather than showing a stand-in figure.

***

## What It Shows

![The soft-compound pre-race prediction (Madrid 2026)](https://mintcdn.com/smedley_group/4HA54IXVT1XyKj8C/images/watchparty/deg-prediction.png?fit=max\&auto=format\&n=4HA54IXVT1XyKj8C\&q=85\&s=21326e0a9380efafeb2d986da420fcf5)

One line per widget:

| Element | Encoding |
| - | - |
| Degradation | The rate in seconds per lap, to three decimal places, followed by the unit |
| Primary life | The laps that rate is expected to hold for, smaller and in brackets |

The life is shown because a degradation rate means little without the distance it applies over. If the bundle carries a rate but no life for that compound, the brackets are simply left off; the rate on its own is still true.

***

## Data Behind It

The figures come from the stored `race_data` parameter row for this weekend, the same bundle the Race Strategy Tool is fed. `store/selectors.ts`'s `compoundDegFromParameters` resolves it:

* It looks for the parameter set for this exact (year, round), preferring the **active** row rather than relying on the gateway's ordering.
* Within that row's `race_data`, it reads the per-compound `primarydeg` and `primarylife` fields off the driver block. These are per-weekend inputs, so every driver carries the same pair.
* A row that carries no usable compound at all reads as absent, rather than rendering three empty widgets.

Because this is a parameter row and not a computed metric, the widgets carry no `model_id` or `model_version`, and nothing appears for them in the picker's version list.

***

## States

| State | Behaviour |
| - | - |
| No `race_data` bundle loaded for this weekend | "No degradation data available" |
| A bundle with no usable compound figures | The same message: the widget never invents a rate |
| A compound with a rate but no life | The rate alone, with no brackets |
| Playhead moved | Nothing changes. This is a pre-race input, by design |
| Live vs replay | Identical: both read the same parameter row |

***

## FAQ

> **Why does this number never move during the race?**
>
> Because it is not a measurement. It is what the strategy engine was told before the race, so it is fixed for the whole session. The live measurement is the Live Deg Prediction family.

> **It disagrees with Live Deg Prediction. Which is right?**
>
> Both. One is the plan's assumption, the other is what the tyres are actually doing. A gap between them is the interesting part: it is the strategy engine planning against a degradation rate the race is not delivering.

> **Why does it say no data when the race is running?**
>
> The pre-race bundle for this weekend has not been loaded into the parameters store. The widget refuses to substitute another round's figures.

***

## Next Steps

> **[Live Deg Prediction](/software/internal/watchparty/widgets/live-deg-prediction)**
>
> The measured counterpart, from the stints actually run.

> **[Tyre Deg Table](/software/internal/watchparty/widgets/tyre-deg-table)**
>
> Every fitted stint behind the live figure.

> **[Race Strategy Tool](/software/internal/watchparty/strategy/index)**
>
> The engine this bundle is an input to.

> **[Pre-race and Study Mode](/software/internal/watchparty/strategy/pre-race-and-study-mode)**
>
> How a weekend's race\_data bundle is loaded.


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