AI Running
§4 Section 4 of 6 2,725 words · 12 min

Reading Readiness, HRV and Recovery Scores

Your watch gives you a number every morning. Your training app gives you a session every morning. Neither one knows what the other is doing, and the gap between them is where most recreational runners either quietly overcook themselves or quietly stop progressing.

This page is about closing that gap: what the readiness and recovery scores actually measure, which ones deserve to change your session, and how to use them to audit whether the plan you’re following (Runna, Garmin Coach, a ChatGPT block, a coach-written spreadsheet) is progressing you at a rate your body is absorbing.

Garmin training readiness explained: the six inputs and their weights

Training Readiness is a 0–100 score available on Forerunner 255/265/955/965/970, Fenix 7 and 8, Epix, Enduro and Venu 3. It’s bucketed into four labels: Low (1–24), Moderate (25–49), High (50–74) and Prime (75–100). The labels shift slightly between firmware versions, so anchor on the number.

Six inputs feed it:

  1. Sleep score from last night. The heaviest single contributor. A sleep score under about 50 will drag readiness down on its own, regardless of everything else.
  2. Recovery time. Hours Garmin thinks you still need before another hard session. Capped at 96 hours. While this is counting down, readiness is capped too.
  3. Sleep history. A rolling look at the last three nights, so one good night after three bad ones won’t reset you.
  4. HRV status. Your seven-day average overnight HRV compared against your own 21-day baseline range.
  5. Acute load. Your rolling seven-day training load, judged against the optimal range Garmin calculates from your chronic load.
  6. Stress history. Daytime stress readings from the last three days.

Tap into the score in Garmin Connect and you get the breakdown. A typical morning after a long run looks like this:

Training Readiness            38  Low
  Sleep                       72  Good
  Recovery time            41 hrs  ↑
  Sleep history               68  Good
  HRV status            Balanced
  Acute load                 412  High
  Stress history              58  Average

Nothing in that panel is a problem. Sleep was fine, HRV is balanced, and the two things dragging the score down (recovery time and acute load) are the direct mechanical consequence of the 32 km you ran yesterday. A 38 there is the watch correctly reporting that you did something hard. It is not telling you to skip today.

Compare it to this, which is the same score with a completely different meaning:

Training Readiness            36  Moderate
  Sleep                       41  Poor
  Recovery time             0 hrs
  Sleep history               47  Poor
  HRV status      Unbalanced (low)
  Acute load                 198  Low
  Stress history              71  High

Here the load is low, there’s no outstanding recovery debt, and the score is still bad. Sleep has been poor for days, HRV has fallen out of your normal range, and daytime stress is elevated. That’s the pattern that should change your week, not your morning.

The single most useful habit with Training Readiness is to stop reading the number and start reading which inputs are holding it down.

Readiness is the fast signal, HRV Status is the slow one

Training Readiness recalculates throughout the day and reacts to a single bad night. HRV Status moves on a scale of weeks, which is exactly why it’s the more trustworthy of the two for deciding whether a training block is working.

Garmin samples RMSSD every five minutes during sleep and averages the night. Your baseline is a rolling 21-day window, and you need roughly 19 nights of data inside it before you get a status at all. The four states are Balanced, Unbalanced (which can mean above or below your range), Low, and Poor. Because it’s a wrist-based nocturnal average, the absolute millisecond values run lower than a morning chest-strap reading and are not comparable to a friend’s numbers or to your own reading from a different device. The only comparison that means anything is you against your own range, which is covered in more depth at /hrv-baseline-runners/.

The practical rule: one night outside your range is noise. Five consecutive nights below your range, especially alongside resting heart rate creeping up 3–5 bpm, is signal. When Garmin flips you to Unbalanced and keeps you there for a week while your RHR climbs, the plan is asking for more than you’re currently absorbing, and that’s true whether or not you feel tired.

Watch for the other direction too. HRV trending above your range sounds good and sometimes isn’t. Deep fatigue, a heavy cold coming on, and alcohol the night before can all produce elevated nocturnal HRV with a suppressed heart rate. Take “Unbalanced (high)” as a prompt to check RHR, respiration rate and how your easy runs feel, not as a green light for a session you weren’t planning.

The other platforms measure different things and will disagree with each other

If you cross-reference two devices you will get contradictory verdicts, and it’s worth knowing why before you assume one is broken.

Whoop gives a Recovery percentage: red 0–33%, yellow 34–66%, green 67–100%. It is dominated by HRV and RHR measured during slow-wave sleep, with respiratory rate and sleep performance also weighted in. Whoop deliberately gives very little weight to yesterday’s training load, which is why a Whoop can hand you 74% green the morning after a 30 km run while a Garmin shows readiness 35.

