The new Crickles website

From now on, everything to do with Crickles can be found at crickles.org. This integrates informational content that has previously been available on this site and the Crickles Navigator. For the time being this site will still be available for its historical content but nothing new will be added.

Ian

The new Navigator

The new version of the Crickles Navigator is now available here. Details on how to get access can be found here.

This has many significant improvements compared to the “Classic” version. Here’s a summary of the most important changes:

  1. Your data now comes to Crickles through intervals.icu rather than Strava. This is the motivating change and a central one. Unlike Strava, intervals.icu recognise that you own your data.
  2. New activities, updates and deletions are now processed in real time.
  3. The user interface (UI) has been subtly but significantly upgraded. The sidebar, newly entitled Controls & Help, can now be hidden using the new < widget to give more space to the main chart area. On phones the Navigator is now likely to open with the sidebar hidden so if you want to read the help or use the controls to change what you’re seeing you’ll need to open the sidebar with the > which is at the top left of the screen and then close it again to return to the main display. This makes the Navigator usable on a phone in a way that it previously was not.
  4. Your access credentials are more reliably cached now and there should be consistency across all major device and browser platforms.
  5. All of the models for estimating heart rate intensity and cardiac stress have been updated. The most notable change will be for seasoned users whose history has been used in the training data. For you, the models are now personalised, as they will be for new consistent users over time as the models are periodically recalibrated.
  6. Now that we’re off Strava, openness will be easier. This will be an ongoing project rather than a step change. A non-contentious example of how the calculations in Crickles might be documented is given here. I could do for the same for the analytics that involve mathematical models. Unlike the relatively simple example, these require some sort of background in data analysis or statistics so/and I’m interested to hear views on the user appetite for this. Please get in touch if you have thoughts on this topic.
  7. Currently, there are fewer pages in the new version than in Crickles Classic. In some cases – for example X Factors – a page that was previously in Crickles, though interesting, was not necessarily relevant to the Crickles mission. There are other pages – notably Fit-Fat and Fitness Trend – that I intend to bring back once after a methodology review (how are the decay factors in fitness and fatigue calculations validated for our users?). Meanwhile, there are meaningful improvements to the pages that are in the new version as the following paragraphs show.
  8. There is a new Cardiac Stress vs Peers page that perhaps better than any page till now expresses the central concept of Crickles. On it, you can see your aggregate cardiac stress over the past one to 12 months broken down into its component factors. Better still, you can see how your levels compare to age group peers.
  9. This requires that Crickles knows your date of birth, which is now captured at sign up and is editable on the new Profile page. There, you can also see and edit information about any heart rhythm issues – or the fact that you’ve never had any – that you may previously have reported on the old Crickles survey. As seasoned Crickles users will know, this information is very helpful for our research and if this currently shows as Don’t know we would be grateful if you could enter whatever you can.
  10. The Regularity page is not currently in the new Navigator but you can see the Regularity reading for each activity on the Timeline page where anything other than Regular is visually flagged.
  11. This information is also still available on the Activities page. This has also been significantly enhanced and shows much more data, grouped into logical blocks.
  12. There is a new Route maps page. For any activities where your recording device captured location data you can see a nice zoomable map of your route with a choice of map presentations. If your device also captured your heart rate during the activity your heart rate level throughout is colour coded using the Low / Moderate / High colours from the Seasonal page..

Crickles 2 April update

My aim to get the Crickles 2 production release out in Q1 has slipped slightly. All of the heavy lifting is complete and Crickles should now work operationally to production standard. All that remains are some refinements to the secondary models and possibly a few UI tweaks. Details on what has changed will be given when the new out-of-beta version is declared.

It is possible that, despite my best efforts, during the substantial changes made last quarter some users may have acquired imperfect data in the Navigator – for example, the odd activity amendment could have been missed. If you notice this please get in touch.

The announcement will be soon.

Ian

Crickles 2 Update

Here’s an update for those of you awaiting a formal release of the post-Strava version of Crickles.

The beta version described in the previous post is proving stable and the package of functionality that is there now will not change substantially this month.

