TRIMP Data Fitness and Training Load

This content is for informational purposes only and is not a substitute for professional advice.

TRIMP data fitness turns heart rate time series into a training-load number. Accumulating those numbers over time gives a fitness signal that can guide progression, recovery, and peaking.

Training load as a model

Training load is not a physical property of a workout in the way distance or time is a property of a workout. Training load is a model that tries to map a training dose to expected adaptation and expected fatigue.

Two athletes can complete the same external work and experience different internal strain. A 60 minute run at 5 min per km is a very different stressor at 140 bpm for one athlete than it is at 170 bpm for another. TRIMP is designed to quantify that internal strain using heart rate and time.

TRIMP stands for training impulse. A session TRIMP is a scalar value that increases with duration and increases faster as intensity rises. The design goal is simple: minutes near threshold should count more than minutes far below threshold because they tend to cost more recovery per minute.

What TRIMP measures

TRIMP is best understood as a proxy for cardiovascular and metabolic load. It is a heart-rate based model of training dose, not a direct measurement of mechanical work, muscle damage, or neuromuscular cost.

TRIMP works well when heart rate tracks metabolic demand with reasonable fidelity, which is most true in steady endurance sessions and moderately variable sessions. TRIMP becomes less faithful in settings where heart rate is decoupled from the dominant stressor, such as short maximal intervals with strong heart rate lag, heavy strength training, hot environments with high cardiac drift, or sports where isometric strain is dominant.

Banister TRIMP definition

Banister TRIMP makes one coaching claim explicit: the recovery cost of hard minutes rises faster than linearly, so intensity deserves an exponential penalty.

The method normalizes intensity using heart rate reserve, then weights that intensity before multiplying by time.

Inputs

Heart rate reserve

HRreserve = HRmax − HRrest

Define the normalized intensity ratio dHR for a heart rate HR as:

dHR = (HR − HRrest) ÷ (HRmax − HRrest)

dHR is unitless and typically sits between 0 and 1 when HR is between HRrest and HRmax.

Intensity weighting

The weighting function is exponential in dHR:

y(dHR) = A × exp(B × dHR)

exp is the natural exponential function.

A widely used set of coefficients is:

Many implementations use a single coefficient set for all athletes. The main structural idea is the same in either case: the weighting grows faster than linearly as intensity rises.

Session TRIMP from average HR

If you approximate a session by its average heart rate HRavg, then:

TRIMP = duration × dHRavg × y(dHRavg)

duration is in minutes and dHRavg is computed from HRavg.

Session TRIMP from a heart rate time series

If you have heart rate sampled over time, the session can be integrated over samples. For a sample interval dtMinutes and a sample heart rate HR(t):

TRIMP = Σ dt × dHR(t) × y(dHR(t))

This version treats hard minutes as hard even when the average HR looks moderate, which matters in intervals and fartlek sessions.

Worked Banister TRIMP example

Assume a 60 minute steady session with HRavg = 150 bpm, HRrest = 50 bpm, and HRmax = 190 bpm, using the men coefficient set.

QuantityValueCalculation
HRreserve140 bpm190 − 50
dHRavg0.714(150 − 50) ÷ 140
y(dHRavg)2.520.64 × exp(1.92 × 0.714)
TRIMP10860 × 0.714 × 2.52

A TRIMP of 108 is a meaningful aerobic stimulus. In most weeks, sessions above roughly 100 TRIMP are the sessions that move your chronic load curve, so treat their placement as intentional rather than incidental. If you stack another comparable session within 24 hours, plan a low-load day after so fatigue does not climb faster than adaptation.

Now compare that to a shorter, harder session with HRavg = 165 bpm using the same HRrest and HRmax.

QuantityValueCalculation
HRreserve140 bpm190 − 50
dHRavg0.821(165 − 50) ÷ 140
y(dHRavg)3.110.64 × exp(1.92 × 0.821)
TRIMP11545 × 0.821 × 3.11

This is the practical consequence of exponential weighting: a 45 minute session can outscore a 60 minute session. Treat the second session as a key day even though it is shorter, and avoid stacking it immediately before your longest volume day unless you are intentionally building a high-stress block.

If you want something you can compute from zone summaries without heart rate reserve, zone based TRIMP variants approximate the same idea with discrete intensity buckets.