Oura produces a Readiness Score, with 85+ as optimal, 70–84 good and below 70 flagged. Its contributor list includes body temperature deviation and “recovery index” (how quickly your heart rate settled after you fell asleep). The temperature contributor makes Oura noticeably earlier than Garmin at catching an infection, often by 24–36 hours.

Polar splits it: Nightly Recharge separates ANS charge (your autonomic state in the first four hours of sleep) from sleep charge (quantity and quality). That separation is genuinely useful, because “I slept badly” and “my nervous system is flat” are different problems with different fixes.

Coros takes the simplest approach. Its recovery figure is essentially a decay timer expressed as a percentage, driven by the training impulse of recent sessions, with HRV Index reported separately. It will tell you about accumulated load; it won’t tell you much about a stressful week at work.

Strava doesn’t do readiness at all. What it does have, on the subscription tier, is Fitness & Freshness: a CTL/ATL/Form model built from Relative Effort. Useful for the load question, silent on the recovery question.

None of these are wrong. They answer different questions, so pick one as your primary and treat the others as tiebreakers.

Ten days from a real marathon block

Here’s a snapshot from an 18-week build, week 11, 62 km target, following an adaptive app plan. Baseline overnight HRV range 48–68 ms, baseline RHR 47.

DaySession as writtenReadinessHRV (7d avg)RHRWhat happened
MonRest81 Prime5946Rest as written
Tue5 × 1 km @ 4:0576 Prime6047All 5 hit, last rep 4:03
Wed10 km easy44 Moderate5848Ran easy, felt fine
Thu12 km w/ 20 min tempo51 High5748Tempo hit, HR 6 bpm high for pace
Fri8 km easy33 Moderate5350Ran easy, legs heavy
Sat30 km long29 Moderate5051Swapped to 20 km easy
Sun8 km recovery47 Moderate5150Ran as written
MonRest68 High5448Rest
Tue6 × 1 km @ 4:0572 High5747All 6 hit
Wed10 km easy49 Moderate5847Back to normal

The interesting decision is Saturday. Readiness was 29, but readiness alone wouldn’t have justified cutting a key long run, because a 29 the day after a tempo is ordinary. Three things stacked up instead: HRV had fallen from 60 to 50 over four days and was now at the floor of the range, RHR was 4 bpm above baseline, and Thursday’s tempo had needed 6 bpm more heart rate than usual for the same pace. That trio is the signal. One of them on its own is not.

Cutting 30 km to 20 km easy cost roughly one long run’s worth of specific endurance. Running it would plausibly have cost the following week. By Tuesday the numbers were back, and the 6 × 1 km went as planned.

Note what did not happen: the 10 km easy on Wednesday with readiness 44 was run exactly as written. Easy running with a Moderate readiness is not a conflict to resolve.

When a low score means nothing at all

Before you change anything, rule out the mechanical explanations. In rough order of how often they turn up:

  • Alcohol. Two or three drinks will typically suppress overnight HRV by 15–25% and lift RHR 5–8 bpm. It resolves in a night or two and tells you nothing about your training.
  • A late meal. Eating within two hours of bed reliably depresses the early-night HRV window that Whoop and Polar weight most heavily.
  • Room temperature. A bedroom above about 21°C will cost you sleep score and HRV.
  • Heavy lower-body strength work. Squats and deadlifts drive Garmin’s recovery time and acute load hard. This is correct behaviour on the watch’s part, but it isn’t running fatigue.
  • Travel and time zones. Expect two to four days of suppressed numbers after a long flight, entirely independently of training.
  • Vaccination or a minor infection. A flu jab can produce a two-day HRV dip that looks exactly like overreaching.
  • The watch slid down your wrist. If you get a single wildly out-of-range HRV value with a normal RHR, suspect the sensor before you suspect your physiology. Garmin needs the watch snug and about a finger’s width above the wrist bone.

A useful discriminator: genuine training overload recovers slowly and in step with reduced load. Lifestyle noise recovers within 48 hours without you changing anything. If two easy days restore your numbers, it wasn’t the plan.

Building a rule you can actually follow at 6am

Decide these thresholds once, in advance, while you’re rested and thinking clearly. Renegotiating with yourself every morning at 6am is how plans fall apart.

A version that works for most 5K-to-marathon runners:

Green. HRV inside range and RHR within 2 bpm of baseline. Run the session as written, whatever readiness says. This covers most Moderate readiness mornings.

