“All-in” analysis on the Navigator

CSS is a great measure of Cardiac Stress and, quite naturally, it relies on the athlete wearing a heart rate monitor (HRM) during exercise. However, sometimes we exercise without a HRM and sometimes we want this to “count” towards our overall accrued CSS. This is recognised in the Fit-Fat tab, which makes an estimate of CSS even for activities in which a HRM is not used.

This same estimation methodology has been extended to give an estimate of CSS its components; this is shown on a new All-in tab. Here, you can see four charts:

First, an estimate of CSS that takes into account all activities recorded on Strava, even those where an HRM was not used:

full_css_estimate

Here, the purple mass (technically, a density plot) shows the distribution of estimates amongst all Crickles athletes over the chosen period. We can see in this example that the most common value is at about 2,500, there are quite a few athletes (around 1/5th of the number at 2,500) at 5,000 and even a blip indicating one athlete over 20,000.

The vertical black line picks out the value for the chosen athlete (me in this example), and you can see that in this case the athlete (me) is bang on the most common value.

If an athlete wears an HRM all the time the estimate of CSS will be as good as we can get. Conversely, to the extent that an HRM is not used the quality of the estimate will decline. The second chart shows this quality for the given athlete over the chosen period:

estimate_quality

Again, the purple mass is a density plot showing where Crickles athletes overall lie on the quality chart. Happily, the most common value is at over 90%. About 1/6th of the number at this high value are at zero, indicating that they didn’t use an HRM at all over this period. Again, the vertical black line represents the chosen athlete and again it’s me. I’m at about 87.5% usage. To verify consistency, you can multiply this percentage (87.5%) by the CSS estimate (2,500) we just saw and that will show the CSS that you see on the Relative CSS tab (about 2,188).

Very thoughtful readers may correctly spot that when you’re on a bike with a power meter Crickles is able to give a high quality estimate of CSS even in the absence of a HRM. This is indeed true but this is not reflected on this quality chart.

The third and fourth charts show the components of the full CSS estimate. These are Intensity:

intensity

and average weekly exercise hours:

weekly_hours

The Intensity estimate is subject to the same estimate quality as the full CSS estimate (more HRM usage -> a better estimate) whereas the weekly exercise hours are a simple sum of “moving times” and are unaffected by HRM (non-)usage.

These charts work the same way as the others: for example, the most common weekly exercise time amongst Crickles users over this period is shown by the last chart to be five hours (the peak of the purple mass) and I did fractionally more than that (the vertical black line).

Seasonal time in Zones

The Seasonal tab has now been re-introduced to the Navigator. Now it shows you your time in each heart rate zone for each of the last eight Quarters (subject to your Strava history going back that far). This enables you to see whether you really were base building over the winter and adding intensity in the early season – or doing whatever your training plan called for. It also makes it easy to compare your quarter-by-quarter efforts with those from a year ago.

mseason

The definition of the zones (Z1 to Z5c) are essentially the same as those defined by Joe Friel in articles that can be found online. The main difference from those and similar methodologies is that the Crickles estimate of your Lactate Threshold Heart Rate (LTHR) is calculated adaptively from your Strava data and applied consistently.

You’ll also notice that we have reverted to a light colour scheme for the Navigator and Crickles Charts. The Activities table on the Navigator works much better this way, and sometimes it’s just good to have a change.

3 quick ways to use Crickles

If you’re new to Crickles you can begin by using it for these three quick checks:

Check 1: Gauge your cardiac stress

On the landing page [Relative CSS] of the Navigator select your name in the Athlete: dropdown to get a screen like this:

Navigator

The green bar shows you (me in this example) and where you rank amongst Crickles athletes for accrued cardiac stress over the past six weeks. This is based on activities you’ve entered on Strava with a heart rate monitor. If you’re way over on the right hand side you should be aware that you’re taking on a higher cardiac load than most other Crickles athletes. If you’re towards the left hand side you’re taking on less than the others (assuming that you regularly use a HR monitor and upload your activities).

Personally, I aim to be about where I am here: towards the right but not bang up at the end.

Check 2: Gauge your event readiness

If you have a race or special event coming up in the next few days, go to the Fit-Fat tab on the Navigator to see a page that looks like this:

fitfat

Focus on the black graph: this shows Form. If you’ve been holding at or above about 10 for a few days and you’re now hitting 20-25 you’ll be in great shape for your event. If you’re in negative numbers you’re under-recovered. It’s normal to have negative Form numbers during training but tapering prior to an event enables the Fatigue (the red line) to fall away while Fitness (the green line) can remain high. Form is the difference between the two.

Obviously, if you’ve haven’t been doing any training a taper period won’t help!

Check 3: Compare a specific activity with a friend

If you have someone you exercise with who is also on Crickles, whenever you do the same activity together you can compare your efforts using Crickles Activity Charts.

Again, select yourself from the Athlete dropdown then select the Activity that you did with your training partner. Next, check the Compare another? box and choose your training partner and their record of the same activity. At this point the Metric dropdown will be populated with the set of metrics that you both have available.

