Every morning
Recovery: last night against your normal.
Keely’s Recovery is a score from 0 to 100 %, ready when you wake. It compares last night’s heart-rate variability (HRV), resting heart rate, sleep, breathing rate and skin temperature with your own 30-night normal. A night exactly at your normal scores 58 %, and one with your HRV clearly above it is Primed.
Updated
- When
- Once a day, as soon as your night has synced
- States
- Primed 67–100, Balanced 34–66, Restore 0–33
- Inputs
- HRV 45 %, resting heart rate 25 %, sleep 20 %, breathing rate 5 %, skin temperature 5 %
- Compared with
- Your own last 30 nights, recent nights weighted more
- First score
- After 3 nights with your Loop; fully personal after 14
- Computed
- On your iPhone, from your Polar Loop’s beat-to-beat data
What Recovery tells you
Recovery answers one question each morning: how did last night compare with what’s normal for you? HRV and resting heart rate carry most of the weight, because they move when your body is still absorbing a hard day, a short night, alcohol, illness or stress.
- Primed 67–100
- Balanced 34–66
- Restore 0–33
Each state comes with a focus for the day, and it sets your Load target:
- Primed, a quality day. Threshold or intervals will land well.
- Balanced, a steady day. Endurance or tempo fits; save the hard intervals.
- Restore, an easy day. A walk, mobility or a short Zone 1–2 session.
Tap the score in the app to see what moved it. Each input shows as helping, holding back or normal, with its value against your normal range.
What goes into it
| Input | Measured as | Weight | Better when |
|---|---|---|---|
| HRV | RMSSD of beat intervals in the early night (the median of 5-minute windows from 30 minutes to 4½ hours after you fall asleep; the whole night when fewer than 12 windows have clean beats), compared on its logarithm as half last night and half this week | 45 % | Higher |
| Resting heart rate | The lowest 10-minute average overnight | 25 % | Lower |
| Sleep | Time asleep ÷ the night’s own need | 20 % | Closer to 100 % |
| Breathing rate | The night’s median breathing rate | 5 % | Not faster than your normal |
| Skin temperature | The night’s steady hours, against your normal | 5 % | Not warmer than your normal |
HRV here is RMSSD: the root mean square of the differences between successive heartbeats, in milliseconds. It varies widely from person to person, which is why Keely only ever compares you with you.
How the score is computed
- Distance from normal. Each input becomes a z-score: how many standard deviations it sits from your baseline. The sign flips where lower is better, so a positive z always helps.
- Breathing rate counts only when it’s faster than your normal range: a raised rate at night is the sign to watch, and a slower one is calm sleep. Skin temperature counts only when it’s warmer than your normal range: a cooler night is mostly the room, and it’s read from the night’s steady hours, from 90 minutes after you fall asleep to 30 minutes before you wake.
- HRV is compared on its logarithm, since its night-to-night noise is multiplicative, and it counts half as last night against your normal and half as this week against your band (see HRV this week on the methodology page), so one odd night moves Recovery half as far.
- Sleep is measured against the night’s own need, not your average. From 88 % of need up to need is normal and counts 0; a shorter night counts from that edge, one unit per 15 % of need; sleeping past your need helps, up to +1. The night’s own need leaves out sleep debt, since the short nights behind it already counted on their own mornings.
- Every z is bounded softly, 2 × tanh(z ÷ 2): the first standard deviation counts almost whole, the second less, and no single input can ever move the blend by more than two. One short night can’t outweigh a heart at normal.
- While your normal is still settling, each z is weighed by how sure your baseline is (see Settling in, below).
- Blend. The z-scores are weighted and added up.
- Score. The blend goes through a logistic curve, so the score moves most around your normal and flattens at the ends. It’s anchored so that a night at your normal reads 58 %, and HRV half a standard deviation above your normal, the smallest change worth acting on, reads 67 %: Primed.
- A likely range. Each input carries the error of its measurement: HRV’s from how many 5-minute windows it rests on and how much they varied, sleep’s from the band’s timing. The score shows where it likely sits ("37, likely 30–45"). A thin night gives a wide range; the range never changes the number.
z = (value − baseline) ÷ SD HRV: ln value against the ln baseline
zHRV = ½ z last night + ½ (week mean − band centre) ÷ band width
z sleep = 0 for 88–100 % of need; (asleep ÷ need − 0.88) ÷ 0.15 below; up to +1 above
z breathing, temperature = −max(0, z − 1)
every z → 2 × tanh(z ÷ 2)
c = 0.45 zHRV + 0.25 zRHR + 0.20 zSleep
+ 0.05 zBreathing + 0.05 zTemperature
Recovery = 100 ÷ (1 + e^(−1.6 × (c + 0.213)))
A worked example. HRV one standard deviation above normal (+1, bounded to 0.92), resting heart rate half a deviation below (+0.5, bounded to 0.49), 95 % of the night’s need (inside the normal 88–100 %, so 0), breathing at normal (0) and skin temperature half a deviation warmer, inside your normal range (0). The blend is c = 0.45 × 0.92 + 0.25 × 0.49 = 0.538, so Recovery is 100 ÷ (1 + e^−1.20) = 77 %, Primed.
Standard deviations have floors, so a run of near-identical nights can’t make small changes look huge: 5 % of the mean for HRV, 1 bpm for resting heart rate, 0.3 breaths a minute and 0.2 °C.
Your normal, and calibration
- Your normal for each signal is a weighted average of your last 30 nights. Recent nights count more: a night a week ago counts half as much as last night.
- The normal range shaded behind HRV and resting heart rate in the app is your baseline ± one standard deviation.
- The first score arrives once HRV and resting heart rate each have 3 nights. Until then Recovery shows Calibrating, never a guess.
- Fully personal after 14 nights. A night never counts toward its own baseline.
- Settling in. A normal built from a few nights is less sure than one built from a month, so a distance from it says less. Keely reads each distance on Student’s t, allowing for the baseline’s own uncertainty, and turns it back into the z with the same odds. A night 2 standard deviations off counts as 1.21 with 3 nights behind your normal, 1.58 with 7, 1.75 with 14 and 1.83 from a month on. It changes smoothly, with no step at two weeks or a month, and for your first two weeks the app says Learning your normal.
n = your baseline's effective nights (3 nights: 3.0; a month: 18.2)
t = (value − baseline) ÷ (SD × √(1 + 1/n))
z = the normal z with the same tail as t on Student's t, n − 1 degrees of freedom
When the score arrives
Recovery is computed as soon as your night’s beat intervals and heart rate have synced from the Loop. The Loop’s own sleep staging can take a little while after you wake, and until your night is in, Today says Reading your night rather than showing an early number.
Every morning’s score is kept. The Recovery calendar at the foot of Today shows each one as a ring, and tapping a day shows its numbers. Tap Recovery, HRV or resting heart rate for its history: a week, a month, six months or a year, against your own normal, with the nights from your journal marked.
Frequently asked questions
What is a good Recovery score?
There’s no universal good score, because Recovery compares you only with your own normal. 58 % is an ordinary night for you, 67 % and above is Primed, and 33 % and below is Restore. The trend over a few weeks says more than any single morning.
Why is my Recovery low when I slept well?
Sleep is 20 % of the score. HRV and resting heart rate carry 70 %, and they respond to training, alcohol, illness, heat and stress even after a long night. Tap the score to see which input held it back.
Why does Recovery say Calibrating?
Keely needs 3 nights of HRV and resting heart rate before it knows your normal. Until then it shows Calibrating instead of a score. Over your first weeks each distance from your normal counts for a little less, so early scores lean toward the middle, and the app says Learning your normal for the first two weeks.
What happens on a night without data?
A missing night stays missing. Keely doesn’t estimate a score it can’t measure. If fewer than 12 five-minute windows of the early night have clean beats for HRV, it uses the whole night’s beats instead, and says so.
Why isn’t one short night a Restore?
Sleep is normal from 88 % of your need, and no input can move the blend by more than two standard deviations, so a short night with your heart at normal reads Balanced rather than Restore. When a score under 33 was written by sleep alone, the app says Short on sleep instead of asking you to rest. One short night before a morning effort costs little; a run of them shows in HRV and resting heart rate, which carry 70 % of the score.
Is Recovery a medical measurement?
No. Recovery is a wellness estimate for training and daily life. It can’t diagnose, treat or rule out any condition. If you feel unwell, talk to a doctor.
Keep reading
We may earn a commission when you buy through this link. As an Amazon Associate, Metrica Fit earns from qualifying purchases. Keely is an independent app and isn’t affiliated with or endorsed by Polar Electro.
