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.
| Lock | What Koyaro does |
|---|---|
| Cubel 2026 tHbmass | Study-effect envelope +3.5% at descent, 0% at ~10 days |
| Performance / VO2max | Unchanged at 2–3 and 10 days post — FTP multiplier stays 1.0 |
| A-race after day 10 | Warning unless you flag a heat-maintenance stimulus |
| No camp annotated | No warning — we do not invent a camp |
| Altitude fitness score | Does 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.
| Outcome | Result |
|---|---|
| tHbmass | +3.5%, back to baseline ~10 days after descent |
| VO2max | Unchanged at 2–3 and 10 days post |
| Performance | Unchanged 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.
- Annotate
start_date+descent_dateon 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. - After descent, report Cubel's study-effect envelope:
residual = max(0, 3.5 × (1 − days_since_descent / 10)). ftp_multiplierandvo2_multiplierare always 1.0.- Race-week checklist category
altitudeseeds the no-watt-promise row, the ~10-day decay row, and (for an A-race past day 10 without heat) a scheduling warning. heat_maintenance=truerecords 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
| Key | Paper | Takeaway |
|---|---|---|
cubel-2026-altitude-hbmass | Cubel 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-hbmass | Cubel et al. Temperature 2024;11(4):350–362. doi 10.1080/23328940.2024.2383505 | Heat-block onset / decay — protocol owned by; cited here only as the Hbmass-substitute cross-link. |