Heart Rate Regularity

Mark and I quite often get asked about suspicious heart rate readings by people using Crickles. Often these are probably just Garmin/strap errors: the majority of our population occasionally see heart rate values that look wrong…


The chart shows the distribution of maximum recorded heart rate by athlete. 62% of athletes show a maximum HR over 200 bpm, for 36% it’s over 220 bpm and the maximum to date stands at 365 bpm. These values are dubious. Data cleaning is therefore an important part of Crickles algorithms.

While it is not an aim of Crickles to train algorithms to give a medical diagnosis of heart problems, we do flag when activity data looks unreliable for use in quantifying the cardiac stress score (CSS). The Activities page on the Navigator now shows a new column called Diagnostic. This is only populated for activities where a heart rate monitor was used – if not, it appears blank. (It may also very occasionally appear blank for other reasons.) Where a Diagnostic value appears it will be one of the following:

  1. Check_Strap – it looks probable that there was a recording error and the heart rate data for this activity is wrong;
  2. Irregular – the heart rate data stream looks questionable but Crickles cannot reliably ascribe this to a strap error;
  3. Regular – the heart rate data is good for use in the measurement of CSS.

This algorithm that produces this diagnostic does about as good a job as I can do by eye at identifying odd-looking data streams, and (unlike me) it can do this consistently on the hundreds of thousands of activity records in Crickles. However, it is not in any sense a medical diagnosis and the appearance of only Regular values is no guarantee of good health.

When Crickles athletes email us with concerns about their cardiac health I do sometimes opine on how relatively un/usual the data may look but the medical aspects of such questions are always addressed by Mark, who is a cardiologist. Mark can look at the data in the context of symptoms, such as chest pain or fainting, and the athlete’s medical history.

To explore any Check_Strap or Irregular activities you may have, on the Activities tab you can:

  • Change the Date Range in the side panel to select the time horizon you want to explore;
  • Use the Search box on the top right of the screen to pick out Check_Strap or Irregular values;
  • Use the small triangle next to Diagnostic to sort your activities by Diagnostic.

The Regularity page has had a make-over to show the frequency with which Irregular values occur. Previously only available as a beta feature by request, this page now has two charts. The one on the right is the chart that was present previously:


This shows whether your recent aggregate heart rate pattern is different from its historical pattern. Significant changes such as that shown can be due to an intentional change in your exercise regime – for example, reducing the intensity of exercise. If the gloss at the top indicates a significant change with sufficient data for a valid comparison (as here) but you haven’t knowingly modified your exercise habits it may be worth digging in further.

This chart responds to the three checkboxes in the side panel, as before.

The left-hand chart on the Regularity tab is new:


This shows quarter-by-quarter how often you’re getting Irregular as the Diagnostic for your activities on Crickles. As with CSS, there is no firm science on what constitutes a good value but what we can do is show how you compare to the (Crickles) crowd. Values above the two orange lines, and especially the solid orange line, are unusually high.

The size of each quarterly point indicates how many activities contributed to it. A high Irregularity Ratio is less meaningful when it is derived from only a few points. As a guide, 30 points can be taken to constitute a good sample. The gloss above the chart tells you exactly how many Irregular diagnostics you’ve had in the current quarter, and, for good measure, the number of Check_Strap diagnostics (which is not shown on the chart).

If you consistently see an Irregularity Ratio above the orange lines based on a meaningful number of activities, it’s worth changing your heart rate strap. If you continue to see a high ratio, we’d be interested in hearing from you.

While Irregularity Ratio is a useful measure for data verification, there is no science that establishes an association with cardiac health. Intriguingly, a number of our active athletes have filled in the Crickles survey and, amongst these, the average Irregularity Ratio happens to be 56% higher in athletes who report a diagnosis of Atrial Fibrillation than amongst those who don’t. However, to attain significance in a statistical test – or to find that it’s a coincidence – we’d need many more people to fill in the survey. If you haven’t done so yet, please do so here. The survey is super-quick to complete and all responses are equally useful, even if you have only good health to report.

Enhancement to the Timeline tab

There is now a new feature on the Timeline tab that enables you to see the name of the activity corresponding a point on the chart. When you look at the Timeline you’ll see a new “Click on a point to see the activity name” annotation in the top left:

Timeline activity

If you single click on the centre of one of the points on the chart that annotation will instead show the activity name. You have to be quick as the name will disappear after a moment – if you didn’t catch the name you’ll have to click again!

If you never name your activities on Strava then the names you see here will be generic – “Morning Ride”, for example. The feature is only really useful if you’re in the habit of giving your significant activities meaningful names.

This feature does not, of course, work on the aggregated monthly view of the Timeline.