Zone based TRIMP variants

Banister TRIMP is continuous, which makes its sensitivity to intensity smooth. Zone based TRIMP trades that smoothness for simplicity, using time in heart rate zones and fixed weights.

Edwards TRIMP

Edwards TRIMP uses time in heart rate zones defined as fractions of HRmax, then applies a zone weight from 1 to 5.

ZoneHR range as percent of HRmaxWeight
150 to 60 percent1
260 to 70 percent2
370 to 80 percent3
480 to 90 percent4
590 to 100 percent5

Edwards TRIMP = (Z1min × 1) + (Z2min × 2) + (Z3min × 3) + (Z4min × 4) + (Z5min × 5)

This approach is easy to implement with any watch that reports time in zones. It is also robust to small errors in HRrest because HRrest is not used.

Lucia TRIMP

Lucia TRIMP defines zones around ventilatory thresholds rather than fixed percentages of HRmax. A common structure is three zones:

Lucia TRIMP = (Z1min × 1) + (Z2min × 2) + (Z3min × 3)

This variant is attractive when thresholds have been measured with a lab test or a high quality field test, because the zones are tied to metabolic turn points rather than a generic percent of HRmax. For threshold concepts that often proxy the second ventilatory threshold, see the glossary entry on anaerobic threshold.

Choosing a TRIMP method

MethodUses HRrestUses HRmaxUses thresholdsBest for
Banister TRIMPYesYesNoContinuous modeling and fitness fatigue modeling
Edwards TRIMPNoYesNoSimple weekly load tracking from time in zones
Lucia TRIMPNoOptionalYesThreshold anchored zone tracking

The most important selection criterion is not the method name. The important criterion is whether the inputs you have are stable and whether the method matches the decisions you want to make.

Individualized TRIMP concepts

Individualized TRIMP methods aim to replace fixed zone weights or fixed exponential coefficients with an athlete specific intensity weighting. The common idea is to estimate a function that maps intensity to cost using measured physiology, then integrate that cost over time.

One pathway is to derive the weighting from a heart rate to blood lactate curve collected during an incremental test. Another pathway is to tie the weighting to measured thresholds and their relation to heart rate. In both cases, you trade simplicity for a weighting that better matches the athlete and sport.

The main practical consequence is interpretation. A given TRIMP number becomes more comparable across athletes when the weighting is individualized, because the model is no longer assuming that a given fraction of HRmax implies the same metabolic cost for everyone.

Once you settle on a session TRIMP definition, the next step is accumulation: turning a history of session scores into a state estimate you can plan against.

From session TRIMP to TRIMP data fitness

A single session TRIMP is a training dose. TRIMP data fitness is an accumulated signal computed from a history of doses, with recent sessions counting more than older sessions.

There are two common approaches.

Exponentially weighted training load

This is the simplest way to turn session TRIMP into a fitness signal, and it behaves like a rolling average with a tunable memory.

Define a time constant tau in days. Then update daily with:

Load(t) = Load(t − 1) + (TRIMP(t) − Load(t − 1)) ÷ tau

Small tau reacts quickly. Large tau reacts slowly.

A common pattern is to compute:

You can treat chronic load as TRIMP fitness, treat acute load as recent fatigue pressure, and treat the difference (chronic minus acute) as a readiness proxy. This signal is not a medical diagnostic, it is a training management lens.

Fitness fatigue impulse response model

Use this model when taper timing matters. It turns your TRIMP history into two exponentially decayed sums, one slow (fitness) and one fast (fatigue).

Using daily TRIMP as the input:

Fitness(t) = Σ TRIMP(i) × exp(−(t − i) ÷ tauFitness)

Fatigue(t) = Σ TRIMP(i) × exp(−(t − i) ÷ tauFatigue)

Here, i indexes past days and Σ sums across them.

tauFitness is longer than tauFatigue. The model then defines a performance estimate:

Performance(t) = baseline + a × Fitness(t) − b × Fatigue(t)

Do not treat Performance(t) as a literal prediction. Use the curve shape to compare scenarios, especially when you are choosing how hard to taper and how many days you need for fatigue to clear.

This is also a clean way to simulate taper patterns. Reduce TRIMP input before a target date and track how quickly the modeled fatigue term drops relative to the fitness term.

