Those high heart rates you sometimes see…

The frequency of very high heart rates

A standard guideline for your likely maximum heart rate is 220 – your age. For example, someone aged 40 would be expected to have a maximum heart rate of about 180 bpm. Contrary to my belief before I started learning more about this, there is no evidence that maximum heart rate increases with fitness. It is therefore surprising to see how often heart rates much higher than this rule predicts appear on our Garmins.

In the Crickles cohort, which currently includes six women and 34 men, the maximum heart rates each of us has recorded on a Strava activity are as follows:

MaxHR by athlete

Since none of us (to my knowledge) is younger than 20, it is surprising that the majority of us have recorded heart rates of over 200 and for many of us our Garmins have at least once shown a heart rate much higher than that.

Should we be worried? The first thing to say is that the vast majority of these high heart rate readings are, we believe, strap errors. We now have access to well over 10,000 Strava activities on which the athlete used a heart rate monitor. Almost exactly 10% of these activities include a heart rate of 200 or greater. However, when we filter this to activities in which the high heart rate is reasonably sustained, it boils down to only 65 (at the time of writing). If the heart rate monitor always gave true readings, at least most of these 65 activities would warrant further examination. One third of the Crickles cohort has at least one of them to their name, and it’s fair to suppose that the Crickles group is reasonably representative of the community of very active amateur cyclists and runners.

Strap errors?

However, our sports heart rate monitors do not always give true readings! So how do we know whether a reported heart rate of, say, 225 bpm reported on our Garmin corresponded to our true heart rate or was an error from the strap? This is a question to which Mark, the Crickles cardiologist, and I have paid much attention. Let’s look at three examples…

First, here’s a recent activity of my own. Paula and I were cycling up and down the central mountain of La Gomera in the Canary Islands and my Garmin showed this:

gomera

On the ascent, it shows my heart rate as rock steady on 215 bpm. It stays at that level for the start of the descent, while we freewheeled to a cafe a little way down the hill. There, with my Garmin still showing 215 bpm, Paula took my heart rate at my wrist and found it to be 70 bpm. After our coffee stop, on the remaining descent the heart rate shown on my Garmin rose further and then fell but was still displaying over 170 bpm when we got to sea level. There, I swapped my strap for Paula’s identical Wahoo Tickr, which reported my heart rate to be half of what my own strap showed. This is a clear and complete strap failure!

Here’s our second example:

contact

We see that the rider began on an easy downhill and yet his heart rate is very quickly being reported at around 250 bpm. Just after 10 minutes there’s another spike but still the cyclist has put in little effort and again it’s on a downhill stretch; also this one is short-lived. We see many spikes like this and ascribe them to probable contact errors with the strap: the athlete may well not have built up a sweat yet and there could well be a fluttering effect on the descent. We see a third spike at just over 30 minutes. This occurs at a time of greater wattage but is also short-lived.

Here’s our final example:

ventoux

This time the athlete is progressing up a renowned arduous climb when at almost two hours into the ride his heart rate rapidly rises and stays in a range of around 200-220 bpm before rapidly falling again. While nothing is certain with sports equipment, this does not have the appearance of a strap error and merits attention from the athlete.

Going robo

When we first started Crickles we classified heart rate spikes by coding rules that encapsulated the patterns that we saw. Now that we have much more data we can use techniques of data science. The original rules have been decommissioned and now heart rate spikes are classified fully algorithmically. Does it work? It’s a developing art but already the algorithm can pick out the most concerning spikes, group together the spikes that look like contact errors and identify that the complete strap failure of our first example stands apart from all the other spikes. It also groups together other patterns that I haven’t covered here reasonably well. In short, it can analyse well over 10,000 activities, find the sustained heart rate spikes and group them as well as a lay human eventually could – all in a couple of seconds.

The work currently in hand is to improve the machine classification of spikes to capture more of Mark’s expert insight and fully utilises all of the data available in the Strava records. If everyone was a cyclist with a power meter and a reliable heart rate strap that would be much easier, but we cater for runners and rowers too and sports straps just don’t come with medical-grade quality.  We can already see that algorithms are better able to disentangle these factors than humans, especially as the volume of data increases.

It would be great to have more athlete data. For example, we so far have only one complete strap failure like the first case above. While the algorithm can easily identify it, if we had five times the amount of data and five complete strap failures we could be more confidant that the machine would correctly identify them every time. The best way you can help us is to encourage more people to sign up, either from the sidebar on this site or directly via signup.crickles.org.

