Heart Rate Variability (HRV)
Heart rate variability, or HRV for short, is a measure of your autonomic nervous system that is widely considered one of the best objective metrics for physical fitness and determining your body’s readiness to perform.
The human heart beats at a non-constant rate; HRV is a measurement of this irregularity. HRV has been shown in numerous studies:
- to positively correlate with athletic performance and training adaptation;
- to negatively correlate with the risk of overtraining, and
- to generally correlate with overall fitness and health.
HOW TO INCREASE HRV: 10 THINGS YOU CAN DO
-
Exercise & Train Appropriately. Studies show that regular exercise is one of the best methods for improving your heart rate variability. However, for serious athletes it is also important to avoid overtraining. Strenuous activity reduces HRV in the short term, so it is essential not to consistently take on too much strain without giving your body adequate time to recover.
-
Good Nutrition at the Right Times. It’s no surprise that a smart and healthy diet will benefit your HRV, but something many of us may not realize is that the timing of your food intake can affect it as well. Your body functions better when it knows what’s coming and regular eating patterns help maintain your circadian rhythm. Additionally, not eating close to bedtime (within 3-4 hours) will improve the quality of your sleep by allowing your body to focus on other restorative processes instead of digestion.
-
Hydrate. Your level of hydration determines the volume of your blood, and the more liquid you have in your system the easier it is for blood to circulate and deliver oxygen and nutrients to your body. Drinking close to an ounce of water per each pound that you weigh is a good daily goal. On average, when WHOOP members log that they are sufficiently hydrated their HRV increases by 3 milliseconds.
-
Don’t Drink Alcohol. We’ve found that when WHOOP members report consuming alcohol, their HRV drops by an average of 22 milliseconds the next day. Additionally, our research has discovered that the lingering effects of alcohol in your system may continue to suppress your heart rate variability for 4-5 days.
-
Sleep Well & Consistently. Getting all the sleep your body needs is a great start, but equally as important is making an effort to go to sleep and wake up at regular times each day. Sleep consistency will boost your HRV by helping to sustain your circadian rhythm, and also enables you to spend more time in REM and deep sleep.
-
Natural Light Exposure. Going outside in the sunlight after waking up in the morning and watching the sky change from light to dark in the evening trigger biological processes involved with regulating sleep/wake times (see sleep consistency above), energy levels and hormone production. This will also improve alertness, mood and vitamin D production.
-
Cold Thermogenesis. Exposing your body to cold temperatures for brief periods of time (cold showers, ice baths, etc.) will stimulate the vagus nerve, which activates the parasympathetic branch of your autonomic nervous system and controls heart rate variability.
-
Intentional Breathing. Studies indicate that slow, controlled breathing techniques can positively impact your HRV. They will also help to combat stress, which has been shown to inhibit heart rate variability.
-
Mindfulness & Meditation. Anecdotally, many WHOOP members have reported that practicing mindfulness and/or meditation has led to improvements in HRV. As with slow breathing techniques, both will help you reduce stress. In fact, even dedicating just one minute per day to mindfulness exercises can have real benefits.
-
Gratitude Journaling. The act of writing down things you’re thankful for each day can elicit a corresponding uptick in heart rate variability. It is also linked to lower blood pressure and decreases in stress hormones. For more on this, take a look at “Self-Rule” Choices to Increase Your HRV and Immunity.
When and how to measure HRV
-
Have the athlete take at least four to five readings per week. Unlike driving each session from the daily HRV, the HRV 7-day average does not need a daily reading. Four to five readings every week are sufficient, but athletes should be encouraged to take an HRV reading after every training day.
-
Take the measurement first thing after waking to avoid effects of caffeine, food and mental stress.
-
Adopt a consistent position such as sitting or standing for elite athletes with low resting heart rates.
-
Use apps and sensors that have been independently validated for accuracy.
-
Encourage athletes to record subjective metrics and comments for context. These are very useful in making lifestyle changes that benefit the athlete’s health as well as performance.
-
Don’t train hard when sick. Common sense should still prevail. If the athlete is sick or has a large decline in daily HRV then rest is still the best option.
What I’m using to measure my HRV
I am using the smartwatch Garmin Forerunner 735XT with the Garmin chest strap HRM-Tri and Heart Monitor+ HRV app from Fbbbrown.
Using Excel to analyze HRV
- Download the spreadsheet by clicking here.
-
All you need to fill is cell A2 with the date of the first reading and column B with the HRV readings (read the section When and how to measure HRV if you need any help).
-
To build an accurate knowledge base, you need at least 30 days of HRV readings.
-
After 30 days readings, a 30-days rolling average and a 30-days rolling standard deviation will be calculated.
-
With the information above, an UPPER and LOWER limits will be calculated.
- Your 7-days roling average must be inside the limits calculated above.
- If it’s outside, then you should take a day off or a recovery (zone 1) training.
Data Analysis with Python
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
Getting data from the spreadsheet
df = pd.read_excel('./HRV_teste.xlsx', index_col=0)
Visualizing our data (last 7 days)
df.dropna().tail(7)
Reading | Ln rMSSD | Ln rMSSD 7-Day Rolling Average | Upper limit | Lower Limit | 30-Day Mean | 30-Day Standard Deviation | |
---|---|---|---|---|---|---|---|
Date | |||||||
2019-03-23 | 53.0 | 3.970292 | 4.133219 | 4.238042 | 4.071136 | 4.154589 | 0.166906 |
2019-03-24 | 50.0 | 3.912023 | 4.087207 | 4.233229 | 4.060542 | 4.146885 | 0.172687 |
2019-03-25 | 40.0 | 3.688879 | 4.007262 | 4.233115 | 4.045779 | 4.139447 | 0.187336 |
2019-03-26 | 70.0 | 4.248495 | 4.009318 | 4.240808 | 4.054164 | 4.147486 | 0.186644 |
2019-03-27 | 80.0 | 4.382027 | 4.057743 | 4.252653 | 4.061498 | 4.157075 | 0.191156 |
2019-03-28 | 83.0 | 4.418841 | 4.076083 | 4.262667 | 4.065760 | 4.164214 | 0.196907 |
2019-03-29 | 85.0 | 4.442651 | 4.151887 | 4.272122 | 4.069249 | 4.170686 | 0.202873 |
Descriptive statistics
All Data
df['Reading'].describe()
count 88.000000
mean 67.308295
std 10.350961
min 40.000000
25% 60.000000
50% 69.000000
75% 73.250000
max 91.000000
Name: Reading, dtype: float64
Last 30 days
df['Reading'].iloc[:30].describe()
count 30.000000
mean 67.371000
std 7.229306
min 50.000000
25% 63.000000
50% 67.500000
75% 73.502500
max 78.000000
Name: Reading, dtype: float64
HRV Graph
- Orange line: Upper Limit (Last 30-Days average plus Last 30-Days standard deviation)
- Green line: Lower Limit (Last 30-Days average minus Last 30-Days standard deviation)
- Blue line: Last 7-Days average HRV
The goal here is to maintain inside the Upper and Lower limits. Being outside of these limits means day off or a recovery (zone 1) training.
graph = df.dropna()
graph[['Ln rMSSD 7-Day Rolling Average', 'Upper limit', 'Lower Limit']].plot(figsize=(21,7), grid=True);