Time-in-zone as the watch currently reports it:
Diagnosis. By run purpose, your volume is already ~87% easy / 13% quality — textbook polarized. But your easy runs average 140 bpm, which lands in your watch's Z3 band, inflating "moderate" to 51%. Your observed max HR is 190 (hit 7/2), so 140 is only 74% of max — genuinely easy.
Fix. Switch zones from %HRmax to %HR-Reserve (Karvonen) and set max = 190, resting ≈ 48. Recomputed below, your easy days fall into Z2 where they belong, and the distribution reads correctly.
Your easy avg 140 → Zone 2 (aerobic).
Steady/long 143–150 → Zone 2–3.
Threshold reps 164–170 → Zone 4.
Hard finishes 176–190 → Zone 5.
Net effect: the true easy-heavy shape of your training becomes visible, and daily "training load" stops over-counting your easy miles as moderate.
Avg 164 spm at 6:48/mi implies a long stride / mild overstriding. Nudging toward 170–175 can improve economy and reduce impact load. Worth a few cadence-drill strides.
Weeks of 6/8–6/15 fell to 43–48 mi as resting HR bumped toward 60. Reads like a planned down-block or a life/fatigue week — it rebounded cleanly, but it's the pattern to watch as an early-fatigue tell.
Only 7 of 120 nights of sleep tracked, and the 935/245 don't record HRV or readiness. At this volume, sleep is your #1 recovery lever and you have no visibility. Wearing the watch overnight for ~2 weeks would unlock it.
~133,000 kcal burned running this window against a lean profile (BMI 18.2 on file, 2021). Not a diagnosis — just: fuel the volume deliberately. Under-fueling at high mileage is the classic silent performance/injury drag.
The one strong correlation in the data: stress ↔ resting HR (r=+0.44). With no HRV, your morning resting HR is your best cheap readiness proxy — a multi-day rise of 4–5 bpm is your overtraining early-warning.
Acute:chronic load ratio (last 7d vs prior 4-wk avg), inside the 0.8–1.3 sweet spot. One doubling week (6/22, +93%) is the only spike — handled without issue.