100% private · runs in your browser · nothing uploaded

Recovery Score Calculator

Turn your Apple Watch HRV, resting heart rate and sleep into a WHOOP-style 0–100 recovery score. Free, private, and computed live as you type — nothing is ever uploaded.

Your numbers

Find these in the Apple Health app. Exact locations noted under each field.

Health app → Browse → Heart → Heart Rate Variability

Tap HRV → switch to Month view for your average

Health app → Browse → Heart → Resting Heart Rate

Tap Resting Heart Rate → Month view average

Health app → Browse → Sleep (total asleep, not time in bed)

Default 8h — adjust to your personal target

3 / 10
Rest dayModerateAll-out

Rough RPE (perceived effort) or how hard yesterday was. Leave at 0 for a rest day.

Your recovery today

--
Recovery

What's driving your score

HRV vs baseline (40%)
Resting HR (25%)
Sleep fulfillment (25%)
Strain modifier (10%)

Every calculation happens locally in your browser. Your data never leaves your device.

How to use this calculator

  1. 1
    Open the Health app on your iPhone. Tap the Browse tab at the bottom.
  2. 2
    Grab last night's HRV and this morning's resting heart rate. Go to Heart → Heart Rate Variability and Heart → Resting Heart Rate. Switch each to the Month view to read off your typical baseline too.
  3. 3
    Check last night's sleep. Under Browse → Sleep, read your total time asleep (not time in bed).
  4. 4
    Type the numbers in above. Your recovery score, band and per-factor breakdown update instantly — nothing is sent anywhere.

The companion guide

Your Apple Watch Already Does What WHOOP Does — Here's How to Get the Scores

The full walkthrough of Strain, Sleep and Recovery scores from Apple Health, plus an honest WHOOP/Oura comparison. This calculator is its interactive companion.

What this recovery score calculator does

Your Apple Watch already records the two most validated markers of overnight recovery — heart rate variability (HRV) and resting heart rate (RHR) — alongside your sleep. What it doesn't give you is the single number WHOOP built a business on: an answer to "should I push hard today, or take it easy?" This recovery score calculator closes that gap. Type in a handful of numbers you can read straight off the Health app and it returns a 0–100 recovery score, a plain-language band, and a breakdown of exactly which factor helped or hurt.

It is the interactive companion to our guide on getting WHOOP-style scores from Apple Health. Everything runs in your browser — this is the whole point of the site's privacy promise: your data never leaves your device.

Why "recovery" is worth a number

Raw HRV and RHR values are noisy and hard to interpret in isolation. A HRV of 48 ms means nothing until you know whether 48 is high or low for you. Recovery scoring solves that by comparing today against your own baseline: a HRV above your typical average and a resting heart rate at or below your norm are the classic signatures of a well-recovered autonomic nervous system. Layer in whether you actually slept enough and how hard you trained yesterday, and you get a readiness signal that is far more actionable than any single metric.

How the recovery score is calculated

The score is a transparent weighted blend of four sub-scores, each normalized to 0–100. We deliberately publish the formula so you can sanity-check it — nothing here is a black box.

1. HRV vs baseline — ~40% weight (log-scaled)

HRV is the strongest single input, so it carries the most weight. Because HRV is naturally right-skewed (big upward swings are common, big downward ones less so), we compare it on a log scale rather than a raw ratio — this matches how WHOOP and the HRV research literature treat it.

ratio = HRV_today / HRV_baseline
hrvScore = clamp( 50 + 60 × log2(ratio), 0, 100 )

At baseline (ratio = 1) you score 50. A HRV that is double your baseline pins you near 100; half your baseline drops you toward 0.

2. Resting heart rate deviation — ~25% weight

An elevated morning resting heart rate is one of the earliest signs of accumulated fatigue, illness or under-recovery, so a RHR above baseline is penalized while a RHR at or below baseline is rewarded.

delta = RHR_today − RHR_baseline (bpm)
rhrScore = clamp( 80 − delta × 7, 0, 100 )

Sitting right at your baseline scores 80. Every beat per minute above baseline costs ~7 points; being a couple of beats below baseline pushes you to 100.

3. Sleep fulfillment — ~25% weight

