Science · Racing & environment

Altitude Hbmass decays in ~10 days — no in-season LHTH race watts

In-season live-high train-high raises tHbmass about 3.5%, but that bump is gone ~10 days after descent and did not raise VO2max or performance (Cubel 2026). Koyaro warns when you annotate a camp; it never boosts FTP. Heat is a legitimate Hbmass substitute — the heat block stays on #446.

Last reviewed · Part of Koyaro’s public science knowledge base — the same method notes the coaching engine cites.

Athlete summary

If you log an altitude camp against a race, Koyaro will remind you that any haemoglobin-mass bump from in-season live-high / train-high is short-lived and did not show up as extra race watts in the paper we cite.

LockWhat Koyaro does
Cubel 2026 tHbmassStudy-effect envelope +3.5% at descent, 0% at ~10 days
Performance / VO2maxUnchanged at 2–3 and 10 days post — FTP multiplier stays 1.0
A-race after day 10Warning unless you flag a heat-maintenance stimulus
No camp annotatedNo warning — we do not invent a camp
Altitude fitness scoreDoes not exist

This is not a live blood test. The +3.5% / 10-day numbers are Cubel's population result, shown as an envelope so the planner can warn — not a personal haematology score.

What Cubel 2026 measured

Cubel, Klaris, Larsen, Faiss, Nybo, Lundby (Exp Physiol 2026;111(3):820–833, doi 10.1113/EP092968): 12 elite male cyclists, in-season LHTH 21 days at 3000 m.

OutcomeResult
tHbmass+3.5%, back to baseline ~10 days after descent
VO2maxUnchanged at 2–3 and 10 days post
PerformanceUnchanged at 2–3 and 10 days post
Heat follow-up (n=7)Off-season heat 6×1 h/week × 5 weeks → +5.4% tHbmass, n.s. vs LHTH

So: (i) do not model altitude as a durable performance boost; (ii) heat is a substitutable Hbmass stimulus; (iii) an A-race more than ~10 days after descent needs a maintenance stimulus if you care about leftover haematology — and even inside the 10-day window, Cubel saw no extra watts.

What the engine does

Domain: coach.domain.racing.altitude.evaluate_altitude_transfer.

  1. Annotate start_date + descent_date on the race (PATCH /races/{id}/altitude-camp). Protocol is LHTH only — we do not invent a live-high / train-low mesocycle from one n=12 study.
  2. After descent, report Cubel's study-effect envelope: residual = max(0, 3.5 × (1 − days_since_descent / 10)).
  3. ftp_multiplier and vo2_multiplier are always 1.0.
  4. Race-week checklist category altitude seeds the no-watt-promise row, the ~10-day decay row, and (for an A-race past day 10 without heat) a scheduling warning.
  5. heat_maintenance=true records Cubel's substitute finding. The heat block (induction / decay / re-induction) stays on.

During the stay, is_during_altitude_camp is the hook for the Pirlot 2025 quality-day rule (sea-level HRV/RHR must not red-light — see quality-day-readiness-gate). Post-descent decay is this article.

What this is not

  • Not an altitude-fitness or haematology score.
  • Not a silent TSS / IF altitude load multiplier.
  • Not a heat-acclimation prescription.
  • Not clinical AMS advice.
  • Not a reason to raise FTP, eFTP, CP, or race targets after camp.

Citations

KeyPaperTakeaway
cubel-2026-altitude-hbmassCubel T, Klaris MB, Larsen EL, Faiss R, Nybo L, Lundby C. Haematological adaptations to high-altitude and heat acclimation training in elite male cyclists. Exp Physiol. 2026;111(3):820–833. doi 10.1113/EP092968+3.5% tHbmass after 21 d LHTH at 3000 m; gone ~10 d; VO2max and performance unchanged. Heat produced a similar tHbmass delta.
cubel-2024-heat-hbmassCubel et al. Temperature 2024;11(4):350–362. doi 10.1080/23328940.2024.2383505Heat-block onset / decay — protocol owned by; cited here only as the Hbmass-substitute cross-link.

Ready when there’s a seat.

Join the waitlist for closed beta. We’ll invite you when there’s room — then import your history and start a living plan.