Amber. Any one of: HRV at or below the bottom of your range, RHR 3–5 bpm high, or readiness under 30 on a quality day. Do the session but cap the intensity: for intervals, run the prescribed number of reps at the easy end of the pace range and stop if rep three is costing more heart rate than rep one usually does. For a tempo, hold the pace and cut the duration by a third.

Red. Two or more of: HRV below range for three-plus consecutive nights, RHR 5+ bpm high, sleep score under 50 for two nights, or a sore throat. Replace quality with easy running or rest. Not “easy plus a few strides”.

Two reds in one week. Take the week down 30% in volume and drop to a single quality session. Don’t wait for the plan’s scheduled recovery week.

The mechanics matter as much as the thresholds. In Runna, move the session rather than deleting it, so the plan’s adaptive logic sees the change. In Garmin Coach, accept the suggested adjustment when it offers one, because rejecting suggestions repeatedly makes the coach’s load estimate drift from reality. With a ChatGPT-built plan there’s no adaptive logic at all, so write the change into the document yourself, otherwise next week’s prescription is built on a week that didn’t happen.

Auditing the plan, not just the day

Readiness scores are good at catching acute problems and bad at catching a badly structured block. For that, look at the shape of the plan.

Check four things:

Ramp rate. Pull your weekly volume for the last six weeks. An AI-generated plan will frequently produce something like 48, 53, 58, 64, 70, 76 km: six straight builds at 8–10% each with no cutback. The percentage looks respectable week to week and the cumulative effect is a 58% increase in six weeks. Insert a down week every third or fourth week, at roughly 65–70% of the preceding week’s volume. In intervals.icu (free, imports from Strava and Garmin), watch CTL ramp rate instead: sustained above 6–7 points per week is where injuries cluster for most recreational runners.

Long run proportion. If your long run is more than about 35% of weekly volume, it’s doing damage disproportionate to its benefit. A 32 km long run inside a 64 km week is half your volume in one session. The fix is usually to add midweek volume, not to shorten the long run.

Quality density. Two hard sessions a week is right for most people under about 70 km. Three only makes sense with a genuine base and a history of absorbing it. Count strength sessions and parkrun as quality, because your body does.

Garmin’s own load ratio. Acute divided by chronic load, with roughly 0.8–1.5 as the target band. Sitting above 1.5 for more than a week or two is the same warning as a fast CTL ramp, delivered in Garmin’s vocabulary.

Cross-check with Training Status. Persistent “Unproductive” (load going up, VO2max estimate going down) or repeated “Strained” over three or four weeks is the watch telling you the plan’s structure is wrong, not that today is a bad day.

The measurement your readiness score can’t see

Aerobic decoupling is the best single check on whether a marathon block is actually working, and no readiness score includes it. Split a long run in half and compare pace-to-heart-rate efficiency between the halves.

Long run  32.0 km  2:51:04
  First half   16.0 km   5:20/km   141 bpm   EF 0.0222
  Second half  16.0 km   5:22/km   152 bpm   EF 0.0204
  Pa:HR decoupling  7.8%

Under 5% on a steady long run means you’re aerobically ready for the distance. The 7.8% above says one of three things: underfuelling (most common, and the easiest to fix by getting to 60–90 g carbs per hour), inadequate aerobic base for that duration, or accumulated fatigue going in. Run the same route again in three weeks after a down week and recheck. If it drops to 4%, the block is working. If it climbs to 10%, the plan is outrunning your adaptation no matter how many Prime mornings you collect.

Strava’s Premium tier will show you heart rate versus pace on the same graph, which gets you most of the way. intervals.icu computes Pa:HR directly and keeps a history so you can see the trend across a block.

Keep a record your next block can use

Four numbers a day, in a spreadsheet or a Notes file: readiness, HRV seven-day average, RHR, and a one-line note on how the session actually felt. Two minutes a week to fill in. After a single 16-week block you’ll have your own reference values, which are worth considerably more than any published threshold: the readiness number below which your intervals genuinely fall apart, how many nights of low HRV you personally tolerate before performance drops, and whether your body answers a heavy week with a dip on day two or day five.

That record is also what lets you push back on an AI plan with something better than a feeling. “Week 9 asked for 76 km, my HRV sat below range for six of seven nights and Saturday’s tempo cost 8 bpm more than the same session in week 5” is a specific, checkable claim. Paste it into the chat, or use it to set Runna’s weekly volume manually, and you’ll get a better week out of it than any amount of asking the model to make the plan easier.

In this section

The supporting pages under this subject.