The main remaining “to do” concerns the initial data load on the first visit. Anyone who has tried the beta will have seen that this currently takes a few minutes, which is not ideal. In Crickles Classic this was not an issue as the Navigator was not immediately available on sign-up and the delay between signing up and being able to access the Navigator enabled Crickles to backload and process a meaningful chunk of data. If anyone is especially interested in the thinking about how to process the initial load more quickly while not incurring further costs in an app that I don’t want to charge for please get in touch; if you’re familiar with docker and AWS lambdas you’ll understand the options under consideration. Similar considerations apply to preparing for a potentially significant uptick in user volumes.

The other topic that I’ve been giving thought to is how best to make Crickles “open”. Here, the issue is primarily a “what to” rather than a “how to” question. Making the GitHub repo containing the Navigator code publicly available, for example, wouldn’t be a very effective way of opening up Crickles methodologies to non-programmers. On the other hand, not showing any code at all is probably not open enough as code is ultimately the best language to describe how things truly work. As an experiment in finding a good balance, I’ve put together this description of exactly how Crickles calculates your sustainable heart rate on the Sustainable Levels page. This is substantially less meaty than topics such as the calculation of cardiac stress and feels like a good place to start. Please let me know whether you’d like to see more like this or whether a simpler kind of description would be more useful.

I’m still hoping to get a release out this month. Follow this site for news.

Ian

Crickles Beta release

Today the Crickles Navigator moves from an alpha to a beta status. This is a version of the Navigator that is functionally close to the forthcoming formal release and is available now for anyone who is prepared to accept the caveats described below. The three things you need to know about this version are listed at the end of this post.

There are several important, positive improvements in this version compared to classic Crickles, notably:

  • Your activities are now sourced from intervals.icu, which is an open platform that is positively supportive of apps like Crickles. More information is available over the intervals API and intervals does not have a policy of prohibiting value-adding analysis.
  • The management of user credentials and cacheing is much improved and I hope that the initial sign-up process is easier too.
  • Data and analysis in Crickles now updates in real time as you add and update your activities on your Garmin, Wahoo and other devices.
  • There is a new Route maps page that shows you where you exceeded your sustainable heart rate on an activity (subject to your heart rate being captured).
  • There is a new Cardiac Stress vs Peers page that does what it says. This can be thought of a much improved version of the old CSS Factors page.
  • Much more information about your activities can be seen on the Activities page.

There are, however, some features of classic Crickles that are not yet in the new version. Most or all of these will be re-introduced. These include:

  • The Fit-Fat page. Here, I want to reconsider how the Fitness and Fatigue figures can be validated before re-introducing them.
  • Fitness Trend. This is a popular page that I like myself; see point above.
  • The Irregularity page. While the Regularity status of each activity is now encoded on the Timeline page, as well as still being shown on the Activities page, the peer comparison is not yet available pending consideration of how more intuitively to present it.
  • X Factors. This was perhaps the most sophisticated of the pages in Crickles classic – or at least the one that juggled the most models – but it’s less central to Crickles and so hasn’t made the first cut.

Why is this version a beta and not a release version? There are three primary reasons:

  • The way that Crickles both manages new users and processes information have fundamentally changed and we need to monitor how this holds up under increasing volumes of users who will push the load on the system and uncover unanticipated edge cases. Until we see how it goes things may be unstable now and then. There may be short periods of unavailability during the beta period, though hopefully not an annoying number of them.
  • Before declaring a formal release I want to re-validate all of the models in the new context. Also, I have not yet rolled out the final models, some of which are improvements on those in Crickles classic. It’s probably hard to detect this as an individual user but during the beta phase you may occasionally see that a large number of your metrics are recalculated in the event that a model upgrade has been made. This is very rare in the live system but will certainly happen at least once in March, and probably a few times.
  • In reconsidering what Crickles can be like in its far more open incarnation, I’ve come to think that this particular website, which is created using wordpress, is the wrong platform. I intend to move onto one that is simpler and more supportive of extended model descriptions and open source software. If things go well, a first version of the new site, replacing this wordpress site, may be available upon the release.