Enhancement to Relative CSS

When you now look at the Navigator you’ll see that the colour scheme on the Relative CSS tab (where you normally first land) has changed: the bars other than the one representing you are pink rather than blue. This reflects a change in the default methodology to include all activities and not just those for which heart rate information is available. In the absence of data from a heart rate monitor, Crickles estimates cardiac stress from a power meter if one has been used (this is a good estimate), and in the absence of both heart rate and power data Crickles falls back on an estimate based on observed averages (this a poorer estimate, but better than ignoring those activities altogether).

CSS pink

If you want to go back to the old style, giving you analysis based only on activities with heart rate data, just tick the new Require heart rate data? checkbox in the side panel. This will revert to the previous methodology and the bars depicting other athletes will once again be blue.

HR checkbox

If you use a heart rate strap less than the general Crickles population, the new (pink) methodology will tend to move you further to the right of the distribution. Conversely, if you use a heart rate monitor most of the time you’ll tend to move to the left as the activities of non-monitor wearers are added in.

You can see the numerical impact of the change by looking at your change in Cardiac Stress value on the y-axis.

This does not affect any tabs other than Relative CSS.

Aggregate Monthly Timeline

The Timeline in the Crickles Navigator shows your Cardiac Stress for each activity in the selected Date range. There is now a new feature that enables you to see your aggregate Cardiac Stress month by month. To select this visualisation, when you’re on the Timeline tab check the Aggregate monthly timeline? checkbox in the side panel. Then you’ll see a chart like this:


Each point on the chart now represents a whole month rather than a single activity. Also, the x-axis here doesn’t depend on the Date range but reflects the full extent of your history loaded into Crickles. The first point of every year – the one that sits exactly on the vertical year line (e.g. the first point in the figure, which lies on the 2015 line) corresponds to January and the last point, which sits before the start of the next year, shows the December value.

The points are still coloured by Cardiac Intensity and sized by Hours of moving time, as on the normal Timeline. However, since aggregating by month tends to even out differences, the size scaling is emphasised on the Monthly display.

This new chart gives you the ability to identify your easier and harder months, and to see at a glance how the Cardiac Stress accrued in a particular month arose from duration   versus intensity of exercise. For example, in the figure you can see that after a month of very low Cardiac Stress in October 2016, the two months following saw a return to higher levels, generated by greater intensity – this was due to the increased difficulty of achieving previously normal performance after a period of de-training.

Obviously the last point on the chart will normally reflect the current month so Hours (indicated by size) and also the level of Cardiac Stress will tend to be lower than normal until the month comes to an end. There is no correction for shorter/longer months.

To compare your results with others, use the Compare Groups? checkbox. This brings the Group dropdown into play, giving you the ability to compare your monthly Cardiac Stress to all other Crickles athletes, or to sub-select based on your gender or age:


The larger the group you compare to the more Intensity will tend towards mid orange and the less variability there will be in Hours. You will also notice a seasonal trend with a high in Summer and a low in Winter (so long as the Crickles cohort remains heavily weighted towards the northern hemisphere!).

Closest in Age

To view results on the Crickles Navigator you are now required to provide your Date of Birth. This enables us to run heart rate analysis based upon age and is needed for some of the features that we plan to introduce.

More immediately, it gives you the ability to compare your Navigator analytics with those of people who are close in age. To do this, simply pick Closest in age from the Group dropdown. This then compares your results to those of the athletes who are are closest in age to you:

Closest in age

The number of athletes who appear in light blue will depend upon the number who have signed up and disclosed their dates of birth at the time (as well, of course, upon the selection algorithm, which may change). The label in the top left of the chart shows the percentage of the Crickles population that are included in the Group selection. This now appears for all Group choices apart from All.

The Closest in age comparison applies to all of the tabs for which the Group choice is generally relevant. At the time of writing this is the first four, viz: Relative CSS, Relative profile, All-in and Summary. For each of these you can now compare your values with those of age-similar peers on Crickles.

For example, on the Summary tab when I select Closest in age I can see that my Current LTHR is at the 81st percent for my age group, whereas it’s only at the 59th percentile for the overall Crickles population (not illustrated here but can be seen by setting Group to All):

Closest in Age Summary

The identity of the athletes who are picked out as close in age is not disclosed on any o the tabs, nor is your identity disclosed to others when you appear as a comparison for them.

Change to the Fit-Fat charts

The Planner introduced a version of the Fit-Fat charts that, rather than looking backwards, projects forward into the future. Since its purpose is to assist with fitness planning, the Planner introduces High Fatigue warning lines to show when a proposed training load would push the athlete to a level of Fatigue that would be high for the athlete and/or high for the entire Crickles cohort.

