Crickles (and privacy) in 2019

It’s been a little while since the last noticeable change to the Crickles Navigator. From the feedback we get it seems that people find the Fitness and Fatigue functions to be particularly useful, and truer to actual feelings of fitness and fatigue than the alternatives available elsewhere. This supports our belief that the Cardiac Stress Score (CSS) is a decent functional measure of the cardiac stress incurred during exercise.

There are a number of changes that I’d like to make in 2019. First, I plan to update the analysis of data from the Crickles survey. Last time I checked there were suggestive relationships between reported cardiac health and CSS-based measures on Crickles. Now that we have materially more responses, I’m curious to see whether these relationships attain a level of robust statistical significance.

As well as new features such as user-configured alerts, I’d also like to strengthen the Crickles technical platform. This requires a little more investment. To fund it, I’ve explored a number of collaborations with other health and fitness products to see whether the Crickles analytics could add value to them and generate enough income for our own improvements. In every virtually case I have so far found that these other products do not respect user data in anything like the way that Mark and I require and so collaboration is impossible.

One consequence of what seems to me to be widescale abuse of user data is that Strava themselves, whether on principle or in the light of the EU’s General Data Protection Regulation, have tightened up app access to Strava data. Last year they removed the ability for an app to identify a user’s Strava followers/friends. This meant that thereafter Crickles was unable to offer group selection based on your current Strava friends. This is sad but we can’t blame Strava: other apps were, to my knowledge, chaining through users through their follower relationships to trawl data without appropriate consents. At the start of this year, Strava removed the ability for apps to access users’ email addresses. This makes the Crickles sign-up process more difficult, but, again, Strava really had to do that to avoid inappropriate data harvesting by unscrupulous apps. (It also meant more work for me that I didn’t want to do!)

This is all frustrating but it’s the reality of the current social network landscape. Most applications base their business on non-transparent forms of “social listening”: offering functionality as a lure to gain personal user data that can be re-sold to advertisers. Crickles will never do this. What we may instead do is offer a premium tier and levy a modest charge for it. I have mixed feelings about this but it would help me cover my costs and fund the improvements to Crickles that we’d like to make. A premium service may include, for example, analysis of more/all of your activity history; email and/or text alerts; personalised reports; and new/advanced analytics.

Meanwhile, we’ll continue to support Crickles as it is now and occasionally add new features, as we have been doing. Also, I’ll report back on the findings from the survey when they’re in.

Anastasiia is not one of us

Some of you may have noticed this, or something like it, in your Strava feed:

Screenshot 2018-10-30 at 16.06.04

I had a similar “discussion” in my Strava feed from another club – Regents Park Cyclists – a few days ago. The more revealing photo in that instance apparently depicted someone called “Brian”.  It goes without saying that we must assume that these come from hackers and/or pimps, and that the photo is no more likely to bear a true likeness to the git who posted it than the message is to reflect an honest yearning for a connection of human warmth.

As far as I can see, there’s nothing to stop anyone from joining any club on Strava and “starting a discussion”: the only remedy is to make clubs invitation only, which would be a shame. If we get more Anastasiia’s, that’s what I’ll do. For now, I’ve booted “her” sorry ass out of the club, even though it’s a futile gesture.

The serious issues behind this, beyond the huge ones of cyber/identity theft/fraud and human trafficking, do impact us directly in smaller ways. At the end of this year apps like Crickles will no longer be able to obtain the email addresses of their members from Strava – presumably because the abuse of this facility is already a problem. This is certainly an inconvenience.

I’ll write more about this, and about data policy on Crickles, in due course.

For now, be aware that the Strava Crickles club has no meaningful relationship to Crickles as you know it from this website and the Navigator. It’s simply a bulletin board with, as it happens, quite a different membership from “true” Crickles. Your data as seen on the Navigator is held securely on the Amazon Cloud (like Strava’s data) and the appearance of Anastasiia in your feed does not imply that it has been hacked.

Major update to Fit-Fat charts

Fit-Fat charts on the Navigator have had a subtle but important upgrade. Initially, the tab looks unchanged:

ff_3_charts

The main difference at first is that by default all of your Crickles history now appears.

There is also a new drop-down in the side panel that enables you to chart just one of the fit-fat lines:

ff_dropdown

For example, if you choose Fatigue as here you’ll see this:

ff_fatigue

This makes it easier to see changes in each of the three charts.