Here are the three things you need to know:

  1. The Navigator has now moved. Its new home, where it will remain, is at https://navigator.crickles.org.
  2. To use it you will first need to create an account at intervals.icu. When doing so connect to all of your relevant sports devices directly instead of through Strava as activities that come from Strava cannot be read into apps like Crickles because Strava has prohibited that use of their API.
  3. You can try the beta version now – the release version is expected later this month.

Ian

New Crickles releases

Starting today, there will be a stream of preview releases of the Intervals-based version of Crickles, leading incrementally to a full new release in due course. These will come in three phases:

Alpha releases

Since Strava became a non-viable source of data in November, Crickles has been re-engineered to get data from Intervals.icu instead. The need to overhaul the account creation process presented a natural opportunity to improve the sign-up process and also to address long-standing issues affecting the management of user credentials. This has now been done: those of you who have reported that some browsers on some platforms don’t cache your log-in details properly should hopefully now find such problems to be resolved. The purpose of the alpha preview versions is to test that:

  1. Crickles user data is correctly retrieved from Intervals and the interaction between the two platforms is smooth;
  2. The sign-in experience remains flawless thereafter.

Please note that only a very limited subset of Crickles functionality is available during the alpha preview cycle – the bare minimum needed to test the above. In particular, none of Crickles’ unique models, for example for deriving Cardiac Stress Scores, will be available during the alpha phase. Also, the analysis available in alpha releases is based on your activities since Crickles was taken offline in mid December. This date is arbitrary and further releases will make more historical data flexibly available.

Given these limitations, the alpha phase is aimed at existing Crickles users who already had, or have recently created, Intervals accounts and want to check that their data flows through. For people unfamiliar with Crickles, I would strongly advise sitting out the alpha phase as it will not give you a good indication of what Crickles is all about. I ask again that you all please use Intervals to connect directly to your devices rather than via Strava as apps like Crickles are prohibited by Strava from producing any analysis based on data that has passed through their API.

Be aware that, while data security is already now production-grade, the Crickles’ alpha environment may from time to time be taken down (I’ll try not to do that too often) and that updates, which may interrupt your session, may be made at any time without warning.

If you are interested, given these caveats, in trialling the alpha releases please let me know and I’ll send you a link. This is available now. These are formally “pre-releases” and are not available in the normal way from this website.

Beta releases

Alpha releases will continue to be made to re-introduce familiar Crickles functionality. Adding back many advanced features requires another step change where modelling of current activities depends upon analysis of historical activities. As many of you will know, this was previously done by partially processing new activities in near-real-time and then running a daily deep consolidation. The purpose of the beta phase is to re-implement this in the Intervals context. This needs to be done in order to bring many Crickles pages back on-line; during the beta phase the full set of Crickles pages will be incrementally re-introduced (although the target feature set may shrink or grow at this time).

It will therefore be possible to get an increasing sense of Crickles’ functional capability as this progresses.

Like the alpha releases, the beta releases are “pre-production”.

Return to production

Once the alpha and beta releases have re-introduced all of the Crickles functionality and this has been tested enough to prove that everything works well on the new platform, a “production” release will be made. What this amounts to is essentially –

  1. Making the Navigator available from this website, as before.
  2. Increasing the server capacity and boosting resilience measures.
  3. Establishing a staging environment to avoid disruptive releases.
  4. Completing documentation and details such as graceful error-handling.

Even after the first production release, you can expect several more throughout the year to extend what Crickles could previously do.

I’m not sure of the exact timelines – I expect to get to production grade some time during this quarter.

Ian

Crickles in 2025

At the time of writing, the Crickles Navigator remains off air. Happily, I can confirm that there will be an initial new version launched before too long. While I’m still working through many details, the platform from which Crickles will source data – previously Strava – will now be the excellent Intervals.icu service, as proposed by a number of Crickles users. If you’d like to be notified when Crickles is re-launched, you can either follow updates on this website or email me at ian@crickles.org.

