Ask any data-driven endurance coach: “How do you quantify a swim set, a tempo run, and a cycling interval in the same currency?” The answer is either TSS, TRIMP, or a careful combination of both. Getting this wrong means your Performance Manager Chart is lying to you.
TSS: Power-Based Precision
Training Stress Score (TSS) was developed by Andrew Coggan to give a single number summarizing the physiological cost of a ride relative to the athlete’s current fitness (FTP).
TSS = (duration_sec × NP × IF) / (FTP × 3600) × 100
The elegance of TSS: 1 hour at exactly FTP = 100 TSS. This absolute reference point makes TSS intuitive and directly comparable across athletes with different FTPs.
TSS Properties
| TSS Range (single session) | Interpretation |
|---|---|
| 0–50 | Easy session; minimal fatigue |
| 50–100 | Moderate; 12–24 hrs recovery |
| 100–150 | Hard; 24–36 hrs recovery |
| 150–250 | Very hard; 36–48 hrs recovery |
| 250+ | Extreme (e.g., 6+ hour Ironman race) |
TSS weakness: It requires a power meter. Without power, you’re forced to use heart rate, pace, or RPE as proxies — introducing estimation error.
TRIMP: Heart Rate as Load Proxy
TRIMP (Training Impulse) was created by Banister in 1975 using HR data to compute training load without power meters. The original formula:
TRIMP = duration_min × ΔHR_ratio × 0.64 × e^(1.92 × ΔHR_ratio)
Where: ΔHR_ratio = (HR_exercise − HR_rest) / (HR_max − HR_rest)
The exponential weighting (the e^{1.92} term) captures the non-linear physiological cost of high-intensity effort — a 10-minute effort at 90% HRmax is not simply twice as costly as 20 minutes at 60%.
TRIMP Variants
The original Banister TRIMP uses session-average HR, which misses the stress of variable-intensity efforts. Lucy et al. (2003) improved this with per-minute HR sampling (TRIMP-exp), and Stagno et al. (2007) validated zone-based TRIMP for team sport.
| Variant | Method | Best Use Case |
|---|---|---|
| Banister TRIMP | Session avg HR | Simple; moderate accuracy |
| TRIMP-exp | Per-minute HR | Variable-intensity sessions |
| Zone-TRIMP | HR zone multipliers | Team sports; interval work |
| rTSS (run TSS) | Pace × GAP ÷ rFTPa | Running with GPS |
| sTSS (swim TSS) | CSS-normalized pace | Pool/OWS |
Head-to-Head Comparison
| Criterion | TSS | TRIMP |
|---|---|---|
| Requires power meter | Yes | No |
| Works for running | Via rTSS (pace-based) | Yes (HR) |
| Works for swimming | Via sTSS | Yes (HR) |
| Accounts for intensity variability | Via NP calculation | Via exponential HR weighting |
| Sport-specific calibration needed | FTP per sport | HRmax, HRrest per athlete |
| Accuracy in heat/altitude | High (power is absolute) | Lower (HR drifts with heat) |
| 1 hour at threshold = | 100 TSS | ~100 TRIMP (approx.) |
The critical insight: In controlled lab conditions, 1 TRIMP ≈ 1 TSS for threshold efforts. But in field conditions — heat, hills, headwinds, caffeine, fatigue — HR can overestimate or underestimate physiological stress by 10–20%.
The Multi-Sport Athlete Problem
Ironman athletes training swim/bike/run face a calibration challenge: their FTP in cycling is not the same physiological ceiling as their threshold running pace (rFTPa) or Critical Swim Speed (CSS). A 100W cycling TSS does not produce the same fatigue as 100 run TSS.
Sport-specific coefficient adjustments (validated by various endurance coaches):
- Cycling TSS: 1.0× coefficient (reference)
- Running rTSS: 1.1–1.3× coefficient (higher muscle damage, ground contact forces)
- Swimming sTSS: 0.7–0.9× coefficient (lower mechanical stress, no eccentric loading)
AthleteOS applies these coefficients automatically when aggregating multi-sport load, so your PMC chart reflects actual physiological stress rather than an artificially balanced number that ignores the eccentric loading difference between a 5-hour bike and a 5-hour run.
Practical Recommendation
- Cycling with a power meter: Use TSS. Always.
- Running: Use rTSS if you have pace data + rFTPa. Use TRIMP if you’re training by HR only.
- Swimming: Use sTSS (CSS-based). TRIMP is unreliable in water due to HR suppression from the dive reflex.
- Without any power meter or pace data: Use TRIMP as a rough load proxy — better than nothing.
- Unified multi-sport PMC: Normalize all three to a common scale with sport-specific coefficients, as AthleteOS does automatically.