Sleep is the input you most directly control. This sub-score is simply how much of your personal sleep need you actually met last night, with a small bonus for banking extra.

sleepScore = clamp( (sleep_hours / sleep_need) × 100, 0, 105 )
          then capped at 100

Hitting your full need scores 100; sleeping six hours against an eight-hour need scores 75.

4. Strain modifier — ~10% weight

Yesterday's training load doesn't change how recovered you physiologically are this morning, but it does inform the recommendation: a hard session yesterday means today's "moderate" reading deserves more caution. A rest day (strain 0) is neutral; an all-out day (strain 10) applies a modest downward nudge.

strainScore = clamp( 100 − strain × 5, 50, 100 )

Combining them

recovery = round(
  0.40 × hrvScore +
  0.25 × rhrScore +
  0.25 × sleepScore +
  0.10 × strainScore )

Reading your recovery bands

The result maps to three bands most athletes already recognize from WHOOP:

  • 67–100 · Green · "Primed" — your nervous system has bounced back. Green light to train hard or chase a personal record.
  • 34–66 · Yellow · "Moderate" — a normal day. Train, but keep intensity sensible and listen to your body.
  • 0–33 · Red · "Rest day" — your body is under load. Active recovery, a walk, mobility or full rest will pay off more than pushing.

How this compares to WHOOP, Oura and Athlytic

Being honest matters here. WHOOP, Oura and Athlytic compute recovery from continuous overnight HRV sampling — hundreds of data points captured while you sleep — blended against their own multi-year, personalized baselines and, in WHOOP's case, published proprietary algorithms. This calculator works from a few numbers you type in by hand, so it necessarily captures less nuance than a device sampling you all night.

What it gives you in return is transparency and zero cost: you can see the entire formula above, it runs privately in your browser, and it uses the exact same physiological inputs (HRV, RHR, sleep) that the paid platforms lean on most heavily. Treat the number as a well-grounded estimate rather than a medical readout. As with every recovery platform, the trend over a week matters more than any single morning — feed it consistent readings and it will track your readiness reliably.

Frequently asked questions

What is a good recovery score?

67 or above is green ("primed") — you can train hard. 34–66 is yellow ("moderate") — a normal day, but don't chase a PR. Below 34 is red ("rest day") — your body will benefit more from active recovery. These thresholds mirror the WHOOP-style bands most athletes already recognize.

How is the recovery score calculated?

A weighted blend of four factors: HRV vs baseline (~40%, log-scaled), resting heart rate deviation (~25%, elevated RHR penalized), sleep fulfillment vs your sleep need (~25%), and yesterday's training strain (~10%). Each produces a 0–100 sub-score, combined into one recovery score. The full formula is shown transparently above.

Can I get a WHOOP recovery score without WHOOP?

Yes. WHOOP's recovery score is built primarily from overnight HRV and resting heart rate — two metrics your Apple Watch already records. This calculator uses the same physiological inputs to estimate a comparable 0–100 score for free. It's an estimate, not a clinical device, but for day-to-day training decisions it's more than enough for most Apple Watch owners.

Where do I find my HRV and resting heart rate in Apple Health?

Health app → Browse → Heart → Heart Rate Variability for HRV (shown as SDNN in ms), and Browse → Heart → Resting Heart Rate for RHR. For baselines, tap a metric and switch to Week or Month view to read your typical average. Sleep is under Browse → Sleep.

Is my health data uploaded anywhere?

No. This calculator runs 100% in your browser. The numbers you type are never sent to a server, never stored, and never leave your device. You can disconnect from the internet after the page loads and it still works.

How accurate is this compared to WHOOP, Oura, or Athlytic?

Those devices compute recovery from continuous overnight HRV sampling and their own multi-year baselines, so they capture more data than a few typed numbers. This calculator gives a transparent, honest estimate from the same core inputs. Trends matter more than any single reading — feed it consistent morning numbers and it tracks your readiness well.

More free tools

All private, all in-browser — no upload, no signup.

Want deeper analysis?

This calculator works from a single morning's numbers. To track recovery, strain and sleep across your entire Apple Health history — with automatic daily scores and 7-day trends — get the app.