The same four stages, every time
Whether it comes from a $349 ring, a $239-a-year strap or a free app, every recovery score in this category is built the same way. Knowing the stages makes it obvious where products differ and which differences matter.
- 1
Measure the night
Overnight heart rate variability, resting heart rate, respiratory rate, and usually skin or wrist temperature and sleep duration and staging. Some add blood oxygen. These are the inputs, and every product uses substantially the same set because these are the signals that consumer sensors can read while you are still.
Sampling differs a lot. A WHOOP measures continuously through the night. An Apple Watch takes irregular samples. A ring sits on a cleaner sensor site than either. This affects how noisy the input is, not what the input is.
- 2
Compare each signal to you
This is the stage that makes a score meaningful, and it is where products genuinely differ. Population HRV ranges are so wide as to be useless for individuals, so every serious implementation builds a personal baseline from your own recent history and asks how far today sits from it.
The usual tool is a z-score: how many standard deviations below or above your own normal is tonight’s value. The design decisions here are the whole ballgame. How long is the window, 14 days or 60? Mean or median? How are outliers handled, so that one feverish night does not poison the baseline for a month? Is the baseline seasonal, or does it drift with fitness?
- 3
Weight the deviations
Now you have five or six numbers saying “HRV is 1.4 standard deviations low, resting heart rate is 0.8 high, sleep was fine”. Something has to decide what each is worth. Most products use fixed weights chosen by their physiologists, with HRV usually dominant.
Fixed weights are a reasonable default and also a known weakness, because the relative importance of these signals genuinely varies between people. Some people’s recovery is written mostly in resting heart rate. Others barely move theirs and show everything in HRV.
- 4
Squash it onto 0 to 100
The weighted total gets mapped onto a friendly scale, usually with colour bands. This step is pure presentation and it is where a lot of the perceived difference between products comes from: two apps can rank your last 30 days identically and still show numbers 15 points apart, because they curve the output differently.
Why your two apps disagree
People install a second recovery app, see 61 in one and 74 in the other on the same morning, and conclude one of them is broken. Usually neither is. Here is where the gap comes from, roughly in order of how much damage each does.
Different HRV statistics. Apple reports SDNN, the standard deviation of the intervals between beats. WHOOP, Oura and most others report RMSSD, the root mean square of successive differences. These are different summaries of the same heartbeats and they do not produce the same value. Any comparison across products that ignores this is comparing centimetres to inches.
Different sampling windows. An app that takes the median HRV across your whole sleep window gets a different answer from one that samples the deepest slow-wave period, and both differ from one that reads the last hour before waking.
Different baseline lengths. A 14-day baseline reacts quickly and is easily dragged by a bad week. A 60-day baseline is stable and slow to acknowledge that you got fitter. Neither is correct, they are different trade-offs, and they will disagree during any period of change, which is exactly when you are paying attention.
Different weights. One product may treat a poor night of sleep as decisive; another may let good HRV override it.
Different handling of missing data. You took the watch off at 2am. One app throws the night out, one imputes, one silently scores the partial night as if it were complete. This is the difference that most often produces an inexplicable outlier.
What separates a well-built score from a badly-built one
Four properties, none of which are visible in an App Store screenshot.
It admits uncertainty. On day three the model does not know your baseline, and the honest response is to say so. A product that prints a confident 68 on your second morning is showing you a prior derived from other people, dressed as a measurement of you.
It does not invent data. If you did not wear the device, there is no HRV, and the right output is a gap rather than a number. The same applies to strain: a day with no heart-rate presence is unmeasured, not zero. Products that fill holes with plausible values teach you to trust things that never happened.
It shows its drivers. A 54 is not actionable. A 54 because resting heart rate is well above your normal and respiratory rate is up, which is the shape of an incoming illness rather than training fatigue, is actionable. The number is a summary; the drivers are the information.
It does not drift while you look at it. A morning score computed from last night should be a fixed fact about last night. Scores that keep recomputing during the day are unfalsifiable and impossible to plan against.
How Helix does it, specifically
Since this post is on our own site, it would be dishonest to describe the general shape and skip our own choices. Here they are.
Inputs. Overnight HRV taken as the median across the sleep window, resting heart rate, respiratory rate, wrist temperature, blood oxygen where the hardware provides it, and last night’s sleep. All read from Apple Health, all measured by hardware you already own.
Baselines are yours, and they are long. Each signal is z-scored against your own rolling baseline, typically 60 days. Not a population chart, not an age bracket. On first launch Helix scores about 90 days of the history already sitting in Apple Health, so the baseline exists on day one rather than after a month of waiting.
The weights learn from you. This is the part that is genuinely different. Rate how your days actually went, and the model re-learns which signals predict your outcomes. If your recovery is written mostly in resting heart rate rather than HRV, the weighting moves towards that over time. Everyone else in this category ships one set of weights for all users.
Confidence is surfaced, not hidden. While a baseline is still building, the app says so rather than presenting an early reading as settled.
The verdict freezes. Once the night is complete, the morning score is fixed. It is a statement about last night and it stops moving.
The day starts when you wake. Helix rolls the day at wake from your main sleep rather than at midnight, so an 11pm session counts against the day it belonged to instead of being cut in half by a clock.
Nothing leaves the phone. There is no backend and no account. All of this is computed and stored on the device, and the only thing that ever goes out is a set of anonymised numbers to the model provider when you use the AI coach.
| Feature | WHOOP | Oura Ring 4 | Bevel | Helix |
|---|---|---|---|---|
| HRV statistic used | RMSSD | RMSSD | Apple SDNN | Apple SDNN |
| Overnight sampling | Continuous | Sampled, finger | Sampled, wrist | Sampled, wrist |
| Baselines against your own history | Yes | Yes | Yes | Yes |
| Weights personalised per user | No | No | No | Yes |
| Confidence shown while calibrating | No | No | No | Yes |
| Drivers shown behind the score | Yes | Yes | Yes | Yes |
| Scores your existing history on install | n/a | n/a | Yes | About 90 days |
| Formula published | No | No | No | No |
What a recovery score cannot tell you
Three limits worth holding on to, whichever product you use.
It cannot tell you why. Alcohol, a late meal, a warm room, an argument, a virus and a hard interval session all suppress HRV and elevate resting heart rate. The score sees the same shape from all of them. It knows something is loaded, not what loaded it.
It cannot tell you which muscles are tired. Recovery scores measure autonomic state, which is a whole-body property. Your nervous system does not know you did legs on Tuesday. That requires a different model built on what you actually lifted, which is covered in why your wearable has no idea which muscles are tired.
It cannot overrule how you feel. A green score on a day you feel terrible is information about your autonomic state, not permission. The score is one input to a decision you are still making.
If you want to move the underlying number rather than just read it, how to improve HRV ranks the levers by how reliably they work. For where the raw number lives on Apple hardware, see how to check HRV on your Apple Watch.