On this page
Guiding principles
Three rules shape every number in NoBand.
1. Your body is the reference, not a population. A resting heart rate of 58 bpm is great for one person and a red flag for another. NoBand compares each signal to your own recent history, so a score reflects how far today sits from your normal — not from a textbook average.
2. Show the signal, don't launder it. Many wellness apps quietly apply a "transfer curve" that pushes scores toward flattering middles or crushes bad nights. We removed all of those. The number you see is the weighted evidence, clamped only to 0–100. If your data says today is a 41, we show you 41.
3. Everything runs on your phone. All scoring math below executes on-device from your Apple Health data. Nothing about how these scores are computed requires the raw data to leave your iPhone.
Your personal baseline
Almost every score starts by asking: how unusual is today's reading for me? To answer that we build a rolling baseline from your last 30 days and express today as a robust z-score — the number of "typical spreads" today sits above or below your normal.
We deliberately do not use the ordinary mean and standard deviation, because a single bad night or a sensor glitch would drag them around. Instead we use the median and the median absolute deviation (MAD), which shrug off outliers. The MAD is scaled by 1.4826 so that, for normally distributed data, it matches a standard deviation.
Recent days matter more than old ones, so each day is weighted by an exponential recency half-life of 10 days — a reading from 10 days ago counts half as much as last night's, one from 20 days ago a quarter as much. The median and MAD are both computed on those weights.
Two guards keep the baseline trustworthy. A spread floor per signal (for example 3 bpm for resting HR, 0.15 for ln-HRV) prevents a freakishly steady week from making the z-score explode. And a contamination guard down-weights any past day that itself scored extreme (below 20 or above 90) to 30% influence, so a run of bad days can't quietly redefine "normal" as bad.
While the window is still filling, scores are marked calibrating (under 4 valid days) or preliminary (under 30), and their strength is damped — at day one a score pulls only 15% toward its evidence, ramping to full over 14 days. This is why your first week reads cautiously and then sharpens.
Method: robust statistics per Leys et al. (2013); MAD→σ scaling factor 1.4826 is standard for normal data.
Recovery — is my body repaired?
Recovery answers a physiological question: overnight, did your autonomic nervous system settle into the parasympathetic ("rest and digest") state that signals a repaired, ready body? The two most validated windows into that are heart-rate variability (HRV) and resting heart rate (RHR) measured during sleep.
The core score is a blend of just those two, each turned into a 0–100 sub-score through a logistic curve and then combined:
HRV gets the larger weight (0.65) because nocturnal HRV — specifically the RMSSD time-domain measure, log-transformed because HRV is roughly log-normal — is the single most responsive marker of parasympathetic recovery in the training-science literature. RHR (0.35) is a slower, steadier confirmer: an elevated morning RHR is a classic sign of incomplete recovery, illness or accumulated fatigue.
Two design choices keep the score from twitching at noise. A dead-zone ignores the first ±0.3 of z (small daily wobble isn't real signal), and a gain of 1.2 inside the logistic sharpens genuinely meaningful deviations so a truly bad or truly great morning reads clearly instead of hugging 50.
Secondary modifiers — the corroborating witnesses
HRV and RHR set the score; four other signals can nudge it, each capped at ±7 points on its own: elevated respiratory rate, raised wrist temperature (penalty only — a cooler wrist is never rewarded), prior-night sleep performance, and heart-rate recovery after exertion (a bigger one-minute drop = fitter, and nudges up). Elevated breathing disturbances add to the "something's off" tally.
Those caps are not fixed — they scale with consensus. If three or more signals agree in the same direction the cap doubles; five or more and it grows 2.5×. The logic is Bayesian in spirit: one odd reading is noise, but HRV, RHR, temperature and breathing all pointing the same way is a body genuinely under load, and the score is allowed to move decisively. This is why a clear "you're fighting something" morning can drop hard while a single quirky sensor reading barely registers.
When there's no HRV
If your watch didn't capture HRV (some nights it doesn't), Recovery doesn't fail — it re-weights onto what it has: 0.55 RHR + 0.45 prior-night sleep, same curve shape. The screen simply lists fewer contributing factors so you know the score leaned on less.
Basis: Task Force / Malik (1996) on HRV time-domain methodology; Plews et al. (2013) and Buchheit (2014) on HRV-guided training and the value of log-transformed RMSSD trends; Karvonen (1957) for heart-rate reserve.
Readiness — should I push today?
Recovery asks whether your body is repaired. Readiness asks the broader, practical question: taking everything into account, how much should you take on today? It is a weighted average of seven contributors, each a 0–100 sub-score:
Where Recovery is a snapshot of last night's autonomics, Readiness deliberately mixes acute signals (last night's sleep, this morning's HRV and RHR) with chronic context (are you carrying sleep debt over two weeks? is your training load ramping too fast?). That's why it can sensibly disagree with Recovery — you can wake with pristine HRV yet still not be ready to smash a session because you've under-slept all week or spiked your training.
HRV balance and sleep balance compare your recent 14-day trend against a stable 60-day baseline, catching slow drifts a single night hides. Activity balance uses the acute:chronic workload ratio (see Strain) to penalise both overreaching and detraining.
If a contributor has no data (say your watch missed temperature), its weight is renormalised away — the remaining contributors are re-weighted to sum to one, rather than filling the gap with a fake neutral guess. The one exception: a completely untracked night sets the sleep contributor to a neutral 85 rather than dropping it, so an unknown night can't accidentally print a near-perfect Readiness.
Contributor design draws on the training-readiness literature: Gabbett (2016) on acute:chronic workload; Plews et al. (2013) on HRV trend vs single-day; Borbély (1982) two-process model for sleep debt.
Why two scores instead of one
Most apps give you a single "recovery" number and hope it means everything. NoBand splits the question deliberately:
- Recovery is physiological — did your nervous system reset overnight? It's the honest read on your hardware this morning.
- Readiness is functional — given your body, your sleep, and your recent training, how hard should today be? It's the coaching decision.
When they agree, the message is simple. When they diverge — high Recovery, low Readiness, or vice versa — that gap is itself information: strong hardware but accumulating load, or a rough night your body has already partly shrugged off. Two numbers carry more truth than one average of them.
HRV and resting heart rate
Heart-rate variability is the tiny beat-to-beat variation in your heart's timing. A healthy, recovered, parasympathetically-dominant heart varies more; a stressed, fatigued or fighting-something heart beats more metronomically. NoBand uses RMSSD (the root mean square of successive differences), the time-domain measure most tied to vagal/parasympathetic tone and most robust on wrist optical sensors. We take the natural log before comparing, because RMSSD is roughly log-normally distributed — so a drop from 80→60 ms and 40→30 ms are treated as similar relative moves.
Resting heart rate is the slower companion. Measured in sleep, it drifts up with fatigue, dehydration, alcohol, heat, illness and overtraining, and down as fitness improves. Its steadiness is exactly why it earns the "confirmer" role in Recovery: when both your HRV falls and your RHR rises, the two independent signals agree and the score is allowed to move hard.
For the daily vitals view, we show two bands: a narrow typical range (±1 robust spread, ≈ your everyday night-to-night) and a wider alert range (±2) that only flags genuinely unusual readings, so notifications stay rare and meaningful.
Breathing rate, blood oxygen, wrist temperature
Respiratory rate during sleep is remarkably stable person-to-person; a rise of even a breath or two per minute above your baseline is an early, sensitive sign of physiological stress, oncoming illness, alcohol or a hot room. It contributes to Recovery as a capped modifier and shows its own range in vitals.
Wrist skin temperature is read as a deviation from your own baseline, not an absolute. A sustained elevation is a well-known correlate of immune activation and (for those tracking it) the luteal phase. We only ever let it penalise Recovery, never reward — a cool wrist tells you little, a warm one can tell you plenty. A deviation beyond ±0.6 °C is flagged.
Blood oxygen (SpO₂) is shown as a one-sided floor ("above X%") against your baseline, because for most healthy people the interesting direction is down. Note that on some Apple Watch models sold in the US the SpO₂ sensor is disabled for legal reasons; NoBand handles that gracefully and simply marks it unavailable rather than inventing a value.
Sleep — an Apple-style score, plus a debt model underneath
NoBand actually runs two sleep models. The one you see on the Sleep card is built to track Apple's own iOS 26 Sleep Score, so the number moves with what your Watch shows. Under the hood, a second sleep-debt model feeds Recovery and Readiness.
The displayed score (0–100)
- Duration (50): 40 points for time asleep versus your personal need, plus up to 5 each for hitting healthy deep (≈13% of sleep) and REM (≈20%) fractions.
- Consistency (30): how regular your bedtime has been over the last 13 nights, measured with a robust (MAD-based) spread. Calibrated at 6 points lost per hour of variability — Apple treats consistency as a gentle nudge, not a gate, and side-by-side testing against real Apple Watch scores confirmed that slope.
- Interruptions (20): wake time after a ~20-minute free grace, then penalised per hour awake.
An untracked night returns no score at all (missing data), not a zero — a night you didn't wear the watch isn't a "bad" night.
The debt model (Borbély two-process)
Internally, your nightly need rises with yesterday's strain and falls with naps, and unmet need accumulates as rolling sleep debt that decays about 20% a night. This is a direct application of Borbély's two-process model of sleep regulation (Process S, homeostatic pressure). That debt is what nudges your Recovery, feeds Readiness's sleep-balance term, and drives the Sleep Coach's recommended bedtime — which is computed forward from today's expected strain, not backward from last night.
Basis: Borbély (1982), two-process model of sleep regulation; deep/REM target fractions from adult sleep-architecture norms; consistency slope calibrated against Apple's iOS 26 Sleep Score.
Strain — a cardiovascular load meter
Strain measures how much cardiovascular work you did, not steps or calories. The engine is a continuous TRIMP (training impulse) model: every minute is weighted by how hard your heart was working, with an exponential curve so time spent at high intensity counts far more than easy minutes.
Intensity is expressed as heart-rate reserve (Karvonen: where your heart sits between resting and max), so the same effort means the same thing whether you're very fit or just starting. Total daily load is then log-compressed onto a familiar 0–21 scale — deliberately non-linear, so climbing from 15 to 18 costs far more work than 5 to 8, matching how exponentially harder peak efforts feel.
Your daily target range is set by your Recovery: on a fully recovered day the engine suggests roughly 9–15, on a depleted day 3–8, interpolated continuously in between. A guardrail then adjusts it using your acute:chronic workload ratio (Gabbett): if your 7-day load is running hot versus your 28-day average (ratio > 1.5) it caps the ceiling so you don't dig a hole; if you've gone quiet (ratio < 0.8) it lifts the floor to nudge you off the couch. This ratio is one of the best-supported predictors of training injury risk in the sports-science literature.
Basis: Banister (1975/1991) TRIMP; Morton (1990) sex-specific constants; Karvonen (1957) heart-rate reserve; Gabbett (2016) acute:chronic workload ratio.
Fitness Age — your biological, not calendar, age
Your birthday is a fixed number. Your Fitness Age asks a more useful one: at what age is the average person as fit as you are right now? If a 45-year-old has the cardiorespiratory fitness of a typical 38-year-old, their Fitness Age is 38. It's a single, motivating summary of biological rather than chronological aging — and unlike your birthday, you can move it.
The backbone: VO₂max
The strongest single predictor of healthy longevity we can estimate from a watch is VO₂max — the maximum oxygen your body can use, the gold-standard measure of cardiorespiratory fitness. Large cohort studies (notably the HUNT Fitness Study, Nes et al. 2011) show VO₂max tracks mortality risk more tightly than most conventional risk factors, and it declines predictably with age. That predictable decline is exactly what lets us invert it into an age.
If your Apple Watch has measured your VO₂max (cardio fitness), we use that directly. If not, we estimate it from a validated non-exercise equation (Jackson et al. 1990, BMI variant):
We then map VO₂max to an age using sex-specific population norms — an average 25-year-old man sits near 48 ml/kg/min and declines ~0.40 per year; a woman near 40, declining ~0.35 per year:
This cardiorespiratory factor is the dominant one, and on its own can shift your estimate up to ±8 years.
Body composition
Where it's known, we prefer waist-to-height ratio over BMI. WHtR captures central (visceral) fat — the metabolically dangerous kind — and predicts cardiometabolic risk better than BMI across body types (Ashwell's work; the "keep your waist under half your height" rule). The optimal is 0.50, and deviation shifts Fitness Age up to ±6 years. Most people don't enter a waist measurement, so if only height and weight are available we fall back to BMI (optimal ~22), and we never double-count it if BMI already fed the VO₂max estimate.
Lifestyle modifiers
Three further signals fine-tune the estimate, each tightly bounded so no single one dominates:
- HRV — versus an age-expected RMSSD (~70 − 0.5·age): stronger autonomic health pulls your age down, up to ±4 years.
- Resting HR — a lower RHR reflects an efficient, well-conditioned heart, up to ±3 years.
- Sleep — chronic poor sleep is an independent accelerant of biological aging, up to ±2 years.
Everything is summed and the total adjustment is clamped to ±12 years of your real age (and never below 18), so the number stays grounded even with sparse data. The app then surfaces your top levers — the two or three factors currently adding the most years — because those are exactly what you can train down.
Basis: Jackson et al. (1990) non-exercise VO₂max; Nes et al. (2011, HUNT) VO₂max age norms and mortality; Ashwell & Hsieh (2005) waist-to-height ratio; ACSM VO₂max percentile norms; HRV/RHR aging associations per the autonomic-aging literature.
What NoBand deliberately doesn't do
- No flattering curves. We removed every output-side transfer curve and "crash-night" cap. Scores are the raw weighted evidence, clamped only to 0–100.
- No invented data. A workout with no heart-rate reading contributes zero load, not a guess. An untracked night has no sleep score, not a zero. A disabled SpO₂ sensor reads "unavailable", not a fabricated 98%.
- No population shortcut. Your scores are built against your own 30-to-60-day history, not a generic cohort.
- No cloud scoring. The math on this page runs on your iPhone.
Honest limitations
We'd rather you trust the numbers because you know their edges:
- These are estimates from consumer optical and temperature sensors. They can be wrong, noisy, or thrown off by a poorly-fitting watch, tattoos, cold skin or motion.
- The first 2–4 weeks read cautiously by design while your baseline fills in.
- A night without the watch means no HRV or temperature for that morning — the score adapts to what it has and tells you so.
- VO₂max estimated from the non-exercise equation is a population model; a watch-measured or lab VO₂max is more accurate for you personally.
- NoBand is not a medical device and does not diagnose, treat or monitor any condition. If a reading worries you or you feel unwell, talk to a clinician. See our Terms of Use.
Selected references
- Task Force of the ESC/NASPE (Malik M, chair). Heart rate variability: standards of measurement, physiological interpretation, and clinical use. Circulation, 1996.
- Plews DJ, Laursen PB, Stanley J, Kilding AE, Buchheit M. Training adaptation and heart rate variability in elite endurance athletes. Sports Medicine, 2013.
- Buchheit M. Monitoring training status with HR measures: do all roads lead to Rome? Frontiers in Physiology, 2014.
- Karvonen MJ, Kentala E, Mustala O. The effects of training on heart rate. Annales Medicinae Experimentalis et Biologiae Fenniae, 1957.
- Banister EW. Modeling elite athletic performance. In: Physiological Testing of Elite Athletes, 1991 (TRIMP, orig. 1975).
- Morton RH, Fitz-Clarke JR, Banister EW. Modeling human performance in running. Journal of Applied Physiology, 1990.
- Gabbett TJ. The training-injury prevention paradox: should athletes be training smarter and harder? British Journal of Sports Medicine, 2016.
- Borbély AA. A two process model of sleep regulation. Human Neurobiology, 1982.
- Jackson AS, Blair SN, Mahar MT, et al. Prediction of functional aerobic capacity without exercise testing. Medicine & Science in Sports & Exercise, 1990.
- Nes BM, Janszky I, Wisløff U, et al. Age-predicted maximal heart rate in healthy subjects: the HUNT Fitness Study. Scandinavian Journal of Medicine & Science in Sports, 2011.
- Ashwell M, Hsieh SD. Six reasons why the waist-to-height ratio is a rapid and effective global indicator. International Journal of Food Sciences and Nutrition, 2005.
- Leys C, Ley C, Klein O, et al. Detecting outliers: do not use standard deviation around the mean, use absolute deviation around the median. Journal of Experimental Social Psychology, 2013.
NoBand implements methods inspired by this literature; it is not affiliated with or endorsed by these authors, and any errors in adaptation are ours. Apple Watch and Apple Health are trademarks of Apple Inc.