When high heart rates matter

A different kind of question is how we should alert Crickles athletes to spikes that merit further attention. Currently I do this informally – but I don’t even have contact details for everyone who has signed up to Crickles. I cannot foresee that we will post such information online, at least while we have a fully open platform. It’s an important question because this analysis may potentially flag the occasional issue at a stage when it can be addressed through a reasonable change in the athlete’s exercise programme but that may later require a more dramatic decrease in exercise and/or a medical solution.

Until we have a way to communicate information about spikes, please feel free to get in touch through the Contacts page (or directly) if you have any concerns about your own high heart rate readings.

For the large majority of athletes we’re likely to find no cause for concern in most high reported heart rates. Health issues aside, continually improving the Crickles data cleaning logic will help us to keep producing better quality training metrics than are available from all the platforms that overlook the problem.

The Navigator has moved!

Today the Crickles Navigator moved to navigator.crickles.org. The links to the Navigator from this site have all been updated. If you have an old link bookmarked please replace it. Updates, including the addition of new athletes, will not be retrofitted to the previous version and I expect the old link will soon stop working.

The reason for this move is to migrate the Navigator to Amazon Web Services, which has several architectural advantages and in the short term also avoids some costs now that usage is increasing.

Relative CSS on the Navigator

The Crickles Navigator now has two new tabs: Relative CSS and Relative profile. These enable an athlete to compare their cardiac stress and its component with other athletes over the period defined by the date range (which currently defaults to six weeks).

Relative CSS ranks athletes on Crickles by total Cardiac Stress Score over the chosen period. Athletes at the high end may wish to consider whether they have built adequate recovery into their training plans, especially if they find themselves consistently accruing more cardiac stress than peers.

The obvious reason why one athlete’s total cardiac stress can be higher than another’s is that they’ve simply done more activities. However, it may also be that their activities are on average longer and/or done at higher intensity. Both duration and intensity can be explored using the Relative profile analysis. This comprises two density plots. The first chart shows the distribution of duration of the activities in the period. The green area plots this for the selected athlete, while the blue area shows this for the rest of the athletes in Crickles (excluding the athlete selected): for example, if there’s a large bulge of green over to the left of the blue area it will indicate that the chosen athlete does more short rides than the other athletes.

The second chart on Relative profile is a similar plot for intensity. This chart also has a dotted red line to highlight rides where cardiac intensity exceeds 100. This isn’t a “magic number” but large differences between the green and blue areas to the right of this will be indicative of how frequently athlete activities (in green) reach the highest cardiac intensities compared to activities of the rest of the Crickles cohort (in blue).

Using the Crickles Navigator (updated)

Anyone with a Strava account who has signed up to Crickles can see analysis of their Strava activities on the Crickles Navigator. Here’s how to use it…

First, choose an Athlete from the drop down list. Unless you asked me to change it, you’ll be identified on the list by your first name followed by your StravaID in brackets – for example, I’m Ian (301194). Your name can be reached quickly on the list by typing in the first letter of your name (e.g. “i” in my case). When you return to the Navigator (using the same device), the Athlete you last chose is remembered.

Next, if you want to navigate and compare only those athletes who share your gender or are in one of the clubs supported by Crickles you can do so by selecting it from the Groups dropdown. If you know of a club, or a group of friends, with members in Crickles whom you’d like to see as a group, or if you want to change the membership of one of the groups, please let me know. Even if you are in one of the groups, it can be useful to compare your CSS against the entire Crickles population (“All”) too.

The default page on the Navigator is now Relative CSS, which is described here. There are also several other pages, which appear as tabs. Most of the pages are incomplete until you’ve chosen an athlete. Once you do so, your activities over the past 6 weeks for which Strava has heart rate data are loaded into the Navigator.

If you want to see activities over a period other than 6 weeks, change the Date range in the left hand sidebar under Athlete. Once you get used to the date controls it’s fast to make a change. For example, if you want to set the range to start on 1st Jan, 2015 (currently the earliest available date) click in the first date field to get a widget like this:

calendar

If you click on the month/year at the top (December 2016 in this example) the widget will change to something like this:

cal month

You can hit the <<‘s at the top left to change to 2015 and then click on Jan to see a calendar for Jan 2015, from which you can select 1st Jan, 2015, as required. Play with it; it’s easy.