This presentation of Fitfat charts is now available on Fit-Fat itself. Here’s an example with a Date range from 1/Nov/2017 to 7/Apr/2018:


This works well with short to medium Date ranges. Over a longer Date range the Fatigue, Form and Fitness lines can become unhelpfully overlapping. Also, the High Fatigue lines become somewhat redundant: in the limit, if you sample all of your available data by pushing the start of the Data range back to 1/Jan/2015 you get a very good view of how your current Fatigue compares to its historical levels without the need for the warning lines. Accordingly, for longer Date ranges the Fit-Fat display reverts back to its previous form. The cross-over occurs at around six months. In the example above, we can see this happen if the Date range is nudged one month further back:


Over this time horizon of around six months there’s not much to choose between the two views. The more stripped down format works better as the length of the Date range increases and the new format taken from the Planner works better over shorter horizons at which you lose the long-term picture.

Fitness planning with Crickles – UPDATED


What is written below correctly describes the Planner functionality but there are a couple of new updates since this was written, namely:

  1. Forecast method. For athletes for whom Crickles has uploaded at least a year of data there are two new Forecast methods for projecting your exercise load. The method described in the post below is now called Average based on Date range. The first new method is called Trend. This takes your average CSS per day from exactly one year before the forecast period (which is from now to your chosen Target date) and scales this up or down according to your current v. last year prior exercise load. The advantage of this over the Average method is that it accounts for both seasonality and year-to-year trend, which are typically very significant factors. Like the Average method, this generates ‘per day of week’ exercise load that you can adjust to suit your training programme. The second new method is called Repeat block from the past. When you choose this you’re prompted to enter a Start date to repeat from. Given this, the actual exercise loads that you incurred from that start date are projected forward from now to your Target date. For this method the adjustable per day of week levels do not appear. This enables you to see exactly how your Fitness, Fatigue and Form will evolve between now and race day if you repeat a training block from the past.
  2. Taper periods. The default taper periods described below were taken from analysis of the tapers of successful marathon runners prior to a marathon. These allow for a substantial amount of recovery and lead to very high Form levels on race day at a cost to Fitness (which is the point of tapering). These defaults have been changed to levels that are recommended for (and typical of cyclists) – a two week instead of a three week taper and of more modest extent. Of course, you can freely set the Taper levels as you see fit and this only affects the defaults.


The Crickles Fit-Fat tab shows you how your Fitness, Fatigue and Form have evolved based upon the Crickles model for Cardiac Stress. Now, you can also use the new Crickles Fitness Planner to anticipate how Fitness, Fatigue and Form will respond to a training programme geared towards an event. This is accessed on the Planner tab.

Entering the data

When you first visit the Planner you’ll see that the sidebar changes to the following:


Target date defaults to today + 3 months. You should change it according to your fitness planning horizon – say the date of your next significant athletic event. (It won’t accept a date less than one month into the future.)

The Sundays to Saturdays fields in the CSS Regime section are populated with your average CSS (actually your ‘extended CSS’ or XSS) for each day of the week sampled over the Date range. In this screenshot, I’ve extended my Date range back to 01/01/2015 to get a longer-term sampling period. You should adjust these numbers to reflect your planned training programme over the period up to your event. It’s best to do this using typical observed CSS values from the Activities tab. For example, in my case my usual park loops on a Wednesday or a Saturday park run will each score me about 40 CSS points; an hour on the turbo will typically get me 80; and a weekend club ride or equivalent might score about 320. Of course, if I want to increase my Fitness I’ll have to do more than I’ve done in the past!

The three Taper period fields enable you to specify how you plan to step down your exercise in the three weeks leading up to the target date. The fields are pre-populated with typical percentages – e.g. a reduction to 70% of a normal training week in the third week before the target date – and you can change these if you wish.

As you change all of these values the charts will change accordingly.

What you should aim for

The general aim of a Fit-Fat-Form training programme can be summarised in three principles:

  1. Add training volume to increase Fitness
  2. Taper before your event to flush out Fatigue and hence increase Form
  3. Don’t take on so much exercise load that your Fatigue gets to unhealthy levels.

Of course, there are many other important factors too such as working on strength and flexibility, managing any medications you may be taking, and balancing non-exercise factors such as diet, workload, travel and sleep; these lie outside the scope of this tool.

There is no established science on correct or optimum levels for Fitness or Fatigue. However, you can see if your own Fitness is increasing, staying flat or falling. Regarding Fatigue, the charts show you two useful levels as horizontal dashed red lines:

  • What is a high Fatigue level for you. This is calculated from your 90th percentile of Fatigue over all of your data on Crickles.
  • What constitutes a high Fatigue level for all of the athletes on Crickles. This is calculated from the 90th percentile of the 90th percentiles of each Crickles athlete.

