crickles model update

This week a revision to the Crickles model for cardiac stress is being rolled out. This retains the same characteristics as the current model so that Cardiac Stress and related metrics such as Fitness and Fatigue remain consistently calculated – unlike with some other sites, you won’t find that training load and fitness measures vary dramatically according to whether you use a power meter, a heart rate monitor or both or neither.

The main driver for the revision is that we originally relied on information from papers and public sources pertaining to the shape of critical heart rate and power curves. In this revision those curves have been now determined from hard data, using orders of magnitude more observations than most, if not all, published sources.

The changes will filter in over the coming weeks. In general, more weight is now given to shorter activities as well as to activities that break prevailing intensity levels. You may notice that CSS scores tend to rise a little, especially if you do a lot of short, intense activities. Conversely, LTHR estimates may tend to reduce. These are average population effects and your particular data may be different; it is also likely that you won’t notice any change. FTP estimates are somewhat problematic due to the de facto quasi-standard of reporting FTP as 95% of 20 minute critical power (CP20) rather than proven 60 minute critical power (CP60). To side-step this, as the new calibration plays through we will replace FTP curves with CP20 curves.

Please do let me know if you see anything that looks wrong or that you would like to discuss regarding this update.

Fictional threshold power

While the majority of analysis in Crickles is based on heart rate data, we do also do some proper analysis of power data. This is mainly to inform various Crickles models but FTP curves are also shown. I hesitate to include much more in the Navigator about power because people’s strength of feelings about their FTP tends to exceed the quality of the science. Books and websites that advise on FTP estimation offer a number of protocols that virtually all boil down to one of two methods:

  1. Ride as hard as you can for an hour. Your average power is then your FTP. This method is faultless. However, it’s far less commonly advocated than…
  2. Ride for a shorter period and multiply your average power by a factor to adjust for the difference.

Typically the shorter period is 20 minutes and the multiplication factor is 95%. Method 2 is so much more common than method 1 that we might say that the de facto definition of FTP is your best 20 minute power multiplied by 0.95.

There must be an evidential basis for the use of 0.95 somewhere but I can’t find it. Whenever I look at actual data I come up with a different number. Again just recently, I’ve taken a sample of Crickles data using the activities over the year-long period 2020 Q2 through to 2021 Q1 of 276 athletes who regularly cycle (on the road or on a trainer or both). On average, these athletes had 176 qualifying rides during the year. For each of the four quarters (2020Q2, 2020Q3, 2020Q4, 2021Q1) separately, I looked at the highest 20 minute power and the highest 60 minute power that each athlete sustained. The ratio of the best 60 minute power to the best 20 minute power gives a number that can justifiably be used to scale a 20 minute all-out effort into an estimate of power for an effort over an hour. For each athlete, I averaged the ratio over the four quarters . Thus I have an estimate of what the weighting factor should be from each of 276 athletes.

It is not 95%. The average across all athletes is instead 88%. That means that an athlete who can push out 270W over 20 minutes with an all-out effort might expect to manage 238W over one hour; the 257W that a 95% weighting would imply does not correspond to what we see in real life. By the end of an hour 19W will seem like quite a difference.

The ratio is reasonably consistent across athletes with the majority of athletes having values between +/- 3% of the 88% average (i.e. in the range 85% to 91%). Of the 276 athletes, only three (1%) had values of 95% or more. The weighting is not materially correlated with either age or FTP. It may legitimately be thought that hard 60 minutes efforts are rarer than hard 20 minute efforts but taking the ratio of the highest 60 minute power to the highest 20 minute power for each athlete over the whole year rather than quarterly does not change the result.

I’m curious about what data the ubiquitous 95% figure is based on. Whatever it is, if you’re reading this the Crickles data is likely to be more representative for you.

CRICKLES reaches 1,000

Today we registered our 1,000th Crickles user. While we’re no threat to the likes of Strava, it’s quite a milestone for a free website with no budget that has spread entirely by word of mouth. Thanks to everyone who has been in touch with us to share ideas or encouragement, and to everyone who has completed our survey and participated in our research. (An especial thanks to those of you who have offered to contribute towards our costs – we lack the mechanisms and procedures to handle payments but the generous spirit is itself heartening.)