Furthermore, if you hover over any of the charts you can see the Stress Load (i.e. the CSS) alongside the numerical value of the Fitness, Fatigue or Form on each day. Moreover, you can also draw a rectangle around any part of the charts to zoom in on that time slice – that’s why the Date Range on the side panel is no longer relevant for Fit-Fat. Here’s an example of a zoom in on the above chart to see the time around the end of 2016/start of 2017 in more detail:

ff_zoom

To unset the zoom just double click on the chart.

Why statistics makes you feel old

Yesterday I was cycling up one of the local hills that is often on my route home when I realised that it’s increasingly unlikely that I’ll ever beat my personal record (PB) for the climb. Of course, I’m getting older and presumably less strong and that in itself makes it less likely, but what struck me was that even without a decline in athletic capability the chances of setting a new PB decrease after a certain time. Let me explain…

Imagine that you do the same event most weeks – say a park run or a TT circuit – over a number of years. Further, let’s suppose that your “true average time” for this is, say, 25 minutes but that your actual time on any particular week is affected by a number of varying factors. These could be, for example, the wind and weather, the volume of traffic you encounter, how well you slept, the state of your kit (bike, wheels, shoes…) and so forth. Perhaps we can summarise these into three separate variables for (1) environment (wind direction, traffic…), (2) personal condition (restedness, current form…) and (3) state of equipment (which bike and wheels you used…). It doesn’t matter what the variables actually are so long as we suppose, for the purpose of this thought experiment, that they are normal, trend-less and independent. Then, we can add all the random factors together into a single “net random factor” and this will also be normal.

Now in reality you may immediately object that in real life the “personal condition” variable is not trend-less because we initially get fitter as we start a new form of exercise and then over time we age and get less fit. However, my key point is that it will feel like this even if it’s not the case! To see this, let’s suppose that our fitness/form varies from week to week according to a variety of factors but, on average, doesn’t change over time.

Given these assumptions, our weekly time will always be 25 minutes plus or minus a varying amount. In the first few weeks it’s in the nature of statistical fluctuation that we will probably quite often set a PB. However, as time passes we’ll have those occasional “magic days” when the wind and air pressure are favourable, we have only green lights, we’re on our fast bike or in new shoes, and we’re rested and well trained. When all of those factors align we’ll set an exceptional time. In terms of our model, the net random factor will be at a rare and favourable extreme value. Because such values are rare, the time between PB’s will increase.

To illustrate this, I modelled it for an athlete who begins doing the regular weekly exercise at age 20 and continues each week for 50 years. This chart shows five sample random paths, which we can think of as corresponding to five athletes all starting at age 20 and performing the same weekly exercise until age 70:

net_random_value

As you can see, in each of the five cases, before the age of 50 (30 years on from the start at age 20) the athlete has attained a PB that isn’t seen again before age 70. For example, the red line represents an athlete who sets a couple of PB’s within the first five years, then a new one at around age 40 that isn’t matched again in the remaining 30 years. The green athlete has the most encouraging career and the orange athlete the least, while the violet athlete manages the latest PB at age 49.

Over 1,000 such random paths the average age of the last PB is 45, halfway through the athlete’s career. Remember, this is just an artefact of statistical randomness and happens even on the assumption of constant athletic ability!

The psychological impact of this is obvious. Most of us judge our “true” capability to be that recorded by our best times. As those PB’s recede into the past, even if our average times stay the same, there is a perhaps a tendency that it will induce a feeling of nostalgia and a worry of ageing. In truth, a new PB could (in this fantasy world of constant physiology) occur just as easily tomorrow as it did 20 years ago. The problem with ageing, viewed statistically and irrespective of physiology, is that we may not have enough tomorrows left in which to replicate the most extreme favourable conditions of our plentiful yesterdays.

Heart Rate Regularity

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

max_hr_density

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

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

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

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

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

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

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

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

hra_ian

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

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

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

irreg_ian

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

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

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

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

Enhancement to the Timeline tab

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

Timeline activity

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

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

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

Enhancement to Relative CSS

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

CSS pink

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

HR checkbox

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

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

This does not affect any tabs other than Relative CSS.

When will someone run Sub-2 in London

Firstly, a tragic death in London this weekend, widely covered in the press. It will likely be either hyponatraemia (too much fluid and too little salt) or heat stroke, given his age. Time will tell.

