Automating Recovery Analysis for Sleep and Exercise Data


Heart Rate Variability (HRV) has been shown to be an excellent biometric indicator of stress. A high HRV value implies a lower stress level. Athletes have known this for years and often check their HRV first thing in the morning to get an idea how recovered their system is from the previous days events. A low HRV value might indicate that one is getting sick, over trained, suffering from anxiety or just did not get enough sleep. This process of testing each morning is time consuming and erratic at best. It can be greatly improved if it was a passive process.


The HRV4Training app is available for iOS and Android devices. It makes the process of collecting and analyzing HRV data passive by pulling it from wearables platforms like the Oura Ring Cloud or sucking up exercise history from Strava. It supports many other apps including Apple Health and Training Peaks. The HRV4Training app costs $10 for the basic mode which we will review some of it’s functionality below. There is a Pro option which can be purchased for $49 annually and includes many features such as insights through a web platform and includes coaching abilities (so coaches can assess their athletes readiness and performance goals).

There is a history option which allows one to review the last week of data collected one screen at a time. I have been slowly increasing the environmental stressors around my training. More weights, faster swims, runs in hot summer temperatures and sleeping at elevation. I’m starting to see the gains with my recent rMSSD (aka HRV) peaking at 68 ms yesterday which is 13 ms over my baseline for this three week period.

The baseline view provides the same data in terms of “Recovery Points” (higher is better), “Heart rate” (lower is better) and rMSSD (aka HRV – higher is better). You want to see the dark blue line climbing on the Recovery Points and rMSSD and dropping for Heart rate to know that you are progressing in a positive direction. An hard training session will briefly skew the data, but the point of baseline is to see overall progress and not get hung up on a single event.

The population view is one of my favorites as it shows where I stand compared to others my age and gender. This is a helpful metric to set realistic goals around. It is also fascinating to see the outliers. An example of a goal to set is to boost rMSSD from 55.4 ms (my average for the last month) to This feature of comparing oneself to others based 70 ms next month. This might require not drinking alcohol, going to bed an hour earlier each night and bringing in an extra high intensity interval training session each week.

Finally, there are some really cool insights. Most of these require a minimum of 30 – 60 days of data collected. These tools provide just what an active person needs to understand how much they can push themselves and still be optimizing performance.

Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here:

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – The easiest way to program microcontrollers –

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !


  1. I saw the biohacking post about HRV4training and it seemed to suggest that the app would access data from other websites to use in its analysis. I have a fitbit account full of heartrate data so I purchased the minal ($10) app. All the app talks about is using the android phone’s camera to take data during short intervals. I couldn’t find any mention of accessing other data sources.

    Maybe I missed it, or maybe it’s a feature of the much more expensive version. Either way I’m not happy with the advice, as I interpreted it, from your post. I have a lot of respect for adafruit, developed over years of purchases. I hope I’m not wrong feeling that way.

    – martin smith

  2. Hi Martin,

    Fitbit is not directly supported, but you can use a Strava account or several other fitness tracking sites to link to hrv4training to pull in some of your historical data. This does not require a PRO account simply using the $10 app will do. I personally do not bother with manual finger testing as I’m only interested in the automated data pull.

Sorry, the comment form is closed at this time.