As our volumes have grown the performance of the Navigator has sometimes suffered a little, especially recently. I’ve upgraded our servers this week to handle the level of activity that we’re now enjoying.

Please keep checking in to see what’s new over the coming weeks and months and do stay in touch with your thoughts and feedback.


trainerroad workout for warwick study

Anyone who is participating in the current study for Warwick Medical School and who has a TrainerRoad subscription can find a workout for the session here.

This was kindly created by Mark – please contact him ( if you have any questions about it.

Good luck with the session!

crickles direct data upload

To improve the quality of analysis that we can offer on Crickles we conduct research and are keen to open source our methodologies and research findings. At present, we are collaborating with the University of Warwick on research into heart rate, power and fitness relationships in cyclists, and Mark and I also have a draft paper on the detection of heart rate irregularities using sports devices that we would like to publish. We are not currently permitted to do any of that using data that we obtain from Strava. A number of members of our Crickles community have been kind enough to help us by supplying us with their raw activity data, either for individual activities or for all historical activities in bulk. As well as helping us with research, this also opens up the possibility that we could backload and show interested Crickles users analysis of their full historical record in the Navigator rather than just the analysis of the most recent years as shown currently. Also we could upload individual activities that are missing or incorrect today.

If you are interested in this, or simply prepared to provide data that we could potentially use for published research, please get in touch through the Contacts page and we can guide you through the steps to send us your data. It goes without saying that any data you provide for research will be fully anonymised and rigorously stripped of all potentially person-identifying attributes. This process is not currently automated and so our ability to deal with kind offers to help will depend upon the level of interest we see.

The Crickles website will of course continue to operate as it does today, with the analysis of your data that you see in the Navigator updated every day with the latest information from your Strava account.


three new ‘thank you’ features for taking our survey

As a thank you to everyone who has taken the Crickles survey we have rolled out three Navigator features that are (only) available to survey respondents:

  1. A new Seasonal HR report. This is a more in-depth take on the Seasonal report.
  2. A new Irregularity Report. This gives you some insights into what we’re doing with the survey data and much more context for the Regularity column on the Activities tab.
  3. The re-introduction of Crickles Charts.

If you haven’t taken the survey yet and do so in future be aware that there may be a delay, potentially of some days, between completing the survey and these reports appearing in your Navigator menu bar.

Taken together, these reports offer a powerful suite of capabilities for evaluating your sports efforts, especially with respect to heart rate behaviour. Please let us know what you think!

Irregularity report

There is a new Irregularity report that is a successor to the old (and long retired) Regularity report. You will have seen on the Activities tab that a Diagnostic reading is available for most activities for which you recorded your heart rate. This can be especially useful as an early indication that your heart rate strap needs a new battery or is mis-performing or that there is an issue with your sports watch. If you a number of Check_Strap readings, this is likely to be the case.

For most activities that have a Diagnostic reading the value is Regular. You are also likely to occasionally see an activity flagged as either Irregular or Unclear. This relies on a Crickles algorithm that detects a particular kind of behaviour in the heart rate pattern. This is certainly not in any way a medical diagnostic nor does it aim to evaluate a range of potential cardiac irregularities. Nonetheless, analysis from Crickles survey responses show that respondents who report heart rhythm issues are more likely to have more “Irregular” readings in this specific sense than respondents who don’t, and the difference is statistically significant (p-value < 0.05). A large majority of Crickles users will see some Irregular readings but those with heart rhythm issues tend to see more.

The Irregularity report shows you how your “irregularity ratio” – the frequency with which Irregular readings crop up – compares to that for the all people who have responded to the Crickles survey. The report has the following elements:

  1. Box plots in black showing the distribution of irregularity ratios for all survey respondents. Crucially, these are split between those who report a heart rhythm issue (top boxplot) and those who don’t (lower boxplot). If you’re not familiar with box plots there’s a handy guide here. (Note that the boxplot on the report is horizontal whereas the link describes box plots shown vertically – this is purely presentational.)
  2. A diamond and vertical line in purple indicating your all-time Crickles irregularity ratio. The line makes it easy to situate the value relative to the two boxplots.
  3. A label next to the purple diamond giving your relative level based on the this ratio and the underlying statistical model.
  4. A blue diamond and vertical line showing your irregularity ratio over the dates chosen in the data range in the sidebar. This defaults to the past six weeks and can be changed so that you can explore how your ratio irregularity ratio has changed over time.
  5. An explanatory label next to the blue line/diamond – there is no relative level here akin to that for the all-time ratio.

This report is only available to users who have completed the Crickles survey. If you have completed the survey but see only an empty rectangle on this report it’s likely to be due to you having a high ratio of Check_Strap readings, suggesting that you have strap issues that mean your data may be unreliable in this context and is hence screened out of the analysis. If you haven’t taken the survey yet and do so in future be aware that there may be a delay, potentially of some days, between completing the survey and Irregularity appearing in your menu bar.

The box plot for all Crickles users (as opposed to survey respondents) is not shown but looks similar to the No box plot only with many more outliers at the high end.

There are a number of limitations to this analysis, including the fact that we only have a limited window of history for each subject and this may or may not overlap with any history of arrhythmia. Also there is a significant selection bias in our sample: people who are motivated to take the Crickles survey are more likely to have an arrhythmia diagnosis than the population at large. If you have any questions or observations about your data on the report please do drop us a line.

We would like to publish our methodology for open review in a medical journal with full anonymity of respondent data. This would enable any other parties with a research interest in this topic to examine our workings in detail and thus help us to validate and improve the methodology. To date, Strava have instructed us not to do this using a prohibitory right that they assert in their API agreement. We will continue to petition Strava for their permission to publish, probably in conjunction with an academic partner. Unless and until we secure Strava’s permission, this report is all we can offer.

Seasonal Heart Rate report

There is now a new Seasonal HR report that shows the relative amount of time you spent at each heart rate level quarter by quarter. This is a much more detailed version of the Seasonal report. For each quarter you get a mini density chart like this:

The x-axis represents your heart rate in beats per minute (BPM) and the y-axis shows the proportion of time spent over that quarter at that heart rate. Your current estimated lactate threshold heart rate (LTHR) is shown as the vertical dashed green line.

You may find that the charts are easier to read if you use the Autoscale tool in the upper right hand corner:

If you’d like to see how your heart rate distribution varies by sport, you can select or deselect all of the sports that you’ve engaged in using the multi-select Pick your sports: widget in the sidebar:

You can use tooltips to see exact values along each curve:

and you can also focus in particular parts of the curves using the drag/zoom feature, using the Reset Axes tool in the upper right corner too reset the display.

Unlike the Seasonal tab (which shows a maximum of 12 quarters), this report will show you a mini chart for each quarter for which Crickles has your history.

This report is only available to users who have completed the Crickles survey.

Colours on the fitness trend report

The colours on the Fitness Trend report have been changed to increase visibility for athletes with two or three years of activities loaded. For athletes with more years of data, or indeed for those with just one year, the display should be unchanged. Please get in touch if you have any thoughts about how the colours are working for you.

enhancements to fitness trend report

The Fitness Trends report has had a couple of enhancements. First, the colours are now easier to differentiate and the points showing actual fitness values behind the trend lines are more clearly visible. Second, a slider control has been added to the sidebar that enables you to choose the degree of smoothing for the trend lines. At the lowest level of Smoothing the trend lines follow the actual fitness values closely:

At the highest value of Smoothing a macro pattern of Fitness over the course of each year is plotted:

You can experiment with different values of Smoothing according to whether you want a general overall picture of your yearly Fitness trend (high smoothing) or a more detailed comparison of Fitness at each point of the year (low smoothing).

To compare the same day in different years numerically you can toggle the hover control that is represented by the two left-pointing bars icon at the upper right of the chart from its default value of Show closest data on hover to instead Compare data on hover:

When you do this and then hover over points on the chart you can directly compare the Fitness values for the same given day in every year:

The boxes that have a whole number for day_of_year show the actual Fitness value for that day whereas the boxes that have a fractional day_of_year show the corresponding trend value. For example, the screenshot shows that on day 179 in 2020 (blue box) the athlete had Fitness of 100 whereas in 2015 (red box) at the same time of the year the athlete’s Fitness was 81. In both cases the trend values were slightly below the actual values on that date.