As you change the Date range (or indeed the Athlete) most of the results pages will update to reflect your choice.

On the CSS Map there is a dot for each activity. The size of the dot represents the duration of the activity (Moving Time on Strava) and the colour represents Cardiac Intensity. Cardiac Stress Score (CSS) is given by the vertical position on the map shows the components of CSS and the x-axis represents time.

If you want to see more detail on the activities that are shown on the CSS Map look at the Activities tab. The easiest way to explore this is to click on the column headings. For example, if you want to sort by date, click the Date heading:

cal date

Clicking it more than once alternates between an ascending and a descending sort order and the little arrows change accordingly. For example, if you see this, it shows that the table is sorted by Date in descending order:

cal date descending

You can do the same on the other columns too – for example, to find the activities with the largest CSS or HR Intensity just click on those headings until you get them in a descending sort. I’m afraid the column centring on the table isn’t great.

The This week tab shows the five most active athletes over the past seven days plus yourself (or whichever athlete you chose) if you’re not in the five most active. The athletes are colour-coded on this map and in addition activities of the chosen Athlete (typically you) appear as a triangle rather than a dot. This week does not respond to changes in Date range.

If you constantly find that your CSS values are higher than everyone else’s you might want to consider whether you’re overcooking it. It can also be interesting to compare CSS with other that of other Crickles athletes when you do the same event.

Like the CSS Map and Activities, the Fitness tab is also blank until you choose an athlete. When you do so it will chart the Crickles’ estimate of your (or the chosen athlete’s) Functional Threshold Power (FTP) and Lactate Threshold Heart Rate (LTHR) over the Date range. FTP only appears to the extent that you have cycling activities with power readings on Strava – no FTP, no green power line. LTHR is calculated from any activities (not just cycling) for which you’ve used a heart rate monitor – no HR, no red LTHR line. The Fitness tab will be re-drawn whenever you change the Date range. The earliest date for which Fitness can be shown is also currently 1/1/2015. (At the very start of this period the estimated FTP and LTHR values may not be reliable until sufficient athlete data has been captured.)

The Seasonal tab is (currently) up to eleven charts for the chosen athlete, reflecting the time spent in each HR zone for each three month season since early 2015. Like This week, Seasonal responds to the Athlete that you choose but not to the Date range.

Newer tabs give (1) a picture of your relative All-in position, as described here:

“All-in” analysis on the Navigator

and Summary values, together with a comparison of how each such value compares with the overall Crickles population or a chosen group, as explained here:

New Summary tab for the Navigator

Activities are read from Strava every few hours so may not be up to the minute with your latest uploads. The time of the last upload is shown in the side panel.

Please let me know if you should see anything wrong or missing.

If you’ve signed up to Crickles but you don’t want your activities to appear on Navigator also let me know and I’ll take them off; I’d rather you didn’t but it’s always your data!

Z2 Challenge – results so far

I thought the Z2 challenge would be easy. To date, four of us have done it and it seems not to be. Here’s how it stands with Mark in pink, Sean in gold, Stuart in blue and me in green (all based upon the last 50 minutes of the session):

z2-challenge

Conveniently, we all chose target heart rates that were far enough apart to generate largely non-overlapping distributions.

There are a few ways to measure the tightness of the distribution (other than by eye). The metric that I’ve chosen is to sum the absolute value of beat-seconds away from the mean heart rate over the period. When divided by 3,000 (50 minutes), this gives 2.0 for Mark, 2.5 for Sean, 3.0 for Stuart and 1.4 for me (lower is tighter/better). That’s an average in my case of 1.4 beats away from the mean. Of my 3,000 second-by-second HR samples fewer than 25% were bang on my target value of 140 bpm.

A few more of you have said that you plan to have a go at this (and I foresee a couple of re-tries from us four). Come on, people someone has to nail this!

How to quantify “Exercise dose”

Exercise has unparalleled efficacy in the prevention of a broad range of diseases and ailments associated with aging. There is, though, increasing concern that our generation of endurance athletes is the first in which so many people have systematically engaged in such punishing exercise activity so frequently over so many years. The consequence of this appears to be an increasing prevalence of arrhythmias in middle age: if exercise is a drug, our dosages may be dangerously high.

