Your last 90 days show a training engine that is working hard but drifting out of balance, and your body is starting to say so quietly. Heart-rate variability has spent six of the last fourteen nights below your personal baseline band, resting heart rate is sitting about 1.5 bpm above its monthly average, and your recovery scores are averaging 52% over the past week — none of these alone is alarming, but all three moving together is the classic early signature of accumulating fatigue. The two levers behind it are visible in your own numbers: your training week is remarkably samey (a monotony score of 7.03, far above the level where load stops being productive stress), and you are running a genuine sleep shortfall — about nine and a half hours of debt in the last fortnight. The good news is equally clear: you train consistently (56 sessions in 90 days), your sleep efficiency is a solid 90.0%, and nothing here suggests damage — this is a programme-shape problem, and programme shapes are fixable in a fortnight.
Your 7-day HRV average is 54.9 ms against a 28-day average of 56.5 ms — a modest dip in level, but the pattern matters more than the size. Six of the last fourteen nights fell below your personal band floor of 54.6 ms (your 28-day mean minus 0.75 standard deviations), and the 90-day trend is gently negative at −0.57 ms per week. Your night-to-night variability is tight (a coefficient of variation of 4.5%), which makes those repeated sub-band nights more meaningful, not less: a stable system dipping repeatedly is signal, not noise.
Resting heart rate corroborates it from the other side: 56.4 bpm over the last week against 55.0 bpm over the month, with a slow upward drift of 0.21 bpm per week across the quarter. HRV down while RHR climbs is the pairing to take seriously — either alone can be an artefact; together they usually reflect rising sympathetic load. Your recovery scores agree, averaging 52% over the past week.
What would confirm the story: hold the next two weeks' training at reduced intensity (the plan below) and watch for HRV nights back inside the band and RHR easing toward 55. If instead HRV keeps sliding while sleep improves, that is worth a broader look at life stress, not just training.
You are averaging 417 minutes (6:57) of sleep against the 7:30 reference — a nightly shortfall that compounded to 572 minutes of debt over the last fortnight alone. That is the single cheapest performance lever in this report. The architecture within those hours is decent: REM at 22.1% and deep sleep at 15.8% are both respectable shares, and 90.0% efficiency says that time in bed is being converted well — your problem is dose, not quality.
Consistency is the second lever. Your sleep-onset standard deviation is 33 minutes — right at the edge of the "tight" range, drifting on late nights. Onset regularity anchors the circadian system that HRV rides on; pulling that deviation under 30 minutes is worth nearly as much as the extra duration.
Volume is not your issue — distribution is. Your acute load (97.7 over 7 days) sits 17% above your chronic weekly-equivalent (83.9), an ACWR of 1.17 that is inside the commonly cited 0.8–1.3 band but on its warm side, at exactly the moment your recovery markers are soft. The sharper flag is monotony at 7.03: your daily loads barely vary, and by the classic Foster criterion anything above roughly 2.0 means the load arrives with too little rhythm — no genuinely easy days for adaptation, no genuinely hard days to justify them. Weekly strain of 687 with that monotony profile is how fit people grind themselves down at moderate volumes.
Intensity distribution tells the same story from a third angle. Of your 235 weekly training minutes, only 65.9% sit in the low-intensity zones (Z1–Z2) against the ≥70% reference for a polarised base, while 29.0% sits at Z4–Z5 — roughly double the high-intensity share the school you are effectively training in would prescribe. Zone 2 itself totals 110 minutes per week against the 3–4 hour reference: your aerobic base is being outspent by your intensity budget. Your zone data came from per-session zone splits, so these figures are direct, not estimated.
All figures are computed deterministically from your Whoop export over 90 fully covered days (2026-04-06 to 2026-07-04): 7- and 28-day windows for level comparisons, 90 days for trend slopes, population standard deviations throughout. Zone figures use your device's own per-session zone splits; nothing in this report was estimated from average heart rate. This report is an educational analysis of your own device data. It is not medical advice, and no metric here diagnoses or excludes any condition.