Switching from Strava to Intervals.icu provides an opportunity to share insights and information more openly. It may be useful to think about this in the following streams:

  1. Data analysis and methods
    Sharing the reasoning behind each of the Crickles models, along with the techniques and calculations that implement them.
  2. Learning from the data
    Unlike Strava, Intervals.icu does not claim that your data belongs to them. Going forward, this enables us to generate and openly share insights into exercise and fitness while fully respecting user privacy.
  3. Health and training
    For users, coaches, or anyone looking to improve their fitness tools, we aim to make it easier to do so with Crickles. This could include enhancing the existing analysis in the Navigator, introducing new features, or making data accessible for users’ own analysis.
  4. Technology
    Making these tools and techniques available – usually on our website – comes down to technology. Broadly, this breaks down into: (a) getting the data, (b) analysing the data, (c) building the user interface, and (d) managing infrastructure and dev ops.

For people of all backgrounds with a genuine interest in Crickles, I’m happy to share, explain, and discuss any of these topics. If you’d like to learn more about – or contribute to – one or more of them, please do get in touch to indicate your interest.

In the meantime, I’d encourage anyone who does not have an Intervals.icu account to get one. Please be sure to get your sports data on Intervals.icu directly from your devices as any data that is processed by Strava remains unusable by Crickles. Also, could anyone who has not previously taken our short heart health survey please do so.

Many thanks and Happy New Year!

Ian

Crickles after Strava

Crickles and Strava

For Crickles, Strava has been a mixed blessing: on the one hand the Strava API has simplified the collection of activity data from our community of users; on the other hand, Strava’s view that any data so obtained belongs to them rather than to their users has stymied our ability to generate and share useful insights from it. In particular, Strava has instructed us not to publish a journal paper that we think may be potentially helpful to practitioners and researchers in athlete heart health. Now, Strava’s recent announcement that further restricts apps using their API makes it impossible for Crickles to provide any meaningful service using the API so from Wednesday the Crickles Navigator is coming down, at least temporarily.

Some background on the research side… The primary purpose of Crickles is to enable our users to quantify their aggregate cardiac stress through exercise and to compare this with levels from a cohort of peers. We created Crickles because we couldn’t find, and still haven’t seen, metrics on other platforms that do this well. In addition, we developed a simple method for identifying certain apparent irregularities in user heart rate data acquired from sports devices such as Garmin or Wahoo bike computers. Our simple irregularity measure has a very strong association (p-value ~ 0.0001) with a reported diagnosis of heart rhythm issues. Both our measure of cardiac stress and our irregularity flag reach beyond established science so around four years ago Mark – a senior cardiologist with an interest in sports cardiology – and I co-authored a paper on our methodology and findings in order to get them into the public domain for the scrutiny of others. If this holds up and can be replicated it could give endurance athletes a pre-symptomatic warning of some potential heart health issues they can take to a medical professional for proper screening. This does not require the athlete to wear a high-end watch with built-in cardiology features but can be taken from pretty much any sports device that accurately captures heart rate during exercise. (The Crickles cardiac stress score does not even require that!)

We approached Strava for their consent to publish our paper, as required by the terms of use of the Strava API. They gave us a robust No citing privacy concerns, even though we did not propose to publish any athlete-specific data or data from which any user could ever be identified. Strava told us that they did run partnerships with the scientific community on research projects and that we could apply to their program but when we asked for details on how to apply we never got a response.

Later, at our request, a team of post-graduate Mathematics students from Warwick University did an excellent research piece that explored a more sophisticated technique for irregularity detection. Sadly, their analysis and their ability to publish their findings were hamstrung by the inability to use any data obtained by Crickles through the Strava API, even with written user consent and when fully de-identified. We also ran other studies in conjunction with Warwick University’s post graduate students; while interesting, these were also frustratingly limited in scope for the same reason.

Strava have not mellowed nor have their increasing revenues – reported to be $275 million in 2023 – led them to relax their restrictions on ways in which apps using their API can bring value to users. On the contrary, last month Strava sent out an email with no prior notice to all app developers instructing us that a new, highly restrictive set of terms of use is now in force. This is well covered by DC Rainmaker here. This has a 30-day enforcement period cutting in on 11 December and from this date we will have to take Crickles down, at least for the time being.

Future Crickles

There is now no future for Crickles as a Strava-based app. I don’t know for sure yet whether obtaining user data equally easily from any other consolidating source will be feasible. Certainly, I don’t have the resources, or the interest or the funds, to develop direct connections to a range of sports devices. I am actively exploring an alternative but this takes time and I have to fit it in with my regular consultancy work. In the best case, we might have a Strava-free Crickles out by the new year; in the worst case, it won’t be viable.

