<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Crickles</title>
<link>https://crickles.org/</link>
<atom:link href="https://crickles.org/index.xml" rel="self" type="application/rss+xml"/>
<description>Heart health insights for endurance sports</description>
<generator>quarto-1.6.40</generator>
<lastBuildDate>Mon, 27 Jul 2026 23:00:00 GMT</lastBuildDate>
<item>
  <title>Sustainable page - what’s behind each point</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2026-07-28_sustainable_windows.html</link>
  <description><![CDATA[ 




<p>The <strong><em>Sustainable</em></strong> page plots a point for every activity, showing the sustainable heart rate or power that Crickles judges from that activity alone, against the line showing your prevailing sustainable level. Those points have always been grey. They now carry rather more information.</p>
<p><strong>Colour by effort window</strong></p>
<p>To assess an activity, Crickles looks at your best sustained effort over four durations - 6, 20, 40 and 60 minutes - and takes whichever of those produces the highest figure once each is weighted appropriately. Until now the page didn’t tell you which of the four had won. Now it does, through the colour of the point: the lighter the shade the shorter the window, the darker the longer. Reds on the heart rate chart, greens on the power chart.</p>
<p>This is the same figure that appears as <em>Best_HR_Bucket</em> and <em>Best_Power_Bucket</em> in the activities table on the <strong><em>Dashboard</em></strong>, so if you want to check a particular ride you can find it there too. The window now also appears when you hover over a point, alongside the value, the date and the activity name.</p>
<p>It’s worth a look over a year or two. If your points are mostly light you’re a rider whose best efforts come in short bursts; if they’re mostly dark you hold your efforts for longer.</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/sus_power.png" class="img-fluid figure-img"></p>
<figcaption>Sustainable power, with each point coloured by its best-effort window</figcaption>
</figure>
</div>
<p><strong>Showing and hiding windows</strong></p>
<p>Under each chart there’s a key showing the four windows. These are clickable. Click <em>60 min</em> and those points disappear; click it again and they come back. If you want to see only your hour-long efforts, click the other three off. It’s a quick way to pick a pattern out of a crowded chart.</p>
<p><strong>Older activities</strong></p>
<p>Some activities show up in grey, marked <em>unknown</em>. These are ones from before Crickles began recording which window produced the best effort, so there’s nothing to colour them by. They’re mostly at the left-hand end of a long look-back period and there’s nothing wrong with them.</p>
<p><strong>A calculation improvement</strong></p>
<p>Alongside the visual changes, sustainable heart rate and power are now calculated slightly differently. Some implausible figures arising from faulty recordings - a power meter that wasn’t reading, for instance - are now discarded rather than treated as measurements. The effect is small and in one direction: your sustainable levels may come out a little higher than before.</p>
<p>This applies automatically to new activities. If you’d like your earlier activities re-analysed on the same basis, refresh your data as described <a href="https://crickles.org/posts/2025-06-28_refresh_data.html" title="refresh data">here</a> - just hit <strong>Confirm Refresh</strong>, there’s no need to select the <em>remove cached stream files</em> option.</p>
<p>As ever, do get in touch if anything doesn’t look right.</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2026-07-28_sustainable_windows.html</guid>
  <pubDate>Mon, 27 Jul 2026 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/sus_power_thumb.png" medium="image" type="image/png" height="86" width="144"/>
</item>
<item>
  <title>Day of Week and Activity Type</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2026-05-03_day_of_week_type.html</link>
  <description><![CDATA[ 




<p>Last quarter some new options were added to enable you to customise the display of the Navigator <strong><em>Dashboard</em></strong>. These are:</p>
<p><strong>Metric: Day of Week</strong></p>
<p>When chosen, this sets the y-axis of the <strong><em>Dashboard</em></strong> to show the day of the week.</p>
<p><strong>Colour by: Activity Type</strong></p>
<p>This enables you to colour each point on the <strong><em>Dashboard</em></strong> by the activity or sports type as an alternative to heart rate intensity (HRI). When this coloration is selected you’ll see that the points become diamonds rather than circles as a further cue that a different <em>Colour by</em> option is in play. On a large screen you’ll see a key at the bottom of the chart showing which colours correspond to which types of activity.</p>
<p>Using these two new options together, generates a display like this:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/day_of_week_type.png" class="img-fluid figure-img"></p>
<figcaption>Weekly summary by type</figcaption>
</figure>
</div>
<p>The TOTAL line indicates the effort for the week - to see the detail just hover over each point.</p>
<p>You can pick your preferred choice of <em>Metric</em> and <em>Colour by</em> option independently - for example, you can show <em>Average Heart Rate</em> on the y-axis and colour by <em>Activity type</em> to see the average heart rate for each activity and the pattern over time selected in the <em>Look back</em> period.</p>
<p>If you find a configuration that you prefer to the default settings, just use the <em>Save settings</em> button and that will become your new default for the <strong><em>Dashboard</em></strong>.</p>
<p><strong>Pro tip</strong></p>
<p>You may have noticed that on a small screen - typically a phone - the table of activities under the chart and the <em>Summary</em> section that you see on a larger computer display is not visible. To see it on a phone simply rotate the phone sideways and the extra display width will bring the table into view.</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2026-05-03_day_of_week_type.html</guid>
  <pubDate>Sat, 02 May 2026 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/day_of_week_type.png" medium="image" type="image/png" height="52" width="144"/>
</item>
<item>
  <title>Irregular activities and ectopic beats</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2026-02-26_ectopics.html</link>
  <description><![CDATA[ 




<p>When looking at the <em>Dashboard</em> you may occasionally notice that an activity has a light blue dot in the centre and the tooltip shows a <em>Regularity</em> value of <strong>Irregular</strong>:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/irregular_2.png" class="img-fluid figure-img" width="300"></p>
<figcaption>Tooltip for an Irregular activity</figcaption>
</figure>
</div>
<p>This indicates that Crickles has detected a short discontinuity under effort in the heart rate graph - you will usually be able to see this by eye on the <em>Charts</em> page for that activity.</p>
<p>While the occasional <strong>Irregular</strong> reading is not uncommon, Crickles analysis shows that a high frequency of such readings is strongly associated with heart rhythm issues. This analysis relies on the heart health surveys that many users completed in the past, and more recently the three questions about heart health that we ask you to complete on the <em>Profile</em> pop-up. We’re very grateful to all of you who have supplied this information.</p>
<p>The analysis can be read on this website under <em>Research &gt; Detecting Arrhythmia</em>.</p>
<p>Mark, the Crickles cardiologist, postulated at the time of the research that it was probably explained by Irregularity being an indicator of ectopic beats, which, while themselves not uncommon, can be a precursor to heart rhythm issues. By analysing ECG data taken from sports devices to measure HRV, we have now been able to show that:</p>
<ol type="1">
<li>It is possible to detect ectopic beats from such device data;</li>
<li>The presence of ectopic beats on an activity is indeed strongly associated with the Crickles <strong>Irregular</strong> flag.</li>
</ol>
<p>This new analysis is also available on this website at <em>Research &gt; Ectopic beats and Crickles’ Irregularity signal</em>.</p>
<p>It is important to stress that Crickles is not a medical tool. A high incidence of <strong>Irregular</strong> activities does not mean that you have a heart problem and an absence of any such readings certainly does not mean that you don’t.</p>
<p>Cardiologist Mark gives this advice:</p>
<p>“I would suggest that if you do see a higher incidence of irregular activities, the first thing to do is to correlate that with symptoms – if you are noticing something too – ectopics – a strange sensation in the chest, often described as a thumping or irregularity, or if you are getting other symptoms such as chest pain, increasing shortness of breath or dizziness – then that makes it more likely you are having problems and things should be checked out. Ectopic beats can be triggered by an infection or overtraining, amongst many other causes. Sometimes, time and a temporary decrease in exercise intensity are all that is needed, but they can also be a sign of a more serious issue. Remember that ectopic beats are almost universal over the age of 50, and a low percentage (typically &lt;1%) is not concerning if there are no other issues. Please remember that this is not a medical-grade tool. We also need to point out that not all cardiac conditions cause heart rhythm issues. If you are not feeling right, even if Crickles isn’t flagging an issue, it doesn’t mean you don’t have a problem.”</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <category>research</category>
  <guid>https://crickles.org/posts/2026-02-26_ectopics.html</guid>
  <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/irregular_insights.png" medium="image" type="image/png" height="44" width="144"/>
</item>
<item>
  <title>Major Navigator overhaul</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2026-02-18_new_version.html</link>
  <description><![CDATA[ 




<p>The second major refresh of the Crickles Navigator is now being rolled out. You should notice that:</p>
<ol type="1">
<li>It works much better on mobile devices.</li>
<li>It loads instantly.</li>
<li>Your activity updates are usually immediately available.</li>
<li>You won’t get any server disconnects.</li>
<li>It won’t slow down at times of high user volume.</li>
</ol>
<p>Most functionality has already been migrated to the new version and features that have not been migrated yet will be there very soon, along with a general tidy-up. The current version of the navigator will still be available <a href="navigator.crickles.org" title="Nav classic">here</a> until this is complete; you are advised to use one version or the other and not to flit between them.</p>
<p>For current Crickles users if you use the same email address to log in that you’ve used before then all you need to do to get going is request a new password using the <em>Forgot password</em> feature. A complete guide to getting started on the new version, no matter whether you are a current, lapsed or new user, is available <a href="https://crickles.org/get-started.html" title="getting started">here</a>.</p>
<p>If there are issues they are most likely to be in your first visit to the new Navigator. If you run into difficulties (or if you love the new version!) please let me know.</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2026-02-18_new_version.html</guid>
  <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/new_seasonal.png" medium="image" type="image/png" height="78" width="144"/>
</item>
<item>
  <title>Major Navigator change coming soon</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2026-02-14_new_version_coming.html</link>
  <description><![CDATA[ 




<p>The Crickles Navigator is currently having its second major update (the first being the switch to intervals.icu from Strava). The new version is entering beta testing now. The purpose of this update, which has a totally rewritten though still recognisable front end, is to improve the user experience - much better support for mobile devices, more immediate activity updates, no server disconnections and consistent performance at times of high user volumes.</p>
<p>During this time, the Navigator should be unaffected but you may find some glitches in activity updates while both the current and the new system are processing the same real time events. As ever, if your data looks wrong you can refresh it from the Profile page.</p>
<p>If you’d like to join the (hopefully short) beta programme, just drop me a note.</p>



 ]]></description>
  <category>news</category>
  <guid>https://crickles.org/posts/2026-02-14_new_version_coming.html</guid>
  <pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/new_seasonal.png" medium="image" type="image/png" height="78" width="144"/>
</item>
<item>
  <title>OHM jump - algo update</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2026-01-09_new_ohr_algo.html</link>
  <description><![CDATA[ 




<p>There is a new algorithm for detecting <a href="https://crickles.org/posts/2025-11-20_ohr_jumps.html" title="read about OHM jumps">OHM jumps</a>. This detects some jumps that would previously have been missed.</p>
<p>The new algo will apply to any new activities from now on. It you want to retrospectively re-analyse all of your prior activities you need to refresh your data, as described <a href="https://crickles.org/posts/2025-06-28_refresh_data.html">here</a> (there is no need to remove cached stream files so don’t check the box).</p>



 ]]></description>
  <category>news</category>
  <category>research</category>
  <guid>https://crickles.org/posts/2026-01-09_new_ohr_algo.html</guid>
  <pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/ohm_chart.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Programming Crickles</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/r_vs_python.html</link>
  <description><![CDATA[ 




<p>Here, as a diversion between Christmas and New Year, is a post for any Crickles users with a programming interest.</p>
<p>Crickles is entirely programmed in R and Python with the vast majority done in R. Python is used for AWS lambdas. The http server that manages interaction with Intervals perhaps ought to be in Python too - it has been in Python in the past (before Intervals displaced Strava as our source of data) and will probably be re-written in Python again in future. For now, it happens to be in R.</p>
<p>All offline analysis as well as the Navigator web app are written in R. Since there are now many more programmers using Python than R you might legitimately wonder why this is so.</p>
<p>To illustrate why R is preferred for this particular kind of work I asked Claude to generate a fair comparison of how the two languages do or could handle the <em>sustainable performance</em> analysis that is fully described, with code snippets, on this website <a href="https://crickles.org/sustainable.html" title="sustainable performance">here</a>. Since <a href="https://pola.rs" title="Polars">the <em>Polars</em> library</a> has substantially enhanced Python’s ability to handle dataframes, I asked Claude to give specific attention to where this could be beneficial.</p>
<p>Claude generated <a href="https://crickles.org/r_vs_python_features.html" title="R vs Python">this comparison</a>. As you can see if you read it, Claude concludes that:</p>
<ol type="1">
<li><p>Both R and Python are fully capable of handling the analysis.</p></li>
<li><p>With Polars, Python could complete the computation more quickly.</p></li>
<li><p>The code in R is more readable, concise and elegant than in Python.</p></li>
</ol>
<p>Since this analysis is conducted occasionally and is offline, the third factor is more important than the second. In fact, little to no heavy-duty processing in Crickles occurs at run-time and so R usually wins for the same reason.</p>
<p>As it happens, the kinds of machine learning (ML) model used by Crickles are better supported in R whereas different types of ML model that could (but aren’t) used have much better support in Python; but this isn’t a factor in the analysis of sustainable performance analysed by Claude.</p>
<p>In Claude’s paper the R code is my own whereas the Python code is generated by Claude.</p>



 ]]></description>
  <category>news</category>
  <category>research</category>
  <guid>https://crickles.org/posts/r_vs_python.html</guid>
  <pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/R_snippet.png" medium="image" type="image/png" height="31" width="144"/>
</item>
<item>
  <title>Sports watches and step jumps in heart rate</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2025-11-20_ohr_jumps.html</link>
  <description><![CDATA[ 




<p>Heart rate readings from watches with optical heart rate monitors (OHM’s) are <a href="https://www.trailrunnermag.com/training/trail-tips-training/why-you-should-be-skeptical-about-your-wrist-based-heart-rate-2/" title="typical report">widely reported</a> - especially by fit, active users who push themselves during exercise - to be less reliable than chest straps. This is why in our paper on <a href="https://crickles.org/arrhythmia.html" title="Detecting Arrhythmia">detecting arrhythmia</a> we restrict the analysis to cycling, where the use of chest strap is far more prevalent.</p>
<p>One frequent issue is that a sports watch can take several minutes to establish an adequate skin contact and/or for perfusion to stabilise so that there is a good optical signal that the watch can process. Then, a typical heart rate chart might look like this:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/ohr_chart.png" class="img-fluid figure-img"></p>
<figcaption>An OHM_jump run</figcaption>
</figure>
</div>
<p>Here, after an initial quick rise at the start, it is most probable that the athlete’s heart rose steadily to a plateau above 150 bpm. It is very unlikely that the heart rate suddenly spiked at around 16 minutes, as recorded by the watch (and the athlete whose run this was does not believe that it did).</p>
<p>Crickles now detects such patterns and assigns them a <em>Regularity</em> value of <strong>OHM_jump</strong>. It also locates the time when the jump occurred. This is most clearly visible as the dotted vertical line on the heart rate chart, as shown in the image above, but it can also be seen on the <em>Activities</em> page, along with the time at which the OHM becomes reliable, which is called <strong>Sensor_Warmup</strong> (16M 7S in this example). It can also be seen on the <em>Timeline</em> page, where OHM_jumps are indicated with a deep blue dot in the middle of affected activities:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/ohr_timeline.jpg" class="img-fluid figure-img"></p>
<figcaption>OHM_jump activities on the Timeline page</figcaption>
</figure>
</div>
<p>To see this, where is is applicable, for activities that have already been analysed you will probably need to refresh your data.</p>
<p>If you see this pattern frequently you can try one of the commonly cited recommended fixes such as wearing your watch a notch tighter and above the bony bump on your wrist and warming up before you start your activity. In any case aggregate heart rate metrics for such activities will be wrong insofar as the heart rate before the jump is understated. Crickles will adjust Cardiac Stress Score (CSS) modelling to account for this, when detected, in the next revision.<br>
</p>



 ]]></description>
  <category>news</category>
  <category>research</category>
  <guid>https://crickles.org/posts/2025-11-20_ohr_jumps.html</guid>
  <pubDate>Thu, 20 Nov 2025 00:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/ohm_activities.jpg" medium="image" type="image/jpeg"/>
</item>
<item>
  <title>Crickles for non-cyclists</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2025-09-21_crickles_for_non-cyclists.html</link>
  <description><![CDATA[ 




<p>The majority of Crickles pages are based on the analysis of heart rate data. In addition, some pages also analyse power data - for example, the columns from <strong>Best_Power_Bucket</strong> to <strong>Avg_LR_Balance</strong> on the <em>Activities</em> page all pertain to power. The <em>Effort Spots</em> and <em>Sustainable Levels</em> pages give more detailed, power-based analytics, where the source power data is available.</p>
<p>Power data can, with suitable equipment, be obtained for a range of types of activity including cycling, running and indoor rowing. However, power numbers for, say, running and cycling are not commensurable and Crickles thus only shows power data for Rides and Virtual Rides on the <em>Effort Spots</em> and <em>Sustainable Levels</em> pages.</p>
<p>Until now, the <em>Sustainable Levels</em> page did not show a sustainable heart rate chart when a sustainable power curve could not also be derived. This meant that the page did not appear for non-cyclists or for cyclists without power meters even if they had rich heart rate data. This has now been changed so that the <em>Sustainable Levels</em> page shows a heart rate chart and/or a power chart whenever either or both can be derived.</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2025-09-21_crickles_for_non-cyclists.html</guid>
  <pubDate>Sat, 20 Sep 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/sustainable_hr.png" medium="image" type="image/png" height="72" width="144"/>
</item>
<item>
  <title>Timeline page - missing points?</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2025-08-23_missing_timeline_points.html</link>
  <description><![CDATA[ 




<p>After deploying <a href="https://crickles.org/posts/2025-08-22_activity_names.html" title="get names from Strava">the activity name hack</a> that I posted about yesterday I saw on my <em>Timeline</em> page today that recent activities were mysteriously missing, even though the bike ride I did today appeared on all of the other relevant pages. I don’t know if this is related to the names hack. I did a spot check on a few other users and found that some have the some problem while others don’t.</p>
<p>If this problem affects you the quick fix is to refresh your data as described <a href="https://crickles.org/posts/2025-06-28_refresh_data.html" title="refresh data">here</a>. You just need to hit the <strong>Confirm Refresh</strong> button; there is no need to select the <em>remove cached stream files</em> option.</p>
<p>If you have a persistent problem please get in touch.</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2025-08-23_missing_timeline_points.html</guid>
  <pubDate>Fri, 22 Aug 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/refresh_screen.png" medium="image" type="image/png" height="86" width="144"/>
</item>
<item>
  <title>Activity name hack</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2025-08-22_activity_names.html</link>
  <description><![CDATA[ 




<p>Since posting this yesterday I’ve noticed that for some reason it seems to<br>
<br>
If you find yourself entering the names of your activities on Strava and then again on your Garmin, or if you don’t see the right names for your activities in Crickles, this post is for you.</p>
<p>As you will have seen on <a href="https://crickles.org/get-started.html" title="Get Started">the Get Started page</a>, Strava does not allow Intervals to pass activities onto other apps such as Crickles so it’s essential that you connect your Intervals account directly to your Garmin, Wahoo, Zwift and other devices. However, many of us use Strava as a social network for sports and other apps for personal analysis. In this common use pattern it is natural to enter meaningful activity names only on Strava. This means that you either see the default/wrong names in Crickles or you have to update the names once on Strava and again on Intervals or your device(s).</p>
<p>Fortunately, Intervals offers a hack. If you connect directly to your device(s) <em>and</em> to Strava, Intervals will spot when activities loaded directly and from Strava are the same. In this case, it will pass to Crickles most of the details read directly from your device, which is typically a richer dataset than Strava collects, and pass through just the name from Strava in place of the activity name from your device. For example, if you take a bike ride you might find that your Garmin assigns it a default name of, say, <em>Islington Road Cycling</em> while Strava calls it <em>Morning Ride</em>. If you connect Intervals only to your devices, it is the name from there - in this case <em>Islington Road Cycling</em> - that comes through to Crickles. If you are in the habit of giving descriptive names to the activities on your device so that you can, for example, make sense of them in Garmin Connect, then as you add these descriptive names Crickles will get them too. However, if your preference is to leave the device names alone and update only the Strava names these will be passed to Crickles - in preference to the device names - if you also set up a Strava connection in Intervals. The settings you need in Intervals to make this happen are these:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/strava_intervals.png" class="img-fluid figure-img" width="380"></p>
<figcaption>Settings for Strava in Intervals</figcaption>
</figure>
</div>
<p>If you have not connected to Strava before and do so now you will find that the names you in Crickles of activities that you’ve done already will update to the Strava names, and any new activity names will come from Strava going forward. It is not possible to mix and match, with some activity names sourced from Garmin and others from Strava.</p>
<p>Note that in no case is Intervals permitted to pass on full activity details from Strava to Crickles. If in Intervals you connect your Garmin and also Strava and you have some activities on Strava that are not on Garmin or on any other device connected directly to Intervals then Crickles will not be able to see them. Likewise, if you download all of your old data from Strava to Intervals but do not also collect the same data directly from your devices then these old activities will not feed through to Crickles either.</p>
<p>Many thanks to David from Intervals for passing on this tip.</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2025-08-22_activity_names.html</guid>
  <pubDate>Thu, 21 Aug 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/intervals_devices.png" medium="image" type="image/png" height="115" width="144"/>
</item>
<item>
  <title>Signs of Arrhythmia in heart rate data</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2025-08-15_irregularity_research.html</link>
  <description><![CDATA[ 




<section id="the-research" class="level2">
<h2 class="anchored" data-anchor-id="the-research">The research</h2>
<p>Since its first release Crickles has had a measure called <em>Regularity</em> that is calculated on all activities with heart rate data. This measure serves two purposes:</p>
<ol type="1">
<li>In some cases the heart rate data indicates an obvious recording error. In such cases <em>Regularity</em> is reported as <strong>Check_Strap</strong>. Sometimes this can be fixed by simply changing the battery in the heart rate strap, if it’s a chest strap, or sometimes the strap itself may need replacing.</li>
<li>In other cases there are jumps in the heart rate readings that are not obviously just errors and that are classified as <em>Irregular</em> or <em>Unclear</em>.</li>
</ol>
<p>Some years ago we found from analysis of data of users who also completed a short heart health survey that a high occurrence of irregular readings in cyclists was correlated to a very high degree of statistical significance with heart rhythym issues such as atrial fibrillation. Mark, the Crickles cardiologist, has observed that this is consistent with the fact that ectopic beats, though not intrinsically worrisome, can sometimes presage the onset of arrhythmia.</p>
<p>A full description of this methodology and the findings is now available on the <em>Research</em> menu of this website <a href="https://crickles.org/arrhythmia.html" title="Detecting Arrhythmia">here</a>.</p>
<p>The technique for flagging irregularity described in this paper, which is used in Crickles, is a method that is extremely cheap to compute. Subsequent to this paper, the post-graduate mathematicians Jack Buckingham, Andrew Nugent and Yi Ting Loo at Warwick University analysed more sophisticated approaches to irregularity measurement. Their research corroborated the association between irregularity and arrhythmia. While they didn’t improve upon the predictability of the Crickles measure, they did lay out the matter extremely elegantly for future researchers. This paper is now also available on the <em>Research</em> menu <a href="https://crickles.org/Warwick_spikes_paper.pdf" title="Cyclists' Cardiac Conumdrum">here</a>.</p>
<p>If it is indeed feasible for cyclists to get a pre-symptomatic warning of a potential propensity to arrhythmia obtained entirely from rides that they are already uploading to Crickles this could be a valuable pormpt to see a GP or cardiologist.</p>
<p>It goes without saying that the regularity indicator is not a medical diagnosis and an absence of irregular readings is certainly not a clean bill of cardiac health nor a guarantee of reduced risk.</p>
</section>
<section id="seeing-your-regularity-info-on-the-navigator" class="level2">
<h2 class="anchored" data-anchor-id="seeing-your-regularity-info-on-the-navigator">Seeing your Regularity info on the Navigator</h2>
<p>The easiest way to see the <em>Regularity</em> readings for your activities on the Navigator is on the <strong>Timeline</strong> page. Here, each activity point has a dot in the centre for any value of <em>Regularity</em> other than <em>Regular</em>. If it’s <em>Irregular</em> the dot is blue, if it’s <em>Check_Strap</em> the dot is black and if it’s <em>Unclear</em> the dot is grey. The value of <em>Regularity</em> is also shown on the tooltip. Here’s an example of an <em>Irregular</em> activity:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/irregular_2.png" class="img-fluid figure-img" width="800"></p>
<figcaption>An Irregular activity</figcaption>
</figure>
</div>
<p>The <em>Regularity</em> value for each activity is also given on the <strong>Activities</strong> page. Remember, <em>Regularity</em> can only be derived for activities where heart rate data is available.</p>
<p>A count of <em>Regularity</em> values over all the activities on the Timeline page is shown at the top left :</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/regularity_count.png" class="img-fluid figure-img"></p>
<figcaption>Regularity count</figcaption>
</figure>
</div>
<p>While those experienced in modelling can in principle apply this count table to the model described in the <em>Detecting Arrhythmia</em> paper, Crickles does not currently translate the counts to a risk rating. The classic version of Crickles had an <a href="https://crickles.casa/2020/12/28/irregularity-report/">Irregularity page</a> that addressed this; a revised version of this page may be reintroduced if there is user interest and I can think of way to make the presentation of data more intuitive.</p>
</section>
<section id="helping-crickles-quickly-for-free" class="level2">
<h2 class="anchored" data-anchor-id="helping-crickles-quickly-for-free">Helping Crickles quickly for free</h2>
<p>To take this research forward we need to know which Crickles users have been diagnosed with a heart rhythm problem and which have not. You can tell us this on the <strong>Profile</strong> page, where the question of whether you have had a diagnosis of an irregular heart rhythm defaults to <em>Don’t know</em> -</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/rhythm_question.png" class="img-fluid figure-img"></p>
<figcaption>Heart rhythm history</figcaption>
</figure>
</div>
<p>To tell us whether or not you have actually had a heart rhythm issue please hit the <em>Edit Profile</em> button and replace <em>Don’t know</em> with either <em>Yes</em> or <em>No</em>. Seasoned Crickles users who have previously completed the short heart health survey should find that this is pre-populated. In future we may add fields for capturing additional information comparable to that from the survey but for now if you could complete this Yes or No field it would be most helpful.</p>


</section>

 ]]></description>
  <category>news</category>
  <category>research</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2025-08-15_irregularity_research.html</guid>
  <pubDate>Thu, 14 Aug 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/unclear.png" medium="image" type="image/png" height="112" width="144"/>
</item>
<item>
  <title>Navigator performance improvement</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2025-08-09_performance.html</link>
  <description><![CDATA[ 




<p>When the Navigator was re-written for intervals.icu the organisation of calculations was also overhauled. This improved responsiveness in some areas - all metrics are now available immediately upon activity upload - and added a slight performance penalty in others. The main adverse change has been an increase in the initial load time: some users experienced much higher wait times for the first screen to appear in the new version. This was specific to the behaviour of each browser and it was a time cost incurred before any Navigator code was invoked. This has been fixed. If you now find when launching the Navigator that you are waiting several seconds for the menu bar to appear please let me know.</p>
<p>Improvement to the performance of various aspects of the Navigator is continual and I hope that you will find a trend towards ever snappier experience over the coming weeks and months. If you have feedback on any aspect of system performance, especially if you are fairly sure that it’s not an issue with your own device, please get in touch.</p>
<section id="tech-corner-optional" class="level2">
<h2 class="anchored" data-anchor-id="tech-corner-optional">Tech corner (optional!)</h2>
<p>If you do find the Navigator is slow to load and you don’t mind digging deeper you can help to isolate where the delay is occurring by using your browser’s developer tools. Here’s how to do it in Chrome on a laptop (I’m using a Mac):</p>
<p>First, go to crickles.org and in the Chrome menu bar find <strong>View / Developer / Developer Tools</strong>:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/chrome_developer.png" class="img-fluid figure-img"></p>
<figcaption>Chrome Developer Tools</figcaption>
</figure>
</div>
<p>When you select this Crickles will be squeezed over to the left and most of your screen will be given over to a developer UI. There’s a new menu running across the top of this beginning <strong>Elements Console</strong> … From this menu select <strong>Network</strong> and then check the box called <strong>Disable Cache</strong>:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/chrome_network.png" class="img-fluid figure-img"></p>
<figcaption>Network</figcaption>
</figure>
</div>
<p>Next, move your cursor, which will have changed into a circle, over to the Crickles pull-down menu on the left (the three grey horizontal lines) and select <strong>Navigator</strong>. You will see activity on the right hand part of the screen as assets are loaded to fetch the Navigator. The top part of the developer UI shows you a load timeline in tiny font. We’re interested in the table underneath that, which shows how long each asset takes to load:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/chrome_timeline.png" class="img-fluid figure-img"></p>
<figcaption>loading timeline</figcaption>
</figure>
</div>
<p>The far right column gives the load time for each asset in milliseconds. At the very top is <em>app.html</em>, the name of the (empty) page in which the Navigator sits - in this example the load time is 112 ms, or about one tenth of a second. This is quite but fast but if instead it were high - in seconds not milliseconds - that would be a problem. We’re also interested in the line further down called <em>navigator.crickles.org</em>, also marked with a blue icon. Here the load time is 742 ms, or about three quarters of a second.</p>
<p>Now, clicking on the <em>navigator.crickles.org</em> label will show new information about that particular line, with its own menu. Clicking on the <strong>Timing</strong> option shows something like this, giving a more detailed breakdown of the 742 ms shown in the last column on the line above:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/chrome_timing.png" class="img-fluid figure-img"></p>
<figcaption>Detailed timing</figcaption>
</figure>
</div>
<p>This is the time that passes right <em>before</em> the Navigator starts to fill the screen. From then on Crickles is more directly accountable for screen responsiveness and can be analysed using very detailed application logs that are not available to the user.</p>
<p>If you’re seeing a long load time it’s very helpful to know how much of that is visible in the timings shown in these developer pages. Hold-ups in these “pre application” is harder to track down than poor application performance and information shown above is thus very helpful diagnostically when getting a report of slow load time. To summarise, the two figures that are most useful are the app.html time - 112 ms in this example - and the navigator.crickles.org time - 742 ms here. It’s less likely but if any other individual times are in the thousands of milliseconds that would be useful to know too.</p>


</section>

 ]]></description>
  <category>news</category>
  <category>updates</category>
  <guid>https://crickles.org/posts/2025-08-09_performance.html</guid>
  <pubDate>Fri, 08 Aug 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/load_time.png" medium="image" type="image/png" height="42" width="144"/>
</item>
<item>
  <title>A much better tool for Fitness, Fatigue and Form</title>
  <dc:creator>Ian </dc:creator>
  <link>https://crickles.org/posts/2025-07-30_fff.html</link>
  <description><![CDATA[ 




<section id="why-fitness-fatigue-and-form-usually-miss-the-mark" class="level2">
<h2 class="anchored" data-anchor-id="why-fitness-fatigue-and-form-usually-miss-the-mark">Why Fitness, Fatigue and Form usually miss the mark</h2>
<p>The classic version of Crickles had a <strong>FitFat</strong> page, showing Fitness, Fatigue and Form curves, as well as a related <strong>Fitness Trend</strong> page that showed smoothed annual fitness curves overlaid for each year of available history. These were amongst Crickles’ most visited pages and addressed one of the main problems with implementations in other apps: consistency of measurement. For example, for any activity where the user is not wearing a heart rate monitor or using a power meter, apps such as Strava score the Fitness and Fatigue impact of the session as zero. Crickles, by contrast, uses machine learning models to estimate cardiac stress (CSS) in the absence of heart rate data and CSS is the consistent metric from which Fitness, Fatigue and Form are calculated.</p>
<p>However, this still does not address all of the problems with Fitness, Fatigue and Form metrics. These are:</p>
<ol type="1">
<li>It is assumed that all people respond to exercise in the same way over the same timeframe, which is very questionable and not convincingly shown in any robust studies.</li>
<li>There is no way to test the predictive value of the fitness, fatigue and form values shown in most apps.</li>
<li>If an app user believes that their response to exercise is different from the model assumptions there is no way for them to personalise the calculations to reflect this belief.</li>
</ol>
<p>Without addressing these issues, while a smoothed Fitness curve, such as the old Crickles <strong>Fitness Trend,</strong> might indicate the general shape of fitness over a long period, the accuracy of fitness, fatigue and form metrics and their utility for predicting peaks of form is absent as they are not trained on the user’s data.</p>
<p>Given that all of the other methodologies in Crickles are solidly data-driven, we have held off re-introducing FitFat into the new version of Crickles until these problems were addressed. Now they are.</p>
</section>
<section id="calculating-fitness-fatigue-and-form" class="level2">
<h2 class="anchored" data-anchor-id="calculating-fitness-fatigue-and-form">Calculating Fitness, Fatigue and Form</h2>
<p>The basic concept of the calculations is that every piece of exercise has two effects:</p>
<ol type="1">
<li>An increase in fitness, which decays slowly;</li>
<li>An increase in fatigue, which decays quickly.</li>
</ol>
<p>The Fitness curve is then the sum across time of the declining fitness impacts of each activity and the Fatigue curve is the sum of the more rapidly declining fatigue impacts. Form at any point in time is simply fitness minus fatigue.</p>
<p>This makes heuristic sense and enables us to chart how periodisation in training works and to see, for example, the benefit of a rest period before a targetted race or event. The problem lies with the rates of decay. Decay is taken to be exponential for both fitness and fatigue and the rate of decay can be expressed as the number of days it takes for the impact of an activity to fall by around two thirds (more precisely, <img src="https://latex.codecogs.com/png.latex?%5Cfrac%7B1%7D%7Be%7D%20%5Capprox%2036.8%5C%25"> is left). The values commonly used are 42 days for fitness and 7 days for fatigue. This means that the fitness benefit of a training session is down to around a third of its initial value after 6 weeks and the fatigue cost is down to around a third after one week.</p>
<p>Why these numbers? How much do they vary by person? What if I’m a fast or slow recoverer? How can I check that these values are right for me? How can I change them if I think they aren’t?</p>
</section>
<section id="using-the-crickles-fitfat-page" class="level2">
<h2 class="anchored" data-anchor-id="using-the-crickles-fitfat-page">Using the Crickles FitFat page</h2>
<p>On the FitFat page you can choose whether to show Fitness, Fatigue or Form using the <em>Metric</em> drop-down. Until you save your own preferences (see below) each of these charts is initially calculated using the default decay values of 42 days for Fitness and 7 days for Fatigue. These can both be adjusted using sliders:<br>
<br>
<img src="https://crickles.org/images/fitfat sliders.png" class="img-fluid" alt="Sliders to set decay factors"></p>
<p>As you modify the decay values you will instantly see the charts change (assuming relevant - changing the Fitness decay value won’t affect the Fatigue chart, or vice-versa). Here’s an example showing the Form chart:<br>
<br>
<img src="https://crickles.org/images/form_chart.png" class="img-fluid" alt="Form"></p>
<p>The time horizon over which the charts extend is limited to the past two years (as shown in this example). Over longer periods the physiology of the individual is likely to change - if for no other reason than aging - and it will become harder to find decay factors that give a good fit to the data.</p>
</section>
<section id="choosing-good-decay-values" class="level2">
<h2 class="anchored" data-anchor-id="choosing-good-decay-values">Choosing good decay values</h2>
<p>One way to choose good values for the Fitness and Fatigue decay days is to experiment and see which values generate curves that best correspond to your experience. There are two particular questions that can help to frame this:</p>
<ol type="1">
<li>Do the days when you were performing best fall at high points on the Form curve? Conversely, when you had off days was your Form low?</li>
<li>Does the line of the Fitness curve track your experience of ease and performance while riding and/or running?</li>
</ol>
<p>If you cycle and use a heart rate monitor and a power meter both of these questions can be quantified. For the Form test, we look at breakthrough days. On every ride with a power meter Crickles forms an assessment of what your sustainable power is judged from that ride alone. This is shown as <em>Spot_Power</em> on the <strong>Activities</strong> page. Often you will be cycling way below threshold and this, as an individual data point, won’t mean much. However, by taking all of your Spot_Power values together Crickles can estimate your prevailing sustainable power; this is shown as <em>Sustainable_Power</em> on the <strong>Activities</strong> page and is what is charted on the <strong>Sustainable Levels</strong> page. In general, this follows the methodology for calculating sustainable heart rate as described <a href="https://crickles.org/sustainable.html" title="Sustainable Heart Rate methodology">here</a>. A breakthrough day is one on which you have a ride that increases Crickles’ estimate of your sustainable power, which is to say that your power exceeded in some way what you’ve put out over the previous weeks. On the Fitness, Fatigue and Form charts these breakthrough days are marked with blue points and if you hover over one you’ll see the name and date of the activity that constitutes the breakthrough. An example is shown on the previous chart (“Breakthrough: Ramp”).</p>
<p>If the Form curve is telling you anything meaningful the average Form on breakthrough days should be significantly higher than the average on non-breakthrough days. On the example above, where the decay values have been optimised using the sliders, the annotation in the lower right of the chart shows this:<br>
<br>
<img src="https://crickles.org/images/fff_annotation_good.png" class="img-fluid" alt="Stats after optimising"></p>
<p>We see that there are 8 breakthrough days with an average Form of 19.1 and that there are 724 non-breakthrough days with an average Form of -0.3. Clearly, the average Form on the breakthrough days is substantially higher. We can also see that this is due to Fitness being higher (90.7 vs 84.3) and Fatigue being lower (71.7 vs 84.6) as we’d expect. By eye, we can see on the chart that the blue breakthrough days do indeed tend to fall on peaks of Form and the average values confirm this: the answer to our first question above is provably Yes.</p>
<p>The second question - does the Fitness line track ease and performance while riding - offers a better statistical test because the relevant data points are dense, which is to say that (almost) every ride gives us an equally useful sample, unlike the breakthrough test, where we’re most interested in a relatively few points. (The reason that it’s “almost” every ride is that we ignore rides with a very low heart rate intensity.) Here we use a measure of <em>efficiency</em> that leverages our nice methodology for calculating spot power and spot heart rate: efficiency is the ratio spot_power/spot_hr. This tells us how much power we’re generating for a given cardiac effort. If the Fitness measure is good then it should be securely associated with efficiency - that’s simply a measurable way to express our second question.</p>
<p>We test this by modelling efficiency as a function of Fitness, which is what efficiency ~ fitness means. We get two values from the model. One is the p-value, which tells us how likely it is that the observed relationship between efficiency and Fitness is down to chance. The lower the p-value the less likely the relationship is to be random; a p-value of &lt; 0.05 is generally taken to be “significant”. Here we see a p-value of &lt; 0.001. This tells us that there is essentially no chance that the relationship between efficiency and Fitness is random.</p>
<p>The second value from the model is the R-squared value. This tells us how much of the variation in efficiency can be explained just by pegging it linearly to Fitness. We know that this will always be partial at best. There are many factors that could affect efficiency on a particular day such as sleep, stress, caffeine, alcohol and non-measured exercise such as walking or housework. Also this test will understate the percentage explained if the relationship between efficiency and Fitness is real but non-linear. We see in the example that we have an R-squared of 8%, which is to say that we can account for 8% of the variation on spot_hr/spot_power from a simple linear relationship with our Fitness curve. The combination of a very low p-value and a meaningful R-squared value tells us that the Fitness curve is indeed tracking our ease and performance in some measurably meaningful way.</p>
<p>So, to optimise the decay days settings you experiment with the sliders until you find values that are consistent with what you believe sounds right for you - for fatigue, do you think it takes a week to recover from a ride or a run or would fewer or more days feel more appropriate? - and also look at the stats. In the example above the default settings of 42 days for Fitness and 7 days for Fatigue gave this:<br>
<br>
<img src="https://crickles.org/images/fff_annotation_default.png" class="img-fluid" alt="With default settings"></p>
<p>We see that the difference in Form between breakthrough and non-breakthrough days is substantially narrower than with the optimised values shown above and that Fitness is accounting for much less of the variation in efficiency (5% vs 8%).</p>
<p>If you do not ride with a power meter and a heart rate monitor you can inspect the curves by eye for correspondence with your experience, which is something, but these statistical tests will not be available.</p>
<section id="saving-your-preferences" class="level3">
<h3 class="anchored" data-anchor-id="saving-your-preferences">Saving your preferences</h3>
<p>Once you have found settings for decay values that you like you can save them using the <em>Save Prefs</em> button. This will also save the curve (Form, Fitness or Fatigue) that is currently selected to be the default when you open the page in future.</p>


</section>
</section>

 ]]></description>
  <category>news</category>
  <category>research</category>
  <guid>https://crickles.org/posts/2025-07-30_fff.html</guid>
  <pubDate>Thu, 31 Jul 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/fitness_chart.png" medium="image" type="image/png" height="66" width="144"/>
</item>
<item>
  <title>Activities Download button</title>
  <dc:creator>Your Name</dc:creator>
  <link>https://crickles.org/posts/2025-07-22_acts_download.html</link>
  <description><![CDATA[ 




<p>There is now a new <strong>Download</strong> button in the sidebar of the <em>Activities</em> page. Designed for use on a computer rather than a phone, it generates a .csv (comma separated variable) file that gives a complete listing of your activities, as loaded by Crickles. You can read this file into an analysis environment such as R or Python or simply open it in a spreadsheet. It can be useful if you want to produce charts or analyses that are not available in Crickles itself. For example, I like to periodically graph my 1500 metre elapsed swim times over the past two or three years - this is not a feature in Crickles but it’s easy to do in R or Excel from the download file.</p>
<p>Ian</p>



 ]]></description>
  <category>news</category>
  <guid>https://crickles.org/posts/2025-07-22_acts_download.html</guid>
  <pubDate>Mon, 21 Jul 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/download_button.png" medium="image" type="image/png" height="104" width="144"/>
</item>
<item>
  <title>Subscribe to Crickles posts</title>
  <dc:creator>Your Name</dc:creator>
  <link>https://crickles.org/posts/2025-07-20 subscribe.html</link>
  <description><![CDATA[ 




<p>There is, as you can see, now a button at the top of the Home page for subscribing to new posts. This uses a service from the feed management company <em>follow.it</em>, who will manage your subscription independently of Crickles. It is not linked in any way to your Crickles sign-in for the Navigator. In part, this is so that people who may be “Crickles curious” but who don’t necessarily have an Intervals account, or even use a sports device, can follow our news.</p>
<p>For Navigator users this service has the added benefit that if there is ever a technical issue, such as the downtime this week, you can instantly be alerted with status updates - for example, if the Navigator was unavailable and is now back online.</p>
<p>I don’t know if many people still use RSS readers such as NetNewsWire but if you do a consequence of this change is that you’ll be able to get your Crickles content through your RSS app. To do this you’ll need to supply our feed URL, which is https://crickles.org/index.xml.</p>
<p>As ever, if you experience issues with the subscription service and follow.it can’t help you, do get in touch.</p>
<p>Ian</p>



 ]]></description>
  <category>news</category>
  <guid>https://crickles.org/posts/2025-07-20 subscribe.html</guid>
  <pubDate>Sat, 19 Jul 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/subscribe_button.png" medium="image" type="image/png" height="89" width="144"/>
</item>
<item>
  <title>Unfiltered heart rate data</title>
  <dc:creator>Your Name</dc:creator>
  <link>https://crickles.org/posts/2025-06-29_filtered-heart-rates.html</link>
  <description><![CDATA[ 




<p>Our research paper about <a href="https://crickles.org/arrhythmia.html" title="Draft paper">detecting arrhythmia</a> includes this chart:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/high_heart_rates.png" class="img-fluid figure-img"></p>
<figcaption>Reported maximum heart rates</figcaption>
</figure>
</div>
<p>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 <em>Regularity</em> 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 <em>sustainable</em> heart rate that is much more robust; this is explained <a href="file:///Users/Ian/Documents/projects/crickles-website/docs/sustainable.html" title="sustainable hr methodology">here</a>. So for Crickles, the weird high values are of value and not a problem.</p>
<p>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.</p>
<p>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 <em>Irregular</em>. 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.</p>
<section id="the-fix" class="level2">
<h2 class="anchored" data-anchor-id="the-fix">The fix</h2>
<p>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 <em>new</em> 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).</p>
<p>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 <a href="https://crickles.org/posts/2025-06-28_refresh_data.html" title="Refresh Data">this post</a>. 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 <strong>will not fix this problem</strong>. To update your detailed heart rate data with unfiltered values you need to <strong>check</strong> the <em>Also remove cached streams</em> checkbox as shown here:</p>
<div class="quarto-figure quarto-figure-center">
<figure class="figure">
<p><img src="https://crickles.org/images/streams_checkbox.png" class="img-fluid figure-img"></p>
<figcaption>Use the checkbox for this purpose</figcaption>
</figure>
</div>
<p>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.</p>
<p>Ian</p>


</section>

 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2025-06-29_filtered-heart-rates.html</guid>
  <pubDate>Sat, 28 Jun 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/high_heart_rates.png" medium="image" type="image/png" height="84" width="144"/>
</item>
<item>
  <title>Refreshing your data</title>
  <dc:creator>Your Name</dc:creator>
  <link>https://crickles.org/posts/2025-06-28_refresh_data.html</link>
  <description><![CDATA[ 




<p>As you know, Crickles now sources all of your activity data from the excellent intervals.icu platform. A number of Crickles users have asked for the ability to re-load their data into Crickles - either because they have made some kind of change in intervals.icu that hasn’t fed through to Crickles, although normal activity updates should be automatically reflected, or because for some reason data is missing. This function is now available from the Crickles <em>Profile</em> page where there is a new <strong>Refresh My Data</strong> button. When you hit this you’ll see a dialogue box asking you to confirm that you want to do the refresh.</p>
<p>Should you do so this will delete Crickles’ record of data obtained from intervals.icu. You can temporarily carry on using the Navigator but the next time you refresh the page or prompt a data reload, Crickles will re-fetch your activities from intervals.icu. This may take a couple of minutes.</p>
<p>You also have the option to delete Crickles’ cache of your detailed activity data. This is not required if you’re just checking that Crickles has your full, correct set of activities. If you do choose this option the next refresh will take about as long as your first visit to the new version of Crickles.</p>
<p>Any data that Crickles was able to retain from a Crickles classic account will not remain in place and will not need to be reloaded.</p>
<p>As ever, let me know if you run into any problems with this feature or have any questions.</p>



 ]]></description>
  <category>news</category>
  <category>how to</category>
  <guid>https://crickles.org/posts/2025-06-28_refresh_data.html</guid>
  <pubDate>Fri, 27 Jun 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/refresh_screen.png" medium="image" type="image/png" height="86" width="144"/>
</item>
<item>
  <title>Welcome to the new Crickles site!</title>
  <dc:creator>Your Name</dc:creator>
  <link>https://crickles.org/posts/2025-06-07_welcome-new-crickles.html</link>
  <description><![CDATA[ 




<p>As you can see, the Crickles website has had a makeover. The first purpose of this is to re-integrate the Navigator with the rest of our content; these have been separated for some months and are now back together.</p>
<p>A second purpose is to provide a site where methodology descriptions, occasional news and the Navigator can be seen together. Methodology descriptions and underlying research are grouped under the <strong>Research</strong> heading on the menu bar. At the time of writing, there are two papers there:</p>
<ol type="1">
<li>A detailed explanation of how Crickles calculates sustainable heart rate.</li>
<li>Our analysis of the relationship between the frequency or <em>irregular</em> activities and a diagnosis of a heart rhythm issue such as atrial fibrillation.</li>
</ol>
<p>It is our intention to build out much more such content. To guide us, we are still keen to get feedback on how comprehensible, interesting and possibly even useful this is. The derivation of sustainable heart rate is relatively straightforward in comparison to the models used to determine heart rate intensity and cardiac stress. We want to ensure that the exposition of the material matches the nature of interest from the Crickles community and we can expect to have to learn how we go to get this right.</p>
<p>Meanwhile, for the time being other content remains on the old home page, which you can still find <a href="https://crickles.casa">here</a>.</p>



 ]]></description>
  <category>news</category>
  <category>open source</category>
  <guid>https://crickles.org/posts/2025-06-07_welcome-new-crickles.html</guid>
  <pubDate>Fri, 06 Jun 2025 23:00:00 GMT</pubDate>
  <media:content url="https://crickles.org/images/css_screen.png" medium="image" type="image/png" height="73" width="144"/>
</item>
</channel>
</rss>
