Personal Training Analysis
12 weeks of real biometric + performance data. The gap this feature would close.
Nov 17, 2025 – Feb 9, 2026
Key Findings
What the data says
The signal exists — no tool was acting on it in real time.
Classic overreaching signal at program end — exactly what adaptive programming should flag.
Lowest avg sleep of the block. Chest index dropped 145 → 118 the following week.
Directional but underpowered. Consistent with sports science literature on cumulative fatigue.
Methodology
How this was built
Apple Watch via HealthKit XML export (1.74M records). Parsed with Python using xml.etree.ElementTree.iterparse for streaming. Timestamps parsed with strptime to handle timezone offsets. HRV, resting HR, and sleep aggregated to weekly averages.
12 weeks of handwritten workout logs from Jeff Nippard's Bodybuilding Transformation System (Foundation + Ramping blocks). Digitized manually. Peak working weight per exercise per week extracted. Indexed to Week 1 baseline — absolute numbers not shown.
Pearson r computed from scratch — no ML library. Formula: Σ(x−x̄)(y−ȳ) / √[Σ(x−x̄)² · Σ(y−ȳ)²]. Biometric weekly averages paired with peak working weight for the same week. n = 12 pairs for HRV × Chest Press.
Apple Watch worn inconsistently overnight in early program weeks. Exercise selection changed at Week 6 (Foundation → Ramping block), introducing confounders in the strength series. Statistical power is low at n = 12 weeks.
The correlation (r = −0.39, p ≈ 0.21) is not statistically significant at n = 12. It is directionally consistent with the sports science literature — HRV suppression correlates with accumulated training fatigue — but cannot be treated as causal evidence from this dataset alone.
The value of this analysis is not the r-value. It's the demonstration that the data exists, that Apple Watch captures it continuously, and that no current tool acts on it in real time at the gym. That's the product gap Adaptive Training closes.