Being released from the Strava API terms of use potentially offers new opportunities to conduct and publish the kind of research that Mark and I have wanted to do all along. Even if we cannot obtain user activity data through a seamless near real-time interface, we can try to find a relatively painless way to enable willing users to send us equivalent data offline. To this end, we will be in touch, and especially with a focus on those who have been kind enough to complete our short heart health survey over the past few years (we only need it once so if you’ve submitted it already we don’t need it again!).

As well as research, we might also consider providing customised analytics similar to that which Crickles now offers through the Navigator but personalised, although this would be more time-consuming and we would probably have to charge for it. If there is interest, we could even consider offering training on how to do this analysis yourself, but that would be a far more ambitious undertaking.

Whatever path we take, there is no future in which we will ever sell user data. If we need to raise cash to cover our costs, which we have not done historically, we’ll do it through a transparent direct charge. (And here, many thanks again to those of you who have made a voluntary contribution!)

Please do get in touch if you have any thoughts or suggestions about where, if anywhere, to take Crickles next.

Many thanks!

Ian

Recent changes at Crickles

If you’re a regular user of Crickles you’ll have noticed the new Pending page that arrived recently. This arose from a deep change to the way Crickles works. Previously, Crickles would take a once per day snapshot of all users’ activities and run a battery of calculations on them. Many of these calculations require analysis of activities over a long time period and comparisons between cohorts of users. Because of this, it’s not easy to update Crickles in real time. Furthermore, when new users sign up Crickles needs a relatively high amount of historical information as background for current metrics – for example, the Cardiac Stress Score for an activity requires a comparison with historical efforts.

Wherever possible, Crickles uses second-by-second (or near equivalent) data for heart rate and power from users’ sports devices as the basis for analysis. Where this is not available – for example, when the user doesn’t wear a heart rate strap or sports watch – we use machine learning algorithms instead. Getting all of this data for existing and especially new users from Strava requires Crickles to make a lot of calls to the Strava API; not unreasonably, Strava limits this. To an extent, Crickles has always tried to regulate API calls to avoid running into these limits but until recently at times of high load the limits would sometimes nonetheless by met and when this happened Crickles would use its machine learning algorithms in place of second by second data to derive CSS and related output. As a user, you’d see that in these cases CSS numbers would be there but not Normalised Power, Effort Spots and (if you have access to them) or Charts. Fundamentally, this did not affect core Crickles metrics but some users (including me) miss those extra features when they’re not there.

To avoid this Crickles now collects activity data in real time rather than on a daily cycle. This is how we’re able to produce the Pending page, although the extra data collection required for this new page is currently run periodically (generally within 30 minutes of upload) rather than in real time. In addition, there is now also forensic management of Crickles API calls to Strava so that we should never hit an API limit. The main calculation load that updates all of the pages in Crickles other than the Pending page is still done on the daily cycle but this now separated from data collection.

In short, a substantial amount of work has been done to implement changes that few users will notice! However, it’s a better, more robust architecture and it now remains open to Crickles to pull some of the calculations (such as Effort Spots) into near real time in future updates.

The changes were significant enough to risk disruption. I think everything is running smoothly now but if you see anything that looks awry please let me know.

Ian

New Pending page

As many of you have noticed, a new Pending page has been in beta on Crickles. This is now officially live, although changes to its style and operation may yet still be made. This page shows your activities on Strava that have not yet been processed by Crickles. Unlike in the beta release, these do not usually appear instantly on the Pending page but will normally show up within 30 minutes. If Crickles is exceptionally busy this may occasionally take longer.

For each activity on the Pending page you should be able to see headline data like this:

If you recorded your location during your activity you should also be able to select Map from the Data: dropdown to see a zoomable map like this:

If you update an activity on Strava – for example by renaming it – you may see more than one version of the same activity in the Activity: dropdown.

If you have an activity on Strava that does not appear in the Pending page within an hour, and certainly if it doesn’t show up after a calc update (indicated by the Last update: field in the sidebar), please email me (you can use the Contact page) to let me know.

Ian