One of the other questions was whether or not someone would run Sub-2. The answer was no. Firstly because it was too hot. And secondly because the data said not. It’s not likely to be before 2030 at the rate it is going. I haven’t plotted a 95% CI, but perhaps with a few more technical and training examples, some competition, and optimal conditions, it may be sooner.

See what you think. I have updated some charts I have with the 2018 finish times. I won’t be reading articles about Sub-2 times in London for a while, but on a track in Italy, maybe…

Slide1

 

 

Irony

The other week one of our Crickles members recorded something odd. He was cycling on Zwift (Zwift Fondo Wk1 Wo2), and is a keen cyclist, typically putting in 3-4 sessions per week. It’s ideal for the time-crunched, particularly over winter.

He had been noticing something odd for a while, but he and his doctor had dismissed the symptoms. He would notice that his heart had gone “mad” and that he had to slow down or sometime stop. The symptoms would last for 10 minutes at most. He could then carry on.

In recent months he has been wearing a heart rate chest strap more regularly, but still sporadically, and then this happened:

Slide1There was a sudden jump in his heart rate. Most importantly he felt odd with it too. It came at the end of the ride. The heart rate was out of kilter with his power output. It wasn’t “geometric” – that is there was variability in the heart rate. It fell slightly as his power output fell. Naturally he finished the ride.

For all of these reasons, it looked like a genuine heart rhythm problem. So, he got an AliveCor. This is a small device which pairs with a smartphone or tablet and can record a single lead electrocardiogram. You can buy them from the manufacturer, or Amazon.

A few days later, whilst running, his heart rate jumped again, and this time he caught it on the AliveCor:

Slide2This shows a supraventricular tachycardia, with a heart rate of 220bpm or so. It’s just gone back to normal at the end of the trace. Although you can’t quite see a “QRS” complex (a sign that the bottom part of the heart, the ventricle, has activated), you can see a pause and a “p wave” (a sign that the top part of the heart, the atrium, has activated).

This is a common, not life-threatening, rhythm problem. Most people have a single connection between the atria (at the top) and the ventricles (at the bottom, the pumping chambers of the heart). Some people have two (or more), and then, under certain circumstances, the electrical signals can pass down one of the connections and back up the other, looping round in a small circuit and stimulating the heart to go quickly. This is technically known as an atrio-ventricular (nodal – if the pathways are in a structure called the atrio-ventricular node) re-entrant tachycardia. In this case, it’s most likely that both connections in the node.

The definitive treatment is an electrophysiology study and ablation. This maps out the pathways and burns or freezes one of them. It has a good success rate, and is usually curative (about 90-95%), and a low (but not zero) complication rate.

He is on the list for this procedure (thanks Graham!), and in the meantime is on a drug called flecainide, as he will have to wait a little while. The drug is working. But drugs aren’t ideal when there is a procedure that can cure the situation.

The irony is that it’s my son. I never thought that when we started this project, the work would help me directly.

Good luck to those running the marathon today. I’m out for a ride. With my son. It will be his longest to date at 100K. I’ll be honest to say I am a little nervous.

 

 

Michael Goolaerts – Part 2

I am sure many of you will have seen the tragic footage by now. He was dead on the bike. He came around the corner and went straight on into the bank with no effort to protect himself or steer. It was shocking.

There was this statement, widely reproduced:

“The autopsy confirms the previous hypothesis that death was due to a heart attack and not a crash. He suffered an attack while racing. His heart stopped, and that’s why he crashed”

Remy Schwartz, the state prosecutor for Cambrai

The slight issue I have is with the word heart attack. A heart attack is a specific term for when a blood vessel in the heart becomes blocked and part of the heart muscle dies. This can result in death. Heart attacks are possible, but vanishingly rare. He could have dissected a coronary artery – that is where an artery splits. He could have a coronary artery anomaly – that is where an artery takes an unusual course in the body and can get compressed during extreme exertion. Finally he could have typical coronary artery disease, but the chances of someone like him having typical coronary artery disease (which normally takes decades of smoking, diabetes and high cholesterol levels to provoke) must be vanishingly rare.

What is more likely is that they meant heart arrhythmia – that is the heart beating too quickly – ventricular tachycardia or fibrillation. It is common to call a cardiac arrest (where the heart stops pumping blood effectively) a heart attack, and the two are very different. Let’s see what further tests show.

I guess what has shocked me the most is how most coverage focused still on Sagan (who, to be fair, rode amazingly), and how the world moved on to the Amstel Gold race. I don’t think that life will have moved that quickly for his family, friends and team-mates.