# TRIMP — Training Impulse

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

Last content update: 2026-09-10

TRIMP estimates cardiovascular training load from duration and relative heart rate.

## Inputs and formula

EffortSignal uses a Banister-style average-heart-rate calculation, rather than summing zone points or instantaneous exponential values. Let H be mean valid timer-running heart rate, Hr the configured resting HR, Hm the configured maximum HR, and D the number of valid HR seconds divided by 60.

```text
r = clamp((H − Hr) / (Hm − Hr), 0, 1)
TRIMP = D × r × a × exp(b × r)
Profile 1: a = 0.64, b = 1.92
Profile 2: a = 0.86, b = 1.67
```

TRIMP is a load score, not minutes or calories. The effective athlete profile selects the coefficients and HR settings. Lactate-threshold HR can inform other displays, but it is not the denominator of this formula.

## Time and data quality

Samples are projected onto one-second timer-running time using second midpoints. HR interpolation bridges gaps only up to five seconds. At least 90% HR coverage is required against the reported positive timer/moving duration, or the projected timer duration when that summary is unavailable. After passing the gate, D counts valid HR seconds only. Paused seconds do not enter D.

Missing resting or maximum HR, maximum HR no greater than resting HR, or insufficient coverage leaves TRIMP unavailable. A numerical zero is possible when the clamped reserve ratio is zero; that is different from a missing result.

## Verified example

For 60 valid minutes at 150 bpm, resting HR 50 and maximum HR 190, r = 100/140 = 0.714286. Profile 1 produces 108.10 TRIMP; Profile 2 produces 121.50 TRIMP. This deliberately uses a constant recording so every time and coverage input is explicit.

## Where it goes

Completed activity TRIMP is summed by local start day to feed [ATL](/learn/atl/), [CTL](/learn/ctl/) and [TSB](/learn/tsb/). Changing the applicable HR profile and recalculating can alter those values. Planned HR workouts use a separate [zone-minute proxy](/learn/planned-load/), not this measured formula.

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