Cardiac Stress Score (CSS) is a metric that quantifies exercise dose. As well as looking at the absolute level of CSS, it is worthwhile to look at its components: Heart Rate Intensity and Exercise Time. Typically, in the off season we aim to spend a relatively high amount of time at a relatively low level of intensity. For example, here’s how the intensity and CSS of my own rides (I was only cycling) changed in the months from March to July in 2015:

2015_season

On the chart each vertical oblong represents a month, given in the header; each green point represents one activity; point size reflects the CSS; and position on the HR Intensity/Hours plane shows the components of CSS.

In March all but one of the rides is at low intensity (<0.6) although the exercise time ranges up to 5.5 hours. Over the next few months the intensity and number of rides both increase until by July the intensity is consistently over 0.8, even for longer rides.

This illustrates how CSS and its components of HR Intensity and Exercise Time can be used to plan and track cardiac stress, both in absolute level (CSS) and intensity (HR Intensity squared). The same information is also available (not shown) as a listing, giving the CSS and other attributes for each activity recorded on Strava.

Here’s how the year to date activities map out for several of our test cohort (each athlete is shown in a different colour in their own mini-chart):

time-v-hrint_sq

As expected, no one has gone mad yet: last year we collectively managed almost 20 activities with CSS of over 500, with the highest at almost 800. This year we have so far only accrued six activities with CSS over 300 and the highest level yet is under 400.

The activity profiles of the athletes vary. For example, Simon L is riding at a consistent intensity of around 0.9 over a wide range of times (one to four hours), while Paula has notched up many rides and runs within a narrower time band at a wider range of intensities.

Speaking for myself, the high-intensity bike rides reflect hard efforts rather than high power. In fact, it feels as though I’ve been over-reaching since Christmas and for the next few weeks I’ll be backing off a little, keeping my Garmin on but not looking at the screen. I’m happy to let the CSS rise but through longer, easier rides. On the chart, these may be of reasonable size but displaced to the left.

Z2 Turbo Session Challenge

It’s hard to be motivated for a low intensity base-building turbo session. Here’s a challenge to add some interest and focus…

Pick a day between now and next Sunday for a turbo/spin session; with the temp still ~0 it’s a good time for it. Set a personal target HR. For a Z2 effort I’d suggest 85% of your current LTHR (I can give you my estimate of your current LTHR). Do an hour on the turbo and try to stick to the target HR. When you’re done let me know and I’ll analyse your ride. The aim is to get the tightest HR distribution around your target level. In the calculation, I’ll discard the first 10 minutes of the hour so you can set your Garmin going straight away.

Visually, you’re looking for the histogram, which will look something like this, to get as narrow as possible:

z2-hr

Top tip: Although this isn’t a power challenge, using a power meter will cause your Garmin to sample more frequently so you’ll get a more sensitive, less blocky HR reading.

Welcome to Crickles

Keen athletes like to train hard, and frequent exercise is great for your health. However, it is necessary to balance training with recovery, and the harder the training the more recovery is needed. Recovery gives our bodies time to adapt to training and thus to become stronger and fitter. For endurance exercise, recovery also works for the heart. There is increasing evidence (see The Haywire Heart box) that endurance athletes are prone to arrhythmias that may be incapacitating. Building recovery into your training regime is a sensible precaution to reduce such risks.

Through this website we provide tools to measure the cardiac stress from exercise in a consistent way. One aspect of this analysis is the systematic analysis of heart rate spikes. This attempts to screen out known failings in popular heart rate monitors that often cause incorrect high heart rate values. Conversely, the analysis also aims to flag spikes that may provide an early indication of potential atrial fibrillation.

Another tool that we use is the Cardiac Stress Score (CSS). Unlike all other such measures  of which we are aware, CSS:

  1. accounts for spikes and other anomalies in the heart rate data;
  2. does not depend upon user input values – such as maximum heart rate, Lactate Threshold Heart Rate and Functional Power Threshold – that rely upon measurement protocols and change over time. Instead, we estimate these values from your Strava data;
  3. is directly comparable across activities, exercise types and athletes. This enables you and your Strava training partners to compare your efforts;
  4. can – for cyclists using a power meter as well as a heart rate monitor – be used to track fitness from the relationship of patterns in heart rate and power data.

At the time of writing, this analysis has been calibrated on a year’s worth of activity from a group of 14 keen athletes, all of whom cycle.

Content and tools will be added to the website over the coming months.