chartsIn this example, Sean and I both used HR monitors and power meters so I could select altitude, cadence, kmh, heartrate or watts. Here, I’ve selected heart rate.

You may prefer to choose Distance rather than Time for the x-axis if you didn’t go round together. Here, I’ve checked the Smooth? box too to give a clearer picture.

This enables you to see where you and your partner were putting in relatively more/less effort. (In the example shown, I started off harder then my ride partner, Sean, put in a big effort on the hills in the middle of the ride while I took advantage of a pace car.)

***

If you’d like more info on any of these topics or if you have any questions or difficulties, please get in touch through the Contact page.

Crickles Activity Charts

It’s great to have charts of activity data on Strava and Garmin Connect but there are often times when you want extra capabilities. In particular, it can be useful to compare your efforts at the same event over time or to compare your performance at an event with others who did it with you. Crickles Activity Charts are specially developed for such comparisons. You can find them at charts.crickles.org and they work similarly to the Navigator.

First, choose yourself (or someone else) from the Athlete list and then choose the date range over which you want to search for activities here:

charts_top

The Date range and other controls work as described on the How to notes for the Navigator. Once you’ve picked an Athlete and a Date range the Activity drop-down will be populated appropriately. Note that activities flagged as private will not appear for selection.

Once you’ve chosen an activity two new fields will appear:

charts_metric

One is a View on Strava link; if you choose this the activity selected will appear in Strava in a new window enabling you to confirm that it’s the one you meant to choose and to see context in Strava. The other new field is a drop down list called Metric showing you what graphable data is available for the activity. In this example you can choose from altitude (which is nearly always there) and is measured in metres, cadence (in RPM), heart rate (in BPM), speed (given as kph) and power (given as watts).

This list changes from activity to activity – for example, watts requires you to have used a power meter.

Once you’ve chosen a metric you can also show how you want it to be charted using the x-axis and the Smooth? controls. For comparisons, the x-axis settings of distance and histogram are typically most helpful.

charts_x.pngThe Smooth? control is especially useful for power data, which is noisy. It’s also useful for fields such as kmh and heartrate when a comparison is being made.

Note that Smooth? will transform a histogram into a density plot.

To compare activities you simply check the Compare another? box under the first activity. This then causes a second set of controls for Athlete, Date range and Activity to appear. If you want to compare two of your own activities from different days you just select yourself as both the Athlete and the Second athlete.

Here’s an example of my own, comparing a recent 10 mile effort round Regents Park with a similar effort from last summer. The first activity is shown in blue and the second is shown in pink.

Looking at smoothed power shows that my wattage is quite a bit down:

loops_power.png

(If you’re familiar with power plots you’ll be struck by how little noise there is on this chart – normally power (viewed on a graph) continually oscillates a lot around what we might imagine to be the true signal.)

Second, we can look at a density plot of heart rate on the same two rides:

loops_hr

This shows that on the more recent ride my heart rate was centred on a 160-165 range whereas last year it was rising to the 170-175 bpm range for much of the ride.

The purpose of this example is not to propose that others should choose to ride at lower heart rate and power but to illustrate how these charts can be used to gain insights on your data. You can equally use the same functionality to compare the speeds of two competitors over the same parcours, or even – by charting altitudes – to compare the barometric/mapping fidelity of two devices.

Although not an app, Crickles Charts work well on an iPhone in the same way as the Navigator, as described here.

Only activities from 1/1/2017 are currently available for these charts – please get in touch if you’d like to select from earlier activities.

Improvements to Navigator Activities

If you’ve looked at the Activities page on the Navigator recently you will have noticed some improvements.

Layout and organisation

The columns are centred now, where appropriate, making it easier to read, especially for numeric fields. Also, activities are, by default, sorted by Date with the most recent at the top. It’s also still possible to re-sort, as explained in Using the Crickles Navigator.

It’s now also easier to search through your activities using the Search box. For example, I find this helpful if I want to compare my “Park Loops” rides.

Normalised Power

Normalised Power is now shown for each of your cycling rides where you used a power meter.

View in Strava

You can now also open an activity in Strava from the link in the Strava column.

PLEASE NOTE

The old link to the Navigator (at https://crickles.shinyapps.io/athlete_css_table/) has been online until just now but has not benefitted from any recent upgrades. I have now deleted it as an encouragement to switch to the current version at navigator.crickles.org. There was no functionality in the old version that is not also in the new one.

Getting the Navigator on your phone

I’ve found it very helpful to make the Navigator appear on my phone like an app. Here’s how you do it on an iPhone:

1. Open Safari and enter navigator.crickles.org in the address bar to open the Navigator.

2. Hit the icon at the bottom of the screen that looks like this:

MaxHR by athlete

3. Choose Add to Home Screen.

You’ll need to select yourself – or whichever other athlete you want to look at – each time but that’s easy using the alpha list. On my iPhone 7 the images are readable as either portrait or landscape.

IMG_2677

The same procedure works on the iPad but it’s not quite as neat since Safari retains desktop-like tabs on the iPad and is less app-like.

I don’t have an Android device to test on so I leave that as an exercise for the interested reader.

 

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.