Better heart rate monitor support

11 October, 2012 by David Johnstone

Since a lot of “serious cyclists” don’t have power meters, I have received a number of requests to do more with heart rate data. Therefore, Cycling Analytics is now calculating the TRIMP score for rides, which, in turn, can be used to generate the training load graph for users who don’t use a power meter.

TRMIP, or training impulse, is a metric based on heart rate that is designed to capture the stress of an activity in a single number. The formula used (described below) relies on the sex, resting heart rate and maximum heart rate, so users must enter these values before TRIMP scores are calculated.

Once TRIMP scores have been calculated, Cycling Analytics uses TRIMP scores to generate training load charts. Therefore, a user’s rides page will contain more enlightening monthly summaries, and the main training load chart page is useable.

Image showing monthly summary with heart rate data

This is similar to what a user with a power meter would see, except there is a big gap in the middle where the power curve is shown. Do you have any suggestions for what could fill that gap?

Image showing monthly summary with power data

Note that the STS and LTS — short-term stress and long-term stress — numbers can’t be compared between power derived numbers and heart rate derived numbers.

Cycling Analytics currently always uses power data when it exists, and falls back to using heart rate data when only it exists. This isn’t ideal, especially if you have one ride with power data and a hundred with heart rate data, so something will have to be done about this.

Technical details

Now to get technical. Feel free to skip this. There are a variety of ways to calculate TRIMP, and Cycling Analytics uses the following formula:

sex factor = 1.92 if male, or 1.67 if female

HR ratio = (average HR − resting HR) / (maximum HR − resting HR)

TRIMP = time × HR ratio × 0.64 × exp(sex factor × HR ratio)

This is the same formula as used by Golden Cheetah, which uses the model of Morton and Bannister with the coefficients given by Green et al., although I haven’t found primary sources for this research yet.

Essentially, it’s duration multiplied by an intensity factor based on heart rate. Take a look at [this Wolfram Alpha graph](http://www.wolframalpha.com/input/?i=y+=+x++0.64++exp(1.92+*+x),+x+from+0+to+1) to see how the intensity factor varies over the range of the heart rate — if the average heart rate is the resting heart rate, the HR ratio is 0; if the average heart rate is the maximum heart rate, the HR ratio is 1.

At the moment TRIMP scores are being treated as completely different to the training load being assigned to rides with power data. This makes sense, because they’re calculated in different ways from different data — power data measures what the body does, heart rate measures how the body feels about what it’s doing — yet there can be a noteworthy correlation between the two.

Image comparing TSS with TRIMP

This chart is for a set of my rides, and it has a correlation coefficient of 0.96.

Sometimes a power-meter using cyclist will go for a ride without a power meter but will then want to assign a training load value to the ride (so that the data for the training load graph will be complete). If a high correlation between training load and TRIMP scores is typical for a wide range of users, it would be possible to automatically make a good guess for the training load of a ride simply based on heart rate data. It wouldn’t be perfect, but it would be better than a zero. Stay tuned.

This is the blog of Cycling Analytics, which aims be the most insightful, most powerful and most user friendly tool for analysing ride data and managing training. You might be interested in creating an account, or following via Facebook or Twitter.

blog comments powered by Disqus