Files
cycling-training/references/data-confounds.md
T
Chris Farhood f6dd9dfc27 feat: add cycling-training Claude skill (MCP companion)
Modular cycling-training skill: periodization logic, workout design, and
research-backed protocols that companion an Intervals.icu MCP server (the
server owns all data + computed metrics; the skill owns knowledge + reasoning).

Structure:
- SKILL.md router + README (companion-to-MCP architecture, install steps)
- references/: durability, mtb-xco-demands, strength-for-cyclists,
  vo2max-intervals, periodization, data-confounds, citations
- assets/: base + build plan templates, durability field-test protocol

Every quantitative claim carries an inline citation; citations.md is the
single source of truth with PMID/DOI, each verified against PubMed on
2026-07-20. Notable honesty flags baked in:
- VO2 rep-length: running (Fleckenstein 2025) vs cycling (Ronnestad) conflict
  documented rather than asserted; cycling evidence favors short intervals.
- 'Yu et al. 2025' (frequency > distribution) could not be found; not cited.
- Under-researched doses (durability, taper TSB, CTL ramp) flagged 'track response'.
- HR-confound doc forbids naive decoupling<5% / RHR+5 rules.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqrhBhC3GEcKyaw8RTk8G6
2026-07-20 18:59:37 -04:00

77 lines
4.3 KiB
Markdown

# Data confounds — when to trust HR, RHR, HRV, and decoupling
**Load this doc when:** interpreting heart rate, resting HR, HRV, sleep, or aerobic decoupling —
i.e. any time a number is about to drive a training decision.
**Data/knowledge split:** MCP gives you the raw and computed signals (HR streams, RHR, HRV, sleep,
readiness, decoupling). This doc governs **whether that signal is trustworthy today** and forbids
naive single-number rules.
---
## Core stance: power governs; HR is conditional
**Prescribe from power.** Heart rate is a *response* variable contaminated by many non-training
factors. Use HR only where it is genuinely informative:
- **Aerobic decoupling on steady rides** (Pw:HR drift) — valid only on steady efforts.
- **Recovery trends** (RHR, HRV) — as *trends*, screened for the confounds below.
Do **not** use HR to prescribe or judge intensity for **intermittent** efforts — see the MTB
dissociation below.
## The confounds (screen every HR-based signal against these)
Any of these can move HR, RHR, HRV, or decoupling independent of fitness or fatigue:
| Confound | Effect | Implication |
|---|---|---|
| **Heat / dehydration** | ↑ HR, ↑ cardiac drift, ↑ decoupling | High decoupling on a hot ride ≠ poor fitness |
| **Alcohol** (prior evening) | ↑ RHR, ↓ HRV, disrupted sleep | A bad HRV morning after drinking is not overtraining |
| **Travel** (jet lag, altitude, transit) | ↑ RHR, ↓ HRV, poor sleep | Expected; not a training signal |
| **Poor / short sleep** | ↑ RHR, ↓ HRV, ↑ perceived effort | Fatigue signal, but from sleep — adjust the day, don't panic |
| **Illness / stress / caffeine timing** | ↑ RHR, altered HRV | Interpret in context, not in isolation |
| **Intermittent effort (MTB)** | HR lags surges; VO2 stays high on descents | HR mis-reads MTB intensity entirely (see below) |
## ⚠️ The MTB / intermittent-effort dissociation
In intermittent off-road riding, **HR, power, and VO2 dissociate**: VO2 stays elevated on descents
where power drops, and HR lags the short bursts that define the effort. In XCO, %VO2max did **not**
correlate with %HRmax or %MAP (Hays et al. 2018, *Front Physiol* 9:1062; PMID 30158873;
DOI 10.3389/fphys.2018.01062). **For MTB, HR is unreliable for intensity — power governs.** See
`mtb-xco-demands.md`.
## Do NOT hardcode naive rules
These single-number rules are **wrong as written** because they ignore the confounds above:
- ❌ "**Decoupling < 5% = fresh / fit**." Decoupling is inflated by heat, dehydration, fueling, and
any non-steady effort. It is only interpretable on a **steady** ride in **controlled conditions**,
and even then as a **trend**, not a threshold. High decoupling on a hot, long, or surgey ride tells
you little about fitness.
- ❌ "**RHR + 5 bpm = overtrained**." A single elevated RHR morning is far more often alcohol,
short sleep, travel, heat, or illness. Overtraining/non-functional overreaching is a **multi-signal,
multi-day** picture (RHR trend + HRV trend + performance + mood + sleep + training load), never one
morning's number.
**The correct pattern:** look at **trends across days**, **corroborate across signals** (RHR + HRV +
sleep + performance + subjective), and **explain-away confounds first** before attributing a change
to training fatigue.
## Using decoupling for durability (the one HR job that's valid)
On a **steady** endurance ride, Pw:HR decoupling is a reasonable aerobic-durability signal: as
aerobic fitness/durability improves, HR drifts less for the same power late in a long ride. Use it:
- Only on **steady** rides (not intervals, not MTB).
- Only when **conditions are controlled** (not a heat outlier, not dehydrated, not post-alcohol).
- As a **trend** across comparable rides, alongside the power-based durability field test
(`../assets/field-test-durability.md`), which is the more direct measure.
## Practical workflow
1. Pull the signal from MCP (HR stream, RHR, HRV, sleep, decoupling, readiness).
2. **Screen for confounds** (table above). If a confound is present, discount the signal.
3. **Corroborate** across signals and across days before acting.
4. **Prescribe from power**; use HR only for steady decoupling and recovery trends.
5. When signals conflict and confounds are present, **default to caution** (easier day) rather than
trusting one number in either direction.