Unfiltered heart rate data

Read this to ensure your data is correct

news
research
updates
how to
Author

Ian

Published

June 29, 2025

Our research paper about detecting arrhythmia includes this chart:

Reported maximum heart rates

As we observe in the paper, this illustrates that sporadic mis-reporting of very high values by the sports devices used to record heart rates is not especially uncommon. As the same paper shows, Crickles identifies some forms of suspicious value in the Regularity field for each activity with heart rate data. As the paper also explains, we surmise that even where these high heart rate values are erroneous they may nonetheless be informational. Furthermore, given the frequency of such dubious readings, Crickles analysis does not rely on maximum heart rates for setting zones or any other purpose, preferring instead to use a measure of maximum sustainable heart rate that is much more robust; this is explained here. So for Crickles, the weird high values are of value and not a problem.

Intervals.icu faces the same issue and, presumably for this reason, filters out by default all heart rate values that exceed the maximum heart rate level calculated or entered for each user.

Until recently, the detailed heart rate data that Crickles obtained from intervals.icu had been subject to the same filtering. For most activities this makes little or no difference. However, for unusually high heart rates the filtering can have two unwanted effects. First, if the high rates are legitimate and reflect a break-out effort then removing them will suppress the Crickles estimate of maximum sustainable heart rate, and this could distort the analysis of subsequent efforts. Secondly, filtering normalises some activities that Crickles would otherwise identify as Irregular. Although Crickles does not currently show an analysis of user irregularity patterns, we intend to re-introduce it. This leverages the analysis from the detecting arrhythmia paper to give users an indication of how they compare to other users on this measure, which is strongly correlated with atrial fibrillation. If the heart rates are filtered at the high end this will be wrong.

The fix

Once the intervals.icu feature that filters out high heart rates was noticed (many thanks to an observant user), we changed the way that Crickles obtains heart rate data from intervals.icu to get an unfiltered version. Going forward, heart rate data of all new activities that have it will be unfiltered. However, as of the time of writing we have not run an exercise to re-fetch all of the activities analysed previously (although we may do so in future).

If you want to ensure that your own heart rate data for activities that precede this change is unfiltered, you can use the new facility announced yesterday on this post. This gives you the ability to re-get all of your intervals.icu data and to re-run all analysis. By default, this will only fetch your activities and not the detailed data and so this will not fix this problem. To update your detailed heart rate data with unfiltered values you need to check the Also remove cached streams checkbox as shown here:

Use the checkbox for this purpose

Any data or analysis that Crickles that was retrieved from your Crickles classic account is unaffected by this issue. Most of your other activities will also be unaffected by filtering but it’s an easy one-time fix using the Refresh Data feature to be on the safe side.

Ian