Each of these two levels is marked on the Planner chart. As a fact of statistics, most of us will find our own high Fatigue level lies at a smaller absolute value than the high Crickles Fatigue level. When you train hard and do tough sessions you will occasionally push yourself beyond your own high Fatigue level. However, when planning a training programme if you see that your Fatigue levels are sustained for several days at a greater negative level than your high level, and especially if they are also sustained beyond the Crickles high level, it would be prudent to build in more recovery days.

So with reference to the three aims of the Fit-Fat-Form programme given above, you want to see that:

  1. Your Fitness at the target date is higher than it is today
  2. Your Form at the target date is comfortably positive – ideally at levels of 25 or more for the days leading  up to your event
  3. At no point during the course of the programme is your Fatigue hanging for days on end below the high lines, and especially not below both lines.


The longer you give yourself to train, the easier it will be to meet all three of these training goals. Over three months it is certainly possible, and over a longer period it is easier. To take my numbers given on the input panel above as an example, if I project forwards based on no change except for a taper period I’ll find that my Fitness at the target date is lower than my Fitness now, while my Form will be much higher/better: both effects are simple consequences of the taper period. However, if I increase my average exercise load on Sundays from 131 to 250 while leaving all other values the same I’ll get this:


My Fitness increases by about 10%, my Form is nicely high leading up to the target date and although my Fatigue sometimes dips below my own “high level”, it never stays there for long; moreover, my Fatigue never falls below the “Crickles high fatigue” level set by our hardiest athletes.

A final thought

There are limitations to any model and, as I’ve noted, there are important health and fitness factors that are not addressed at all by this kind of model. However, the Crickles methodology for assessing cardiac stress is robust and can be applied consistently to any form of exercise (although the estimate quality is reduced when heart rate is not captured). Furthermore, if you set a CSS-based exercise programme using this approach and stick to it then – as a mathematical fact and not just with the vagueness of an estimate – your Fitness, Form and Fatigue on the target date will be exactly as they were projected to be at the start of the programme!


Strava have lost Friends

Recently Strava’s API for getting Friends has stopped working. This hasn’t only affected Crickles: numerous other app developers are reporting the same problem. There is no information about this on the Strava developers site, which still reports the same protocol for accessing Friends data, so there is no way of knowing if it’s an unintended bug or a planned removal of functionality. Strava are not replying to Support queries on the topic.

Whether/how Friends-style comparisons will be supported if Strava don’t fix their API remains to be seen. Please let me know if you have views on its desirability.

UPDATE – Strava are not restoring this functionality hence the Friends groupings in Crickles are, for the time being, stuck with only the friends known as of the date before this was withdrawn.

Thanks, Ian

Logging on to Crickles

Prominent amongst the latest batch of enhancements to Crickles is the introduction of user credentials: you now need a password to access the Navigator. The log-in screen looks something like this


On your first visit, you’ll only see the Username (Strava ID): field at first. The Strava ID that is needed is not the email address or Facebook ID that you use to log onto Strava but the number that Strava uses to key your data. In my case, for example, it’s 301194, as in the figure. To find your Strava ID, go to the Strava website and find “My Profile”. On the Strava website, it’s currently found in the pull-down menu next to your photo on the top right of the screen.

Once you have selected this, the top of the browser window will look like this:

strava address

You can see from the figure that the Strava ID (301194 in my case) is at the end of the URL in the address bar.

Once you enter your Strava ID, if you haven’t yet authorised Crickles to access your Strava data a link will appear where you can do this. Alternatively, you can do so at:


Then, if you haven’t got a password yet, hit the Request password button. A password will be emailed to you and it should arrive more or less instantly.

If you wish, once you’ve logged on you can create your own password. As well as being potentially more memorable, this is also more secure. Although the password generated by Crickles is encrypted, it has necessarily passed through email servers en route to you, unlike a password that you choose for yourself.

You change password using this screen:


You get to it by checking the Change password? checkbox in the side panel. If you’re on the screen and decide that you don’t want to create a new password, simply uncheck the box. Once you’ve changed the password you’ll need to re-enter it to log in.

After you have logged in you should not usually need to do so again on the same device. (If, though, you have disabled all cookies in your browser you’ll need to log in every time.) The way that credentials are shared between devices, and whether and how passwords are cached, will depend upon your device, your browser and your settings.

Significantly, no one can now see your data on Crickles without logging in as you. Your Strava Friends who are also on Crickles can compare various aggregate CSS measures and compare charts of activities that have not marked as Private on Strava, but the detailed information that you can see is now just your own.