Training decisions from TRIMP

TRIMP becomes useful when it changes what you do next week, not when it produces a pleasing chart.

Progression and ramp rate

Pick a chronic load time constant and track its week to week change. Increase chronic load in steps that you can recover from, then insert planned lower load weeks so fatigue does not drift upward for months.

If chronic load is rising and performance markers are improving, the ramp is probably tolerable. If chronic load is rising and performance markers stagnate and subjective fatigue rises, the ramp is probably too steep for the current context.

Intensity distribution

TRIMP is a scalar and can hide the distribution of intensity that produced it. For endurance performance, it is often better to track TRIMP by zone or track minutes by zone in parallel, then ensure the weekly pattern matches your intended training phase.

A practical pattern is to separate:

For context on VO2, see VO2 max and aerobic capacity.

Recovery and deload weeks

TRIMP makes it easy to quantify the difference between an easy week and a hard week. A deload week is not a week with zero TRIMP. It is a week with meaningfully reduced TRIMP, often with short intensity exposures preserved so coordination and economy do not fall.

A simple operational definition is a deload week with 30 to 50 percent lower weekly TRIMP than the preceding loading weeks, adjusted for the athlete and sport.

Peaking and taper timing

If you are targeting a race, you want fatigue to fall without letting fitness decay too far. The impulse response model encodes that objective directly. Even without formal modeling, you can use acute and chronic load to decide timing:

For recovery mechanics that control how quickly fatigue falls, see ultimate recovery plan.

Data quality and common errors

TRIMP inherits all the strengths and weaknesses of heart rate.

HRmax error

If HRmax is underestimated, dHR increases for a given HR and TRIMP inflates. If HRmax is overestimated, dHR shrinks and TRIMP deflates. A guessed HRmax from age formulas can distort the scale enough to make week to week comparisons noisy.

HRrest error

HRrest affects HRreserve. A stable measured resting heart rate is better than a single low value recorded on an unusually rested day. If HRrest varies seasonally, it can be worth recalibrating HRrest monthly or using a rolling baseline.

Cardiac drift

In heat or dehydration, HR can climb at constant power or pace, raising TRIMP even when external work is unchanged. That may still reflect real physiological stress, which is part of the point. It also means TRIMP is environment sensitive and needs context.

Intervals and HR lag

In short high intensity intervals, HR lags the true metabolic strain. A session can feel extremely hard and still produce a moderate TRIMP because the peaks are too short for HR to climb. In these cases, pairing TRIMP with power, pace, or session RPE prevents false reassurance.

Strength training

Heavy lifting can produce low average HR with high peripheral fatigue. TRIMP will often underestimate the recovery cost of strength blocks. Treat TRIMP as one channel, not the entire story.

Practical workflow

The workflow that tends to work for athletes is stable, boring, and repeatable.

  1. Choose one TRIMP method and stay consistent for a full training cycle.
  2. Fix HRrest and HRmax definitions so the scale does not drift from measurement choices.
  3. Track weekly TRIMP, acute load, chronic load, and a small set of performance markers.
  4. Adjust training based on trends across weeks rather than single day noise.

Consistency matters more than method sophistication because the training decisions depend on relative change.

FAQ

Is TRIMP the same as TSS?

No. TSS is an external load model tied to power and functional threshold power, and it is most natural in cycling. TRIMP is an internal load model tied to heart rate and duration. They often correlate in steady aerobic work and diverge in heat, in short intervals, and in strength work.

What is a good weekly TRIMP?

There is no universal target because TRIMP scale depends on HRmax and HRrest definitions and on sport. The useful question is how weekly TRIMP changes relative to your baseline and how that change interacts with performance markers and recovery.

Which TRIMP method should I use?

Pick Banister TRIMP if you want a continuous signal that can feed a fitness fatigue model. Pick Edwards TRIMP if you want a simple zone based weekly accounting. Pick a threshold based method if you have measured thresholds and you want zone definitions tied to those turn points.

Can I compare my TRIMP to another athlete?

You can compare trends and training phases. Comparing absolute TRIMP numbers across athletes is limited by differences in HRmax and HRrest estimation, differences in environment, and differences in sport economy.

Related