TRIMP (Training Impulse)
Also known as: Banister TRIMP, Heart-Rate Load, Cardiovascular Training Load
An HR-based internal load metric that multiplies session duration by an HR-derived intensity weighting. TRIMP is the heart-rate counterpart to sRPE-based AU: same idea (volume × intensity = load), different intensity signal. It's the standard load metric in endurance sport — running, cycling, rowing, cross-country skiing.
Formula
Banister TRIMP = duration (min) × HRr × 0.64 × e^(1.92 × HRr) [men; HRr = (HR_avg − HR_rest) / (HR_max − HR_rest), the heart-rate reserve fraction; women use a 0.86 × e^(1.67 × HRr) weighting]Example
60-minute run, average HR 155, resting HR 55, max HR 190. HRr = (155 − 55) / (190 − 55) = 100 / 135 = 0.74. TRIMP = 60 × 0.74 × 0.64 × e^(1.92 × 0.74) = 60 × 0.74 × 0.64 × 4.14 ≈ 118. A harder 60-minute interval session at HRr 0.85 would compute to ≈ 188 — same duration, ~60% more TRIMP.
How Afitpilot Uses This
Afitpilot does not compute TRIMP in the current product. Our internal-load metric is AU (sRPE × duration), which works across strength, endurance, and mixed sessions without requiring HR data. TRIMP support is on the roadmap (`tss-trimp` improvement) for endurance athletes who already wear a chest strap or watch — when added, it will live alongside AU rather than replace it, since each captures something different (TRIMP misses heavy-load strength work that doesn't raise HR much; AU is subjective and weaker for steady-state cardio).
TRIMP vs other load metrics
| Who / Context | Value | Note |
|---|---|---|
| TRIMP | HR × duration | Endurance-native; needs HR data |
| TSS (Training Stress Score) | Normalized power × duration / FTP | Power-meter equivalent for cyclists / runners with power |
| sRPE / AU (Foster) | Subjective effort × duration | Universal; no device required; what Afitpilot uses today |
| Typical easy 60-min run | 60-90 TRIMP | Zone 2, conversational pace |
| Hard 60-min interval session | 150-200 TRIMP | Repeats above LT2; 2-3 days to recover |
Known Limitations
- •TRIMP requires a known HR_rest and HR_max. The 220 − age estimate of HR_max has ±10-15 bpm individual error, which compounds non-linearly into TRIMP via the exponential weighting.
- •TRIMP undervalues heavy resistance training. A near-maximal back squat single barely raises average HR, so it computes very low TRIMP — yet the neuromuscular and structural load is severe. This is why TRIMP is endurance-native, not a universal load metric.
- •The Banister weighting is a population-average curve. Athletes with unusually high or low HR-to-effort responses (genetic, beta-blocker users, hot/dehydrated days) get systematically biased TRIMP scores.
- •Multiple TRIMP variants exist (Banister, Edwards zone-based, Lucia zone-based, individualized). They produce different numbers from the same workout, so cross-platform comparison is unreliable unless you know which variant your tool uses.
Science Context
Banister introduced TRIMP in the 1970s-80s as the load input to his fitness-fatigue model — the same model that motivates `surcompensation`. The exponential HR-reserve weighting was calibrated against blood-lactate response to give higher-intensity work disproportionate weight, matching the observed non-linear cost of hard training. Modern critiques (Borresen & Lambert 2009, Halson 2014) acknowledge TRIMP's endurance validity while flagging its poor fit for strength and team sports. The contemporary consensus is to pick a load metric that matches the modality — TRIMP for steady-state and intervals, sRPE × duration (AU) for mixed and resistance training, TSS for power-based sport.