# TSB — Training Stress Balance

Canonical HTML: https://effortsignal.com/learn/tsb/

Last content update: 2026-09-10

TSB, shown as Form, is the difference between chronic and acute load entering a day.

## Before today's load

```text
TSB[d] = CTL[d−1] − ATL[d−1]
```

The date label matters: EffortSignal uses the previous day's completed CTL and ATL. It does not subtract today's updated ATL from today's updated CTL for the same labeled TSB. All three values come from the daily TRIMP history. The units are the same load scale as CTL and ATL.

## Verified example

If yesterday ended at CTL 50 and ATL 60, today's TSB is −10. Today's 100 TRIMP would update CTL to 51.190476 and ATL to 65.714286, but today's TSB remains −10. The difference of those updated values, −14.523810, becomes the following day's TSB.

## Interpretation and limits

Positive or negative values describe the relationship between two model averages. They do not independently determine readiness, injury probability or whether a hard workout is appropriate. The first modeled day's TSB is zero because both initial averages are zero; this does not establish full recovery.

Missing history and changed TRIMP inputs propagate through both averages. Read [CTL](/learn/ctl/), [ATL](/learn/atl/) and [Training Load](/learn/training-load/) together. [Readiness](/learn/readiness/) includes separate physiological evidence.

## Sources and implementation scope

[Morton, Fitz-Clarke and Banister (1990), impulse-response performance modeling](https://pubmed.ncbi.nlm.nih.gov/2246166/) provides background, not a specification of every EffortSignal rule. The formulas, windows, quality gates and examples above describe EffortSignal 0.1.13, checked September 10, 2026. Product-specific thresholds and rounding should not be attributed to the background source.
