Blog post by Marco Altini
Heart rate variability (HRV) is a well-understood phenomenon allowing us to monitor objectively physiological stress.
However, historically HRV analysis has been poorly standardized, leading to difficulties in properly designing and implementing studies as well as difficulties in comparing studies outcomes. The ease of access to HRV data today often obscures the complicated nature of understanding and correctly interpreting the information provided and underlying physiological processes.
When designing HRV4Training we had to make several choices that I'd like to highlight here as transparency and clarity can only move this field forward.
In this (updated) post we cover the basics of HRV and in particular the physiological mechanisms behind it, as well as best practices and a brief introduction to data analysis. I hope what follows can give some clarity to the ones interested in learning more about physiological stress and how their body responds to it.
What is heart rate variability (HRV)?
Each beat of our heart is triggered by an electrical impulse that can be easily recorded by an electrocardiogram (ECG), one of the most common ways to monitor heart activity. However, our heart doesn't beat at a constant frequency. When we talk about heart rate variability (HRV), we are interested in capturing the variability that occurs between heart beats.
Let's look at 60 seconds of ECG data. This is some data I recorded on myself using the ECG Necklace, a research prototype we developed when I was working at imec, a few years ago. The device is a small sensor connected to 2 ECG leads:
In technical jargon, the differences between beats are called RR intervals. The name derives from the fact that the shape of the ECG signal at each beat has been assigned letters (namely the QRS complex). For more on the QRS complex you can just have a quick look on the Wikipedia page, however the only relevant point here is that R represent the peak(s). Going back to my ECG, if we zoom in a bit and look at only 10 seconds, we can see clearly there are differences between intervals; some are shorter, other longer:
Another way we can look at these differences is by plotting an histogram of the RR intervals. Basically we stack up RR intervals that are of similar duration. This way it's actually much easier to see how the values are distributed over a rather wide range. For this plot, I used again the full minute of data from the first plot:
It was April 12, 2017, 5 days out from the 2017 Boston Marathon when my coach (Adam St. Pierre Carmichael Training Systems) first introduced me to HRV4Training.
As a physician, runner, and gadget geek I was immediately intrigued by this quantitative metric of stress. Both personally and professionally my stress over the past ten years of life has been both manageable and predictable. My professional time was spent working shifts at my local hospital. While my shifts were often stressful, I was able to leave my stress where it belonged (at work). When I was off I was off, and could sleep well knowing that my partners would provide great care for the patients I had handed off to them. After a tough shift, I would intuitively know that my body and mind needed rest. Easy runs after hard shifts were the norm.
As life would have it, one month after learning about HRV4Training my career took a dramatic change. I was laying awake at 3AM at the hospital when I came across a posting on my Facebook feed asking if I would be interested in founding an online primary care practice especially for runners called SteadyMD. I was immediately hooked and found myself on a plane bound for St. Louis to meet with the founders of the company. The day after my meeting in St. Louis I embraced entrepreneurship and began monitoring my HRV.
My life of predictable stress as a physician, parent, and athlete quickly morphed into a life of unpredictable stress by adding the additional role of startup entrepreneur. Many of my friends are founders of companies. For years they have shared their stresses with me, but it wasn’t until recently that I could relate to what they had been going through.
Challenge has always been my main motivator in life. Easy tasks don’t engage me. Medical school, mountaineering, big wall climbing, backcountry skiing, marathons, and raising a family have all been my objectives. Starting a business is hands down the hardest thing I have done to date.
As an entrepreneur my work is no longer confined to the walls of the hospital. My sleep has become more erratic with late nights responding to emails followed by early mornings waking with epiphanies and excitement. Despite my increased workload, balance is of paramount importance to me. Falling into the trap of neglecting family, career, and workouts is not an option. HRV tracking has been a useful tool to achieve this balance.
Metrics aside, spending 60 seconds every morning checking HRV provides a valuable opportunity to build self-awareness. Learning to listen to your body is an invaluable skill. I use the HRV testing interval as a daily ritual to check in with myself and simply be mindful of my situation.
My HRV consistently drops after busy hospital shits, nights of restless sleep, and periods of consistent hard training. As a runner I train with heart rate and power. Many argue that these metrics are inferior to pacing based on perceived exertion. I agree that self-awareness is the ultimate measure, but for most people objective quantitative metrics are a means to help better understand ones body.
Since partnering with SteadyMD I have found utility in using HRV4Training as a means to coach my patients to a healthy stress/rest balance. In the recent book Peak Performance by Magness and Stulberg the authors present a growth equation that is defined as growth=stress+rest. HRV is a great way to quantify the rest portion of the equation. HRV provides me as a physician a window into my patients’ progress towards growth.
For years I have seen athletes over train and suffer the consequences of deteriorating performances, injuries, and even development of chronic medical conditions.
My goal at SteadyMD is to keep my patients healthy and performing to their potential. To learn more about my innovative primary care practice for runners that provides you access to me from the convenience of your Smartphone go my website www.steadymd.com/hrv or follow me on Facebook, Instagram, or Twitter @steadymdrunning
Final Surge is the training and coaching platform that empowers athletes and coaches to reach fitness and performance excellence like never before. Ideal for runners, cyclists, and multisport athletes and coaches in sports like triathlon, duathlon, XTERRA and more. Final Surge is used by athletes, coaches, teams and clubs of many sports around the world where performing your best is what it’s all about. FinalSurge.com, and the Final Surge iOS and Android app, have all of the features you need to track and analyze your training, from communicating with coaches and planning future workouts to synchronizing workout, activity, and GPS data from your tracking devices. We recently collaborated with Final Surge and added their platform to the list of our supported integrations, allowing all Final Surge users to push HR and HRV data via HRV4Training.
Similarly to other integrations, you will have to go to Menu / Settings and enable the integration, then login with your Final Surge credentials, so that we can push HRV data each morning automatically, right after the measurement.
You can also manually push data for any past day from the History page, by tapping a measurement bar, and selecting 'Push to Final Surge' - data will show up under Daily Vitals in Final Surge.
We hope you'll enjoy the new feature. Please see a few screenshots below.
Today's Plan is one of the leading platforms used by cyclists to track and optimize training, including a sophisticated training system, coaching tools and analytics as well as many integrations with other sensors and tools out there.
As many HRV4Training users are also Today's Plan users, we have received many requests to integrate the two platforms. Today's Plan provided great support in the past few weeks so that we could add their platform to our integrations, and provide all HRV4Training users with the possibility to push their physiological data to Today's Plan.
Similarly to other integrations, you will have to go to Menu / Settings and enable the integration, then login with your Today's Plan credentials, so that we can push HRV data each morning automatically, right after the measurement.
Note that you will be able to push data to Today's Plan only if you are a premium user on their platform, otherwise we are not allowed to push data.
You can also manually push data for any past day from the History page, by tapping a measurement bar, and selecting 'Push to Today's Plan' - data will show up under Calendar in Today's Plan.
We hope you'll enjoy the new feature. Please see a few screenshots below.
Blog post by Marco Altini
This is a short post in which I’d like to cover just one aspect of HRV monitoring and more specifically of guiding training based on physiological responses, which I see it’s something often misunderstood or in general not completely clear when approaching tools like HRV4Training or other similar apps. While HRV4Training provides many insights, some of them built around trying to better understand the big picture and avoid overtraining (see for example HRV Trends, VO2max Estimation , Training Load Analysis , etc.) - I see the main misconception is often on the day to day use of the app.
Let’s revise the basics: HRV, in particular rMSSD or a transformation of rMSSD such as HRV4Training’s Recovery Points, are simply a way to capture parasympathetic activity, or in other words, level of physiological stress. As we apply stress to trigger certain adaptations, measuring our body’s response to such stressors, as well as to all other forms of stress we are affected from (e.g. simply life happening, work stress, family, etc.), is very helpful as it can provide objective feedback and help us making meaningful adjustments, the simpler adjustments is probably just being a little more honest with ourselves, and slowing down from time to time, especially when our body is already too stressed.
The example I’ve just highlighted is something we all understand quite well, higher stress as shown by lower HRV highlights how it might be a good idea to take it easy and avoid excessive stress which might lead to overtraining or slower recoveries, hindering improvements in performance.
Now the main point of this article: what do you do when it’s all good? Should you push it all the time because your HRV is within normal values, often shown in apps as a green light?
Of course not.
The fact that your body is in a (physiologically speaking) normal state, is what you should aim for. Normal is good. However, this does not mean that every time HRV looks good you should go hard. The point I’m trying to make, which I’ve discussed also in this podcast with Molly and Peter at the Consummate Athlete, is that you first need to have a plan, then you can make adjustments based on how you respond to such plan, which is something HRV and physiological measurements can allow you to do, by providing feedback on your individual specific physiological response to your training plan.
Normal values, or in other words a green light, should give you confidence that everything is going well and in general you are coping well with your current training and lifestyle. Yet, if your training plan says you are due for a rest day, take it. If you are due for a low intensity workout, do it. Small adjustments such as flipping an intense workout scheduled for tomorrow are another way to make better use of these measurements, however it is important to understand that HRV and physiological measurements are tools for awareness, which allow you to understand how you respond to a particular plan, not to replace your plan entirely.
To sum it all up:
Where to go from here?
As you gather more data, looking at long term trends is definitely when things get more interesting, and in particular looking at baseline changes over time, with respect to your normal values (or SWC in technical terms). Check out for example this article by Plews and Prof to see how they use the data in the long term for their athletes, as well as our analysis of long term trends using multiple parameters (both physiological and in terms of training load), and finally an overview of a few recent studies using similar approaches, that you can easily replicate inside the app, at this link.
Another important aspect highlighted also in the long term trends analysis linked above, is the fact that HRV is not necessarily a metric to be optimized towards some specific value. While we might want certain metrics to improve over time, and others do change as a consequence of our training, for example think about resting heart rate decreasing as a result of the heart muscle improving, HRV does not necessarily behave in the same way. In my opinion, the best way to make use of HRV is to use it as a continuous feedback loop so that we are more aware of the overall level of stress on the body and can make day to day adjustments aiming at eventually optimizing recovery and improving performance.
Stay in touch
Blog post by Marco Altini
Today we are releasing a new feature in HRV4Training, automatic altitude and weather tracking.
Quite a few users and elite teams asked about the relation between resting physiology and temperature changes as well as with respect to altitude (think elite athletes training at altitude for certain periods of time).
A few questions that come to mind: can altitude adaptations be captured through resting measurements? (for example how well we adapt). What kind of changes should we expect? What's behind individual differences in altitude adaptations?
Additionally, some of the insights we provide might be affected by other variables, for example what's the relation between resting physiology and temperature (basically seasonality of these measures)? How are other metrics estimated by the app potentially effected by temperature or altitude? (e.g. VO2max).
We have some insights on these relationships based on published literature (see very short and not comprehensive summary below), but we believe we'll understand much more now that these parameters can be tracked in large populations for much longer periods of time (e.g. years), so hopefully there will be more to say or understand in a couple of months from now, especially on individual differences.
What do you get?
With this feature, we also improved the basic location tracking present in the app to automatically fill in your location instead of asking you to do so manually as well as include these parameters in the Correlation analysis under Insights. The traveling Tag will also be updated automatically when location changes, and all data will be available to your coach in the coach app. In particular, the new feature will enable the following functionalities:
We hope you'll enjoy the new feature and find it valuable to better understand how your body responds to different environmental conditions. Please read below for more details.
Blog post by Marco Altini
[data, code and plots used in this blog post are available on github, at this link]
In early 2016 I answered to a question on Quora on wrist based HRV sensors. The answer was read about 6000 times as of mid 2017, which feels like a decent amount of interest for an obscure platform and a niche topic. I've been updating the answer over time as we've tested more wrist based sensors with the ability to provide RR intervals or raw PPG data, however none of them was up to the standards required by the sports science industry until now.
With the Zoom HRV wrist based sensor, developed by LifeTrak (it's about 139 USD on Amazon), we finally have a device that is able to measure HRV from the wrist reliably and also comply to standard protocols so that you can use it with your favorite apps, just like a chest strap.
Before we start looking at the data, I'd like to list what we'll be focusing on with this post, as there are many aspects to possibly discuss, and we will cover only a few. In particular, we'll cover:
We will not be discussing the software platform around this device and other functionalities. In particular, this is not a review of the Zoom HRV device, this blog post serves only as a validation of the basic ability of the device to measure RR intervals and as a discussion around other points I consider valuable (standards, type of measurements).
We leave it up to others to evaluate the user interface, usability, effectiveness of the additional features built on top of the basic measure. It would make little sense for us to comment as this is supposedly a 'competitor product'.
Why we picked this device and why we believe complying to standards is key to be taken seriously in this business
The Zoom HRV device is not the only one claiming accurate HRV analysis from the wrist. The reason why we choose this one is that it's basically the only one that complies to standard protocols, capturing RR intervals (beat to beat differences used to calculate HRV) and sending them via the standard bluetooth 4.0 heart rate protocol.
Why is this important? Unfortunately most sensors are either locked behind proprietary software / apps or providing only custom metrics, hence they cannot be evaluated in their ability to do what they claim (can they actually measure HRV?), and they cannot be used by other apps.
In our view, wrist based sensors should be just like chest straps, complying to standard protocols, cost effective, allowing users to pick the one they want and use them with different apps, for both working out (Strava, Polar flow, ecc.) and HRV analysis (HRV4Training, Elite HRV, etc).
The only product today on the market that seems to have understood this, is the Zoom HRV wristband by LifeTrak, which does offer also an app and a series of additional tools should you be interested in using their platform, but it does not preclude you from using the device with other apps. This seems to me a smart choice, as more people might be interested in buying your hardware even if they don't care about your software solution (as I did myself).
Blog post by Marco Altini
We've tried something new to bring VO2max estimates to cyclists and not only runners in HRV4Training [this feature will be available by the end of April, 2017] 🚴 🚴🏻♀️ 📱 🔬
In this post we provide an overview of VO2max, explaining what the estimate is good for, and our data driven approach to bring the same feature to cyclists using the app.
Let's start with the basics.
What's a VO2max estimate?
Direct measurement of oxygen volume during maximal exercise, or VO2max, is the gold standard for cardiorespiratory fitness assessment .
There are a series of practical limitations to VO2max testing (and other limitations due to common misunderstandings around this variable, please see the next section for more on this), for example the need for specialized personnel, expensive medical equipment, high motivational demands of the subject, health risks for subjects in non-optimal health conditions (which limits applicability), and so on . Even when testing conditions are not a problem, performing a maximal test until exhaustion just to monitor fitness level might interfere with your current training program.
For these reasons, scientists have been working on submaximal tests, or tests that do not require maximal effort and use easy to acquire parameters to determine VO2max. Any model providing a VO2max value based on parameters other than measuring your oxygen uptake during a test to exhaustion are estimates.
Submaxmial tests have been developed already more than 60 years ago to estimate VO2max during specific protocols while monitoring HR at predefined workloads . Basically, these tests rely on the inverse relation between fitness and HR, with higher HR (for a given workload) typically associated to lower fitness level and viceversa. Contextualizing heart rate (HR), e.g. determining the HR during specific activities, was a good step forward in terms of practical applicability, compared to maximal tests. However, some limitations still apply: the test needs to be re-performed every time that fitness needs to be assessed, still a pre-defined protocol is required,. etc.
Ideally, we would like to keep track of VO2max or cardiorespiratory fitness without the need to perform a specific test. As technology got better and we have plenty of sensors able to acquire accelerometer, GPS and HR data in free-living, during my PhD I've developed several machine learning models that would do just that, for the general population, so without even including exercise data (basically HR while walking at different intensities/locations as a predictor of fitness, see [4, 5, 6] for details).
My results as well as attempts from others that tried to estimate VO2max from rest data, for example HR or HRV, clearly show that using only rest data is insufficient to estimate VO2max with good accuracy . This is the reason why we haven't introduced VO2max estimation models before, and also why the feature was enabled only for runners using Strava and a HR monitor during training. Including workouts data and more specifically heart rate data at a certain workload / effort, is key in providing accurate estimates.
What is this estimate good for?
I will leave it to others to discuss the limitations of VO2max as a measure of human performance (see Magness, Noakes, and others that do a great job explaining the complexities of oxygen consumption, running efficiency, and how the scientific community has been giving a bit too much credit to this variable in the past decades) across individuals (and even within individuals).
What I would like to do here is to highlight how the estimate can be very informative both at the population and at the individual level, as what it relies on, is contextualized physiological data under submaximal effort, the real parameter of interest for us.
The idea is that tracking VO2max over time, as estimated by submaximal heart rate, can provide a proxy to performance/ fitness and therefore help you understand if you are getting in a better shape, and can potentially race faster, just by using available training data and therefore without putting additional stress on the body with specific tests.
For runners, cyclists or triathletes, for example as training improves aerobic capacity and heart rate lowers at a given intensity, VO2max estimates track well with improvements in fitness and performance as determined in racing events. This is true for athletes of any level, as you can easily find logs of ironman champions going through a base phase which gradually lowers their heart rate at easy intensities, as well as recreational athletes improving their fitness in a similar way.
So if submaximal heart rate (e.g. your heart rate while running at a certain pace) is the real variable of interest, why do we use it to estimate VO2max instead of just providing it?
The reason is to make it easier to interpret. Submaximal heart rate outside of lab settings means for example that we create a feature computed as pace / heart rate (as we can't get everyone to run at the same pace like you'd do in the lab) which is a number that represents fitness but is not 'meaningful to a human'. We introduced the pace to heart rate ratio in a recent publication to contextualize heart rate by effort (or workload) and showed that it provides the best predictor for VO2max (with respect to anthropometrics data and resting physiological data) .
Using this predictor to estimate vo2max brings things back to numbers we are more accustomed to, and a bit of standardization, I believe can help, regardless of all the flaws of vo2max. Once we understand why we estimate it, what is it based on, and what can be used for (e.g. track progress over time), this estimate can be a nice feature to look at from time to time to track changes in fitness.
How do you build a VO2max estimation model?
To build a model able to predict VO2max from certain parameters, you need to collect a dataset, including the following:
These parameters, also called predictors, need to be such that we can acquire them in unsupervised free living settings with minimal burden on the user, as we do not want user to have to do specific lab tests or protocols even in free-living. This is why we came up with the heart rate to pace ratio so that each unsupervised free living GPS workout collected via for example Strava could be used to estimate VO2max regardless of an athlete ability.
Why couldn't we develop the same for cyclists before? For the simple reason that while we had VO2max reference data, we did not have heart rate and power data while cycling in our dataset, hence we could not build a model between these variables and deploy it to new users.
User-generated data to the rescue
How did we overcome this problem? We've now tried something new to bring VO2max estimation to cyclists, by using a data driven approach and relying on our growing community of triathletes. In particular, we used triathletes data, as it includes both running and cycling, to model the relation between estimated VO2max (from free-living running data) and cycling-related variables, such as power and heart rate while riding.
In this way we could build new models to estimate VO2max relying ONLY on cycling-related variables, and deploy such models to all cyclists using the app.
Here is an overview of this approach:
In particular, here is an overview of the anthropometrics data of the included triathletes:
This dataset includes 400 people using HRV4Training for several months, and a minimum of 30 cycling workouts with power and heart rate and 30 running workouts with GPS and heart rate data, plus resting physiological measurements.
As we estimate VO2max from running variables and then use this estimate as our new reference, we first would like to make sure our new VO2max reference is a good proxy of human performance, as we've shown in our latest publication . Below is the relation between VO2max estimated from running variables and half marathon time on this dataset, showing once again a strong correlation and giving us confidence that the estimated VO2max can be used for this purpose:
Never forget that this is user-generated data acquired in uncontrolled free-living settings. We did not take 10 people and have them run a half marathon all out (classic sport-science study). We did not do any intervention or asked anyone to follow any protocol. Users trained according to their training plans, and we extracted the best half marathon time over periods of 3 months to a year depending on available data, resulting in the 400 data points shown above. Hence this data are noisy, some users might have never ran a half marathon at intense effort, others might have a noisy heart rate signal, maybe acquired via PPG with a watch. The large amount of data is such that regardless of the unsupervised settings we can capture a strong relation between estimated VO2max and running performance, if such relation exists, as shown above.
At this point we built different models and eventually settled on the best performing one, including age, BMI, gender, average power, average heart rate and resting heart rate as predictors of VO2max for cyclists.
Below is a cross-validation (leave one subject out) on triathletes data, where we used as reference the VO2max estimated from running data, and we predicted VO2max using cycling related variables, then compared the estimated VO2max from cycling parameters with the estimated VO2max from running parameters.
What we expect (more like hoped for) here is VO2max estimates coming from different sets of parameters (pace and heart rate for running and power and heart rate for cycling) to be very similar, as the goal of the estimate is to capture a person's fitness level, which is indeed the case looking at the plot above.
In this post we showed how we could rely on triathletes user-generated data to develop new features from data acquired only under uncontrolled free-living settings. Personally, I think this is one of the most interesting aspects when deploying a validated technology in the hands of thousand of people, and then trying to analyze data and build new models and features, going beyond what is possible in small scale clinical studies.
From a practical point of view, what matters here is the ability to capture submaximal physiological responses to a certain effort (pace or power), which can be translated in fitness level, and useful to track improvements in aerobic capacity over time. We do not care about the specificity of one test or the other (cycling or running), efficiency, muscle fatigue, economy, etc. as it is anyways impossible to take into account such differences while estimating VO2max from variables other than oxygen uptake during an actual maximal workout (and sometimes not even such test). The estimate should be used at the individual level to track changes over time, not as an absolute marker of fitness across individuals, as obviously there is much more to human performance than VO2max or submaximal heart rate, even though the estimate itself correlates quite well with actual running performance at the population level, there is much individual variability.
It is important to understand what this estimate is about, and what can be used for, and hopefully this post provides some clarity around the controversial world of VO2max measurement and estimation, giving you some confidence that you can use the estimate to track progress.
We hope you'll enjoy the feature.
With the next HRV4Training Coach update you'll be able to select a custom range of dates to use to compute your desirable range (basically your normal values, or what in literature is called SWC, smallest worthwhile change) as well as to choose how wide you want it (half a standard deviation (SD), 1 SD, etc.).
This update is a bit on the technical side, but it can be useful after you've collected a few months of data and are trying to make sense of long term adaptations.
When looking at the big picture day to day variations become less important, and we tend to focus on baseline (7 days moving average) changes with respect to training load.
In this context, it can be useful to select a timeframe to determine the desirable range, typically the first few weeks of base training, and then keep the SWC small so that you can analyze baseline deviations, similarly to what is explained by Daniel Plews and Paul Laursen in this post.
We hope you'll find this feature useful!
HRV4Training launched on Android, on March 23rd, you can find it on Google Play. The app contains all features present on iPhone, from the camera based measurement to all the insights we built on top of daily measurements, annotations and workouts as well as integrations with other apps like SportTracks, Strava and TrainingPeaks. In this post, we go over the main features in the app and provide an overview of most functionalities and insights. In particular, we'll look at:
For a general overview of HRV and HRV4Training, please check the quickstart guide.
Blog post by Marco Altini
[HRV4Training will be available on Android by the end of March, 2017. Please follow this page for updates]
Back in 2013 I've developed our first camera-based heart rate variability algorithms, which I first documented here. We went a long way in the past 3-4 years, providing multiple validations and finally publishing a comparison with respect to chest straps and electrocardiography on a very broad range of HRV values last month. While recently we've focused much of our efforts in going beyond the daily measurement and providing meaningful and actionable insights by combining physiological data over the medium and long term with more context (your morning tags, related to sleep, training lifestyle, etc.), there is no doubt one of the main features of HRV4Training is the camera based measurement.
This is also the reason why we hesitated for so long to move to Android. Back when we started development in 2012, it was nearly impossible to have even a Bluetooth link working correctly across phones, let alone hacking the camera. As we decided to finally get busy with Android development again this year, we gave it another shot. It took some time and a few extra optimizations but I'm happy to announce that we have a reliable camera based measurement on Android as well, and in this post I will go over the algorithm and show some data as well as the usual comparisons with respect to chest straps.
Validation paper accepted for publication in the International Journal of Sports Physiology and Performance: PPG vs Polar H7 vs Electrocardiogram
Blog post by Marco Altini
Our validation paper comparing camera based acquisition, Polar H7 (chest strap) and electrocardiography (ECG) was accepted for publication in the International Journal of Sports Physiology and Performance. The paper is titled "Comparison of heart rate variability recording with smart phone photoplethysmographic, Polar H7 chest strap and electrocardiogram methods" and the main author is Daniel Plews, who I'd like to thank, together with all other co-authors (Ben Scott - who carried out the entire data collection, and also enjoyed participating in the study as shown below, as well as M. Wood, A.E. Kilding and Paul Laursen), for their work on this paper.
In this study we had the luck to collect a wide range of rMSSD values, Ben himself provided us with his own ridiculously high HRV data (rMSSD ~300ms), something that triggered the need for a different way to handle artifacts and correct for ectopic beats, as the current standard used in clinical practice (discarding beats that are more than 20-25% apart) would overcorrect in case of such high HRV (these changes have been implemented in the app almost a year ago).
If you've been following this blog, we've shown plenty of samples already to validate the accuracy of the camera based measurement with respect to regular chest straps, for example here, here for iOS10, here for the iPhone 7+ and the double camera drama, and finally here where we compared many different PPG devices. However, this is the first time we show also ECG data, the gold standard (see a sample here). We think it's very important to go through peer reviewing as well and being clear and transparent on our work, and this paper is a good step forward.
I'd like to take the opportunity to stress again that while validated, PPG measurements need to be taken in a certain way, as they are more prone to noise with respect to other methods. It's important to limit movement as much as possible, and in general to follow the simple steps we covered in this blog post. Note also that PPG doesn't work for everyone, for example low perfusion might cause trouble in detecting blood flow with this method, even though we haven't seen many of these cases. This being said, the app is typically pretty good at detecting when things go wrong and informing you. Make sure to obtain optimal signal quality when measuring and to practice using the practice mode under Menu / Resources in the app, if you have trouble obtaining optimal signal quality.
Blog post by Marco Altini
What's training polarization?
We've talked about training polarization a few times in the past. To recap, quite some research in the past 15 years showed how elite runners (and not only runners) spend much of their time training at low intensities (if you are into papers, check out Seiler's work or this review by Paul Laursen). Following early research, interventions have been carried out to randomize runners in groups including a greater amount of low intensity training, and groups including more moderate intensity training. Results showed consistently improvements in running performance for groups training at lower intensities for most of the time, typically 80% of the overall training load. Many runners, coaches and authors have been adopting low intensity training for many years, under slightly different guidelines, but all following the same core principles (see for example heart monitor training by John Parker Jr, most of Phil Maffetone's work - the 180 formula, MAF test, etc. - and more recently 80/20 running by Matt Fitzgerald, who also wrote this nice piece on the topic on RunnersWorld).
Personally, I've reported before how shifting to a much more polarized training brought significant improvements to my running. We also analyzed HRV4Training users and highlighted the same relations on our userbase, for both runners and triathletes (about 400 users in total). Faster runners consistently trained at lower relative heart rate and pace with respect to slower runners, according to the data analyzed at this link.
How does it work?
For the ones adopting this training method, objective data can help keeping ourself honest and keeping track of the overall balance. Similarly, you might simply be curious to know how you are training and analyze training periodization a bit more systematically. While training with a heart rate monitor is a must, as perceived effort might not be very well aligned with how hard we are working our system, sometimes it can still be hard to keep track of how we are doing. Hence, the new training polarization feature aims at providing a simple overview of our past month of workouts, in terms of training intensity above or below threshold.
The threshold can be automatically computed based on your maximal heart rate as retrieved from your workouts, or manually set. You can also run the same analysis for different sports or using power instead of heart rate if you prefer.
Below you can see for example how my data looked before starting a more polarized training program, when I was stuck in moderate intensity training (always training at way to high heart rates, as shown in the medium article, only 23% of my trainings were easy at that stage), and how it looks now that I mainly train at low intensities (78% of my trainings in the past month are now easy), the last screenshot shows improvements in estimated VO2max following 6 months of polarized training (as VO2max is estimated using as one of the main parameters sub-maximal heart rate normalized by pace, changes in aerobic capacity resulting in the ability to run at low intensities faster, will reflect in improvements in VO2max):
This feature will be available by end of February, 2017. Some additional screenshots are shown below, the same functionality will be also available on HRV4Training Coach for all your athletes.
We are about to release a long awaited feature for our TrainingPeaks integration. Many of you asked about getting TSS data automatically in HRV4Training, and luckily our friends at TrainingPeaks just opened up new APIs for us to read workouts data.
We went a bit further and extended the current integration to not only read TSS but also read workouts for swimming, biking, running and rowing trainings, so that most of your morning tags can be automatically pre-compiled (sport type, distance, duration, intensity, average heart rate, cadence, and of course TSS).
Additionally, we also extended the integration to use workouts data for VO2max estimation and other summaries available in the app. Check out the remaining of this post for more details and screenshots of the upcoming changes.
Blog post by Marco Altini
Inspired by the different analysis that our users started putting together to investigate the effect of various stressors (training, travel, alcohol intake, etc.) on their HR and HRV we redesigned the Acute HRV Changes analysis Insight.
Instead of looking only at day to day variations following training (is your HRV reduced after more intense workouts?) we will let you pick different parameters and explore day to day (acute) variations not only with respect to training but also for alcohol intake, travel, sick days and menstrual cycle.
This way you'll be able to analyze more systematically over periods of 3 months how your body is responding to these different stressors, instead of only looking at them anecdotally from the history page.
The new acute HRV changes analysis will be available in about a week.
What's an acute change anyways?
We talked about acute HRV changes a couple of times already. Acute stressors are events that affect your physiology in the immediate future. Think about an intense aerobic workout, an intercontinental flight, a night out with too many drinks, high caffeine intake, etc. Acute stressors are typically the easiest phenomena to interpret and reproduce, and looking at data in the context of acute stressors can help understanding how your physiology works. Looking at acute changes can also help in gaining confidence in the tools we use, as these changes should be captured more easily. Check out this post for some examples from our users, or this tweet, the latest example I could find. In the past we focused much on acute changes in response to training, which we also published in our first paper, however we wanted to provide you with a better way to explore your data and annotations, hence the redesign of this feature.
It's important also to remember that physiology is complex, and while acute HRV changes are often repeatable and easy to understand, there might be other factors behind the relationships that we are seeing (or not seeing) in our data.
Research update: new publication on the relation between estimated VO2max and real life running performance
Blog post by Marco Altini
Quick announcement as our third paper, titled "Relation Between Estimated Cardiorespiratory Fitness and Running Performance in Free-Living: an Analysis of HRV4Training Data" was accepted for publication at the the International Conference on Biomedical and Health Informatics (BHI 2017).
The analysis discussed in this paper is similar to the one recently highlighted on this blog on VO2max and running performance, showing how estimated VO2max in the app is highly correlated with real life running performance for running distances between the 10km and full marathon, and therefore can be used as an effective proxy to running performance without the need for laboratory tests - at the population level.
Relation between running performance (racing duration for distances between the 10 km and the full marathon) and estimated V O2max for data collected using the HRV4Training application in unsupervised free-living settings. A moderate to strong inverse relationship is shown independently of running distance. Distributions of V O2max values and running performance are also shown.
In this work, we first built laboratory-based VO2max estimation models, including reference VO2max data collected using indirect calorimetry, and then deployed our models in the HRV4Training app. More than 500 users linked the app to Strava and used the VO2max estimation models while running distances between the 10km and the full marathon over a period of 1 to 8 months, hence creating a unique dataset on which to investigate the relation between estimated VO2max and running performance. Big thank you to everyone that contributed to this research and helped moving the field forward.
We will be presenting this work next month. We got extremely positive feedback and an invitation to write a follow up journal paper, so we will probably provide more details later on as we keep adding data and investigate the relation between real life performance and estimated fitness.
For the ones interested in reading the paper, you can find the full text at this link on Research Gate and follow our updates on the HRV4Training Project page.
Blog post by Massimiliano 'Massi' Milani & intro by Marco Altini
Me and Alessandra had the pleasure to meet Massi in person when we were in Europe last October, the day after his 10 km PR (33:16). Massi is writing almost on a weekly basis for an italian Blog, TheRunningPitt, curated by GIanmarco Pitteri, another sub 2:30 marathon runner. I highly recommend to all Italian runners this blog, as it's full of great advice on all things running from nutrition to technology. Through TheRunningPitt, I learnt about Massi's statistical mindset and R skills, and I started bothering him to write something for us, so without further ado, here it is. Thank you again Massi for your story (and plots!).
Planning is often the difference between success and failure. As a business manager, I am always seeking new and innovative ways to raise the bar and metrics for success. Over the last seven years I have found distance running to be an invaluable tool for creative planning and individual inspiration. I started running to relieve stress, increase energy, and control my weight, but it quickly turned into an appreciation for not just the physical, but also the mental and professional benefits that can come from a daily 50-minute solo run in the dark. However, having entered distance running as a novice with no performance expectations, I quickly discovered that my competitive nature easily translated to my amateur running. Although I made significant improvements year over year with increased intensity and improving times, eventually the reality of my late start in running and creeping middle age had caused a plateau in my performance. To break through this plateau, I looked for, and found, the next technological edge.
I started using the HRV4 training app at the end of 2015. In my six years of running I had had no significant injuries and constant time improvements from 3h30 marathon in 2010 to 2h37 in 2015. I was worried that I had optimized my training and performance and as I approached 44 years of age, there was no further room for improvement. But by finding the right technology I was able to get that additional edge.
My initial foray into the training application found many competitors along with the HRV4Trainng app in the “optimization recovery arena,” including Elite HRV and Ithlete. At first, I saw the value proposition of the app as the ability to use a camera instead of the Polar H7 chest strap. However, this turned out to be no more than a secondary feature, with the primary benefit being a fantastic dashboard, incredible statistics, and frequent, almost weekly, updates. I signed up to be a beta tester and have been using the heart rate strap instead of the camera because I am more familiar with it and it allows me to be more relaxed during measurements. In the following charts, I am using Rmssd as the metric for HRV for consistency purposes.
Blog post by Marco Altini
I've been doing some optimizations around my running, which mainly translated into adopting a more polarized approach to training (which is called 80/20 running by some, MAF method by others, common ground being that you train most of the time very slow and get rid of moderate intensity running).
After 6 months and much improvement compared to the previous 5-6 years of running, I wrapped up my progress in the blog post you can find at this link, including much data on physiological adaptations to this training plan, in terms of changes in resting heart rate, resting heart rate variability, sub-maximal heart rate during training & more.
Hope some of you will find it interesting, and it would be great to hear more thoughts around this or if anyone experienced similar changes in terms of both performance and physiological adaptations.
We have also opened a discussion on this on our Club on Strava, that should be available at this link: https://www.strava.com/clubs/245021/discussion
Blog post by Marco Altini
This is a short post to highlight some changes to the training load analysis that you can find under Insights in HRV4Training. In particular, we re-worked the last plot of the page, the one showing injury risk, to better reflect current state of the art models used to determine injury risk for endurance athletes as well as teams. We now report the acute to chronic ratio and a few thresholds (color-coded) that highlight which ratios are optimal and which ratios should trigger more caution.
For more details on the training load features, please refer to our previous post where we explain the Banister model and reference to a few other articles that explain very well the theory behind computing chronic and acute training loads as markers of fitness and fatigue.
Initially, we used the difference between chronic and acute training loads to compute injury risk, however the model based on the difference suffers from a few shortcomings: units are arbitrary and change based on the training impulse units, making it difficult to compare or standardize risks (e.g. using thresholds that we can all share and learn from), and is also less readable than the ratio.
The acute to chronic training load ratio has been used a lot recently to estimate injury risk, especially by Tim Gabbett (please check out this article for a comprehensive analysis by Tim). Similarly to any other aspect of training load monitoring and performance optimization, there is no one size fits all and many parameters need to be considered. However, the acute to chronic ratio can be a valuable tool to keep things under control and make sure we do not introduce too much acute load based on our recent chronic load.
The new analysis is available in both HRV4Training and HRV4Training Coach, see two screenshots below:
What you can see above is an optimal area in which training load should be, in order to trigger positive adaptations (this is a ratio of approximately 0.8 to 1.3). A lower ratio, white area, would cause loss of fitness, as basically there is not enough training. An higher ratio, would instead increase injury risk, as it means we are training too much with respect to what we are used to take. We show two "higher risk areas", one between 1.3 and 1.75 in yellow and one above 1.75 in orange.
The new feature will be available by mid December, 2016. We hope you'll find it useful in better managing your training load.
Blog post by Marco Altini
The aim of this post is to assess the ability of the PulseOn wristband in measuring heart rate variability (HRV) at the wrist. We previously wrote another summary of different PPG devices (most sensors that are not chest straps) to determine if they could be used for HRV analysis, you can find the blog post here as well as the data and code on Github here.
As I've explained elsewhere, while there many PPG sensors right now, we cannot use most of them because they either do not comply to standard Bluetooth heart rate profiles or do not provide any standard HRV feature. The PulseOn wristband stands out for a couple of reasons: 1) the company implemented the standard bluetooth low energy heart rate profile, therefore allowing any app to communicate with the sensor pretty much like a Polar H7 would do 2) the company put also some effort in providing reliable beat to beat data and not only averaged heart rate as output. I've been in contact with Ilkka Korhonen, CTO & founder of the company, for a few years as we worked on similar topics during my PhD. Ilkka sent me some additional white papers showing pretty good agreement between RR intervals at rest for the PulseOn and ECG, and therefore this seemed a viable option for our users. Note that the average HRV4Training user typically has higher HRV than the average person, hence it is important to spend some time collecting data for relatively higher rMSSD values, to make sure these bigger variations can be accurately captured. Hence, I grabbed one on Amazon and ran a similar analysis to the one we've documented previously.
In particular, in this post we compare the following sensors:
This post does not aim to be a comprehensive validation, however a small dataset collected under the proper conditions can be sufficient to understand if a device can do the job or not. If a device works well, then additional measurements would be a good idea, to make sure a broader range of values and individuals result in the same outcome, as we did last spring when we validated HRV4Training algorithms at the Sports Performance Research Institute in New Zealand.
Data acquisition setup & measurement protocol
Data was acquired using the sensors mentioned above all connected to a different phone running the HRV Logger app, which is an app that simply records everything coming from the sensor plus additional features. Polar data and HRV4Training PPG data were acquired using a custom app that I developed for our clinical validations at the Sports Performance Research Institute in New Zealand. This app is not commercially available and can record simultaneously data from the two sensing devices, making it easier to synchronize data.
During data acquisition, we collected data a few minutes while breathing freely, and a few minutes while deep breathing, to elicitate higher HRV due to RSA. You will see in the plots below visually the effect of deeper breathing as we get greater swings in RR intervals. The recording used in the analysis below is about 25 minutes of continuous measurement while lying down.
A final note on data synchronization: data cannot be perfectly synchronized because it is not timestamped by the sensors. What we can do is either to log real time and then to split data in windows based on when data was collected, then compute HRV features on these windows or to sum up RR intervals over time. For this analysis we went with the first option, meaning that for each minute we grouped all RR intervals coming from a sensor and used that data to compute HRV (rMSSD). We will see below there is typically less data coming from PPG sensors as they have to deal with more artifacts and some data is often discarded.
We recently partnered with our friends at Elite HRV to provide all HRV4Training users with a special discount on the Foundations of Heart Rate Variability course that Jason Moore and Greg Elliott put together.
The course covers many aspects of HRV measurement, independently of the technology used, and is very comprehensive. We had the opportunity to watch all the material in the past few weeks, and would highly recommend it to everyone interested in the topic. In particular, we really liked all the cheat sheets provided with each video lesson, see this one for example.
In order to get your 10% discount, simply follow this link and when prompted insert the name of your favorite HRV app as promo code [ message us if the hint is not clear enough :) ]
We hope you'll enjoy the course as much as we did!
Heart rate, heart rate variability (HRV), VO2max, training intensity & running performance in HRV4Training runners & triathletes
Blog post by Marco Altini
This post is the summary of our main findings following from analyzing user generated data in the past few weeks. In particular, as we started providing the possibility to link actual workout data to the app, we could finally explore the relation between physiological parameters measured or estimated by HRV4Training (heart rate (HR), heart rate variability (HRV) and VO2max) and running performance as captured by 10km, half marathon and full marathon times. We wrote three blog posts:
What did we find while analyzing the relation between physiological data and performance?
The dataset used for these analysis are very similar, even though we had slightly different inclusion criteria, overall we analyzed samples of 4-500 users, with up to 6 months of daily measurements per person. For each user we grouped trainings around 10Km, 21Km and 42Km, determined the fastest times per person (removing outliers) and therefore obtained our user performance data. We also split runners in three categories depending on their best times, for example, fast runners were defined as runners that can run a 10Km below 40 minutes or a half marathon below 1 hour and 30 minutes or a full marathon below 3 hours. Average runners got to 47 minute and 30 seconds for a 10Km and 1 hour and 45 for a half marathon and sub 4 hours for a marathon, while slow runners were the remaining ones. More details in the blog posts linked above.
1. Running performance and VO2max
We tried to be aggressive on filtering out users with odd data (included only users with at least 2 to 4 weeks of measurements, removed outliers, etc.) as we anyway had plenty of data (we started with a thousand users with actual workouts data and 30 000 trainings), and indeed the greater sample size with respect to standard studies did the rest, allowing us to highlight clear differences in estimated VO2max between running performance categories. This was an expected outcome as the whole point of estimating VO2max using workouts data and sub-maximal heart rate is that a person that can keep heart rate lower (with respect to her/his maximal) during a certain effort, can perform better (faster pace) than a person that is already maxing out at the same running pace. This principle is very intuitive and is the main principle behind our VO2max estimate. This being said, these are data acquired in unsupervised conditions in real life, and therefore nothing should be taken for granted.
2. Resting heart rate, HRV and running performance
In this second post, we looked at the relation between physiological data at rest (morning heart rate and heart rate variability data acquired using HRV4Training) and running performance. We saw that we have a weak but consistent relation between physiological data at rest and running performance, for both heart rate and HRV data. HR seems to decrease quite consistently with improved performance / fitness, while the relation is less linear for HRV, and while there is much overlap between the different categories, it seems that faster runners do have a slightly higher baseline rMSSD on average. In this analysis, it was particularly important to break down the HRV analysis by age, as age is the main factor behind differences in HRV at the population level, and not considering it could lead to deriving the wrong conclusions (big confounding factor):
As we see much variability in physiological data at rest between different categories of runners, it is unlikely that running performance can be predicted accurately based on these data. On the other hand, our VO2max estimate was a much better predictor of running performance.
Morning recordings of HR and HRV data remain invaluable metrics to assess day to day load and analyze recent trends that provide unique insights on your physiological stress level, recovery, adaptation to your training plan and risk of overtraining. However, these metrics are not ideal in the context of estimating running performance.
3. How hard do you train?
In this post we investigated the relation between training intensity and running performance in HRV4Training users. Quite some research in the past 15 years showed how elite runners (and not only runners) spend much of their time training at low intensities (see Seiler et al.). Many runners, coaches and authors have been preaching low intensity training for many years, under slightly different guidelines, but all following the same core principles (see for example heart monitor training by John Parker Jr, most of Phil Maffetone's work - the 180 formula, MAF test, etc. - and more recently 80/20 running by Matt Fitzgerald, who also wrote this nice piece on the topic on RunnersWorld).
Many of the studies mentioned by Matt (see Seiler's work) start by observing what elite athletes were doing to try to capture underlying patterns (e.g. what's the optimal ratio of low and high intensity training). Following the same principle, we thought it would be interesting to look at similar relationships on our data as well. This analysis was a bit more challenging and in the blog post we spend a bit more time highlighting the techniques we used to clean the data, make sure outliers are removed, compute a user relative training intensity from heart rate and pace data, and so on.
Eventually, we highlighted the same relations reported in literature on our userbase, for both runners and triathletes (about 400 users in total). Faster runners consistently trained at lower relative heart rate and pace with respect to slower runners, according to the data analyzed in this post.
In particular, combining estimated training intensity from pace and heart rate data, we could show the relation between running performance and training intensity visually. To do so, we plotted the data using two-dimensional density plots, shown below. What we expected to see is the center of the distribution (the place where most of the data are for a given category) to be closer to the bottom left corner for faster users, as the bottom left corner is the low intensity spot:
In these three blog posts we used users generated data, in particular self-reported annotations, actual training data as acquired through the Strava integration and physiological data, with the aim of trying to better understands relationships between physiology and running performance.
These studies were observational, which means they do not allow us to derive causal links between training patterns and performance - for example even if faster runners train slower most of the time, without a proper intervention we cannot claim that training at lower intensities is what makes them faster - however as this is real life data acquired in unsupervised conditions, we hope it can provide additional insights on the relation between physiological data, training intensity and performance.
Something interesting for the future, would be to move these studies to longitudinal ones. For example to determine if the estimated VO2max tracks well within an individual with respect to performance, meaning: if you run multiple races over a year (or years) is VO2max estimated in the app correlated with your running performance? Basically moving this analysis from the group to the individual level. Similarly, as we gather more data, we will be looking at capturing changes in training intensity patterns and performance for different individuals over time (longitudinally), and trying to determine if changes in training patterns, such as more low intensity training, can get you faster.
I hope these posts were useful in showing how user generated data are messy but insightful, as long as we design a tool with research in mind, and we are aware of the limitations of each step involved from sensing to transmitting data to trying to derive conclusions. As our long term goal is to push further our knowledge on complex relations between these parameters using a simple but scientifically validated tool such as HRV4Training, and outsourcing data collection to thousand of us, we will keep documenting our progress on user generated data science on this blog.
This post is a quick overview of the changes implemented in HRV4Training to support the latest iPhones. While the iPhone 7 required no changes in our algorithms, the 7+ is equipped with two cameras, and a few users reported having trouble getting a stable reading. We finally received our testing devices this week, and implemented the necessary changes to support the iPhone 7+.
As some of you reported, two main issues were present; 1) heart rate was higher than it should have been 2) the phone was using the "wrong" camera, the one quite far from the flash, making it difficult to get a reading at all.
The good news is that all issues have been fixed, and an update will be available in 1-2 weeks to extend support of the camera based algorithms for the iPhone 7+ as well. We would like to thank everyone for your patience and feedback as this input was very useful in quickly identifying the main sources of trouble, and fixing them. First, we switched the camera used by the app, as shown below:
By using the camera closest to the flash, we ensure proper lighting which is necessary to capture changes in skin color due to blood flow. You can't really get it wrong, as covering the other camera will be obvious in the camera view in the app.
Secondly, we had to make some additional adjustments to ensure that the sampling frequency and interpolation were working as in previous versions. Once we were able to make these adjustments, we ran a preliminary validation using our trusted Polar H7, and a prototype app we developed for our clinical studies. This special app can collect data from both the camera and the bluetooth sensor (the same app described here). Data cannot be perfectly synchronized because it is not timestamped by the bluetooth sensors, however we can log time and then split data in windows based on when it was collected, then compute HRV features based on RR intervals included in these windows. With this procedure we are typically off by one beat maximum, hence a small variation over a minute of data.
First, let's look at an example of the PPG data collected using the app (12 minutes of data), where you can also see discarded beats in red, these ones are typically due to an initial stabilization phase and artifacts found during the measurements, for example intervals that are too close or too far apart and might be due to noise, ectopic beats, and so:
After collecting accurate PPG, we need to extract peak to peak intervals, basically our RR intervals. Below we show the usual time series, for segments of data collected under different conditions (rest, deep breathing, etc.) - you can see how the RR intervals match very well the ones from the Polar sensor, the figures also report the HRV value (rMSSD in ms) for the entire segment. The first segment is the one that comes from the PPG data above:
On the relation between training intensity & running performance in HRV4Training runners & triathletes
Blog post by Marco Altini
In this post we investigate the relation between training intensity and running performance in HRV4Training users. Quite some research in the past 15 years showed how elite runners (and not only runners) spend much of their time training at low intensities (see Seiler et al.). Following early research, interventions have been carried out to randomize runners in groups including a greater amount of low intensity training, and groups including more moderate intensity training. Results showed consistently improvements in running performance for groups training at lower intensities for most of the time, typically 80% of the overall training load. Many runners, coaches and authors have been preaching low intensity training for many years, under slightly different guidelines, but all following the same core principles (see for example heart monitor training by John Parker Jr, most of Phil Maffetone's work - the 180 formula, MAF test, etc. - and more recently 80/20 running by Matt Fitzgerald, who also wrote this nice piece on the topic on RunnersWorld).
Many of the studies mentioned by Matt (see Seiler's work) start by observing what elite athletes were doing to try to capture underlying patterns (e.g. what's the optimal ratio of low and high intensity training). Following the same principle, we thought it would be interesting to look at similar relationships on our data as well. Similarly to our recent posts covering the relation between VO2max and running performance as well as HR, HRV at rest and running performance, we can use actual workouts data to analyze training intensity and how it relates to performance on our userbase.
Do faster HRV4Training runners & triathletes train at lower intensities?
This analysis - as many other analysis we did in the past - requires some thinking and data cleaning, given the uncontrolled free living settings. Especially considering that this time we rely heavily on workouts data imported using the Strava link, we have some additional issues, for example getting correct pace information, as well as heart rate and maximal heart rate data while dealing with: missing data, noisy data, different elevation gains, our wrist watch not getting good heart rate data, our chest strap battery being down, Strava re-interpolating running distance from Garmin workouts, maximal heart rate being often off given noisy readings, etc. We'll show later how we dealt with some of these issues. In general, we can never guarantee the data quality that we normally have in a clinical study, however, sample size will help us. We have at our disposal between 10 and 100 times more data than regular clinical studies, and I believe we can read through the noise when we have much domain knowledge and know limitations of how the data has been acquired and how we can deal with some of the issues listed above. Having hundreds of trainings per person, will help us in identifying the relevant information. Additionally, what we aim at here is not to determine optimal workout patterns (for example the exact amount of low intensity training you should do), but to capture trends across different groups of individuals (do faster runners train more at low intensities?).
We started with some basic cleaning to get to a trustworthy sample of users data. First, I included only entries related to running trainings acquired via Strava (this is not necessarily data acquired via the app, as most users use Garmin watches that automatically upload data to Strava - me included). Then I excluded all non-human speeds or anything above 6.5 m/s. Then I removed all entries not including heart rate data, as it is necessary to determine training intensity, and also removed all abnormal maximal heart rates (I'll show below how bad these data normally are). Interestingly, more than 82% of the activities collected from Strava included heart rate data (which is probably not a surprise on our dataset). Then we computed user-specific summaries, such as average heart rate during all trainings, maximal heart rate based on recorded data (more on this later), etc - for this procedure, I included only users with at least 15 trainings collected from Strava, which typically means a period between 2 and 4 weeks of minimum app usage. Anything less was discarded. Finally, for each user we grouped trainings around 10Km, 21Km and 42Km, determined the fastest times per person (removing again crazy outliers) and therefore obtained our user performance data.
To sum up, the main inclusion criteria were the following:
After this procedure, we ended up with about 400 users (389 total, 256 runners & 130 triathletes) Below you can see age, BMI & gender, as well as main sport for the users included in this analysis.
We can see that the average age is about 40 years old (more or less normally distributed between 20 and 60 years old), and average BMI around 22 kg/m^2.
The best (fastest) activities per user were selected as the user best performance over the three distances selected for this analysis, so 10km, half and full marathons.
We also split runners in three categories depending on their best times, for example, fast runners are defined as runners that can run a 10Km below 40 minutes or a half marathon below 1 hour and 30 minutes or a full marathon below 3 hours. Average runners get to 47 minute and 30 seconds for a 10Km and 1 hour and 45 for a half marathon and sub 4 hours for a marathon, while slow runners are the remaining ones. Longer distances were given priority, so if your 10 km run is above 40 minutes but your half marathon time is below 1 hour and 30 minutes, you are still considered a fast runner, mainly because you simply might not have raced a shorter distance over this period of time.
Let's have a look at the times and categories for 10km, half and full marathons (click the figure to enlarge, as usual):
We have the fastest 10Km in 36 minutes (average 10Km in 49 minutes), fastest half marathon in 1 hour and 13 minutes (average 21Km in 1 hour and 46) and fastest full marathon in 2 hours and 38 minutes (average marathon time of 3 hours and 43 minutes), for a total of 44 fast runners, 163 average runners and 178 slow runners.
Times provide quite a broad range on which we can analyze our data.
Determining training intensity
Training intensity can be determined in different ways. In literature, researchers used mainly two methods: pace and heart rate. When we look at heart rate, we analyze our training heart rate with respect to our maximal heart rate, to determine how hard we are training. Intuitively, training close to our maximal heart rate means going at high intensity, while rates between 70 and 80% of our maximal are typically considered low intensities. Similarly for pace, we can analyze our training pace with respect to our maximal pace (see later for details), and determine how intense we are training. Both of these methods have their own limitations, and especially in unconstrained free-living settings there are quite a few challenges, for example; how do we determine maximal heart rate? how do we determine maximal pace? can we trust the data?
We show below how we dealt with some of these issues. Then, we will combine both metrics to highlight possible patterns between performance categories (fast to slow users).
Maximal heart rate and training intensity
The main challenge we have here is to determine a user maximal heart rate. Using age-predicted values is no option, as error at the individual level can easily reach 20 beats per minute, hence making our other computations fundamentally incorrect (see later for some examples).
The best way to determine maximal heart rate is to measure it during an intense workout. As we have filtered out all users that did not compete in any race between the 10Km and the full marathon, and we are looking at data longitudinally for months (or at least 2-4 weeks as a minimum amount of data per person), the odds that some high intensity trainings (intervals or other) are included in each user dataset are quite high.
Hence, we will try to extract maximal heart rate directly from trainings data. Strava does part of the job for us, as each training summary includes information on maximal heart rate for that specific training, however, as we can see from the data below, these data is extremely noisy:
Blog post by Marco Altini
This is the continuation of a series of posts in which we started analyzing HRV4Training users generated data to highlight interesting relationships between self-reported annotations, actual training data as acquired through the Strava integration & physiological data. As our long term goal is to push further our knowledge on complex relations between physiological data, lifestyle and performance by providing users with a clinical grade tool, and outsourcing data collection to thousand of us, we keep documenting our progress on user generated data science on this blog.
In particular, in the last post we investigated the relation between running performance over different distances (10Km to full marathon) and estimated VO2max in HRV4Training, highlighting a strong link between the two, meaning that our VO2max estimate is representative of a user performance, with higher values being associated to running at a faster pace.
This is an expected outcome as the whole point of estimating VO2max using workouts data and sub-maximal heart rate is that a person that can keep heart rate lower (with respect to her/his maximal) during a certain effort, can perform better (faster pace) than a person that is already maxing out at the same running pace. This principle is very intuitive and is the main principle behind our estimate.
In this post, we will perform a similar analysis but look instead at the relation between physiological data at rest (morning heart rate and heart rate variability data acquired using HRV4Training) and running performance. Do faster runner have lower resting heart rates? What about heart rate variability? Expectations this time are different as we showed already in the past that resting data alone is not a very good predictor of fitness (e.g. VO2max) and therefore we expect this relation to be weaker and less indicative of running performance.
Let's look at some data.
Data are always messy when acquired in unconstrained free living settings. Here we did some basic cleaning to get to a trustworthy sample of users data. First, I included only entries related to running trainings acquired via Strava (this is not necessarily data acquired via the app, as most users use Garmin watches that automatically upload data to Strava - me included). Then I excluded all non-human speeds or anything above 6.5 m/s. Then I removed all heart rates above 220 bpm. This procedure left us with about 1100 users and 30 000 trainings. At this point I used the remaining of the data to compute user-specific summaries, such as average heart rate during all trainings, maximal heart rate based on recorded data, etc - for this procedure, I included only users with at least 12 trainings collected from Strava, which typically means a period between 2 and 4 weeks of minimum app usage. Anything less was discarded. Based on this data we also computed HR and HRV (rMSSD) per user (average scores), training load (km/week) and estimated VO2max as you can read it in the app.
Finally, for each user we grouped trainings around 10Km, 21Km and 42Km, determined the fastest times per person (removing again crazy outliers) and therefore obtained our user performance data.
After this procedure, we ended up with more than 500 users. Below you can see age, BMI & gender for the users included in this analysis, as well as physiological data averages (heart rate and HRV - rMSSD):
Register to the mailing list
and try the HRV4Training app!
1. Context & Time of the Day
3. Paced breathing
4. Orthostatic Test
5. Slides HRV overview
1a. Acute Changes in HRV
1b. Acute Changes in HRV (population level)
1c. Acute Changes in HRV & measurement consistency
1d. Acute Changes in HRV in endurance and power sports
2a. Interpreting HRV Trends
2b. HRV Baseline Trends & CV
3. Tags & Correlations
4. Ectopic beats & motion artifacts
5. HRV4Training Insights
6. HRV4Training & Sports Science
7. HRV & fitness / training load
8. HRV & performance
9. VO2max models
10. Repeated HRV measurements
11. VO2max and performance
12. HR, HRV and performance
13. Training intensity & performance
14. Publication: VO2max & running performance
Camera & Sensors
1. ECG vs Polar & Mio Alpha
2a. Camera vs Polar
2b. Camera vs Polar iOS10
2c. iPhone 7+ vs Polar
2d. Comparison of PPG sensors
3. Camera measurement guidelines
4. Validation paper
5. Android camera vs Chest strap
6. Zoom HRV vs Polar
1. Features and Recovery Points
2. Daily advice
3. HRV4Training insights
4. Sleep tracking
5. Training load analysis
6a. Integration with Strava
6b. Integration with TrainingPeaks
6c. Integration with SportTracks
6d. Integration with Genetrainer
6e. Integration with Apple Health
6f. Integration with Todays Plan
7. HRV4T Coach advanced view
8. Acute HRV changes by sport
9. Remote tags in HRV4T Coach
10. VO2max Estimation
11. Acute stressors analysis
12. Training Polarization
13. Custom desirable range / SWC
1. Intro to HRV
2. HRV normal values
3. HRV by sport
4. HRV, strength & power
5. AngelSensor & HRV
6. HRV 101: How to
7. Top 5 most read articles
8. HRV normalization by HR
9. How to use HRV, the basics