How a recovery score works and what it tells you
A recovery score is a number between 0 and 100 that compares your last night against your own past few weeks. In LeibFit it comes from three nightly signals: heart rate variability (HRV), resting heart rate and sleep. It does not tell you whether you are healthy – it tells you whether this night sits above or below what is normal for you. This article explains which signals feed in with what weight, why your own norm is the decisive part, and where the number runs into its limits.
What a recovery score is built from
Three values from the night are combined into a single number from 0 to 100, with fixed shares: HRV 35 percent, resting heart rate 35 percent, sleep 30 percent. Deliberately not HRV-dominated – more on that below. If a signal is missing, because the watch was off your wrist for a night or a value is not in Apple Health, the remaining shares are redistributed instead of treating a gap as a zero.
- Heart rate variability (HRV): the time between two heartbeats varies. How much it varies is related to load, sleep, alcohol and stress. This is the most sensitive of the three signals – and the one that needs the most context. Apple Health reports HRV as SDNN; what sits behind that is covered in What Apple Watch measures as HRV at night.
- Resting heart rate: slower to move than HRV, but more robust for it. Apple aggregates it into one value per day itself. A resting heart rate that sits above your norm for several days is therefore a clearer signal than a single outlier.
- Sleep: here what counts is not the deviation from your norm but the distance to a target – built from duration and the share of deep sleep. The reason: sleep need is absolute. Someone who has got used to too little sleep over weeks should not be given a lower bar for it.
On top of that come three more nightly values that do not feed in linearly: skin temperature, respiratory rate and blood oxygen, if your watch provides them. If one of them sits clearly outside your norm, LeibFit caps the recovery score and adds a note. The note names no cause – the number knows none.
Why your own norm decides, and not a table
HRV values are practically not comparable between two people. Age, disposition, the time of day of the measurement and the measurement method itself feed in so strongly that a value of 45 can be low for one person and high for the next. That is exactly why every table of "healthy HRV ranges" should be treated with caution.
LeibFit therefore does not compare against other people's averages but against your own values from the past 30 days – a rolling window that excludes the current night, so it cannot justify itself. The question is not "is this value good?" but "does this value sit above or below what is normal for me?". That is the only version of the question that can be answered honestly.
The fact that different systems calculate with different HRV metrics and measurement windows is the second reason absolute values are of little use. More on that in SDNN vs. RMSSD: the difference in HRV.
What you need for it
- An iPhone running iOS 17.6 or later.
- A watch you wear at night – or more generally: a device that writes heart rate and sleep to Apple Health.
- Your explicit permission in the privacy settings of Apple Health. Without it LeibFit reads nothing.
- Some patience. After seven nights with data LeibFit shows a recovery score; before that a building message rather than a number – better no value than a guessed one. The norm only becomes solid once the 30-day window is genuinely filled, so after about a month.
Where the value runs into its limits
The recovery score is not a diagnosis and detects no illness. It shows a deviation, not a cause: a hard session the day before, two glasses of wine, a short night and an infection starting can all lead to the same number in the morning. Which of them applies is something only you know – and that is exactly what the journal is for.
It also needs continuous data. Nights without the watch are gaps, and a norm built from few nights moves around more than one built from thirty. And it does not replace your own sense of things: if the number says 78 and you feel bad, the number is not the better argument. A value that sits outside your norm is an indication for dosing – not something that means anything medically.
What LeibFit does with it
A value on its own would just be a number on a ring. LeibFit hangs four things off it:
- A target for the day's load. Today's recovery produces a corridor on a load scale from 0 to 21. On weak days it sits lower, on strong days higher – as orientation, not as a requirement.
- The training adjustment. With low recovery, LeibFit takes sets out of today's workout and pauses the weight increase, with a reason shown in the app rather than silently. How that works in detail is covered in Adjusting training when recovery is low.
- A bedtime suggestion. Built from your sleep need and your previous wake times – an offer, not a countdown.
- Correlations from the journal. The section "What works for you" shows which of your answers coincide with better or worse recovery, always with the number of days behind it. Coinciding is not the same as causing, and the app does not claim otherwise.
And since this article would otherwise only explain: LeibFit itself costs money after the first seven free days. Those seven days run without a subscription and without payment details, and the exact terms are at the bottom of this page. If you notice in that time that the number does nothing for you, there is nothing further to do.
Context, not diagnosis
A recovery score is a calculation over your own measured values, not a medical assessment. It gives context on whether a night sits outside your norm, and it helps you decide how hard to train today. If something about your values worries you persistently, a medical practice is the right place to go, not an app.