More details on Bevels HRV algorithm for "Entire Sleep"
closed
Tjorven
I'm trialing different apps at the moment that use Apple Watch data as raw data and calculate rMSSD HRV to indicate recovery status. Surprisingly, I get quite different results from all of them, despite the same raw data and "entire sleep" as setting (where possible). So now I'm trying to understand what the differences in algorithms roughly are and which one is the most reliable. Could you give a few more details on how Bevel calculates the HRV during "Entire Sleep"?
- Does awake time during sleep also count or is it filtered out?
- How aggressively are spikes/noise filtered out?
Is there anything else that I'm missing that could explain these big differences?
If this only had an impact on the absolute values and not the trends, I wouldn't care so much. But as one can see in the graphs below, the trends are also sometimes affected. If the value in one of the apps goes up from one day to the next, one can't assume for sure that that's the case in the other apps as well.
It also doesn't seem to be the case that the values from one app are consistently higher (or lower) than the ones from other apps. (Although Livity tends to be the lowest and PeakWatch tends to be the highest, whilst Bevel and Athlytic tend to be similar.)
Photo Viewer
View photos in a modal
Leah
marked this post as
closed
Amanda
marked this post as
under review
Hi Tjorven, thank you for reaching out and for visualizing this in detail! To answer your questions:
- Entire Sleep filters out "awake" periods.
- We filter outliers from the raw beat-to-beat samples that are incorrect. This includes absolute outliers (i.e. extremely high), and/or relative outliers where changes between beats are too high.
Hopefully this helps, and let me know if you have any additional questions.
Tjorven
Amanda Thanks, that's helpful and seems sensible. Will be interesting to hear what the other apps have to say about this – I'd like to know where these big differences come from.