The training behind the runs
Three Jan‑to‑race blocks, side by side. 3 years of Strava and TrainingPeaks data. Same race every May, but the training that produced each finish was very different — and the shape of the change is the textbook polarised aerobic model.
Polarisation · TrainingPeaks HR zones
Time spent in each TrainingPeaks heart‑rate zone, summed across every Jan→race workout. Bars are scaled to the largest year so you can read the absolute volume change as well as the mix.
Z1 minutes climbed from 1460 in 2024 to 4267 in 2026 — almost three times as much easy aerobic time. Z5 dropped from 921 to 350 minutes. The middle zones barely changed. That's the polarised model.
Fitness curve · CTL
Chronic Training Load is a 42‑day exponential moving average of daily training stress. It's the closest single number we have for "aerobic fitness right now". Each year started higher than the last, and 2026 built to a peak of 234 vs 141 in 2024.
Weekly TSS · raw load
The same data CTL is averaging — week‑by‑week training stress, no smoothing. The 2026 line sits ~50% higher than 2024 for the entire block, with a much shorter taper before race week.
Long run progression
Longest single run each week, plotted by weeks before race day so the three years line up at the finish. The 2026 build ramps to a stable 40‑45 km block from week −7 onward — the most consistent ultra‑specific stretch of any year.
Calendar · daily TSS
One cell per day from Jan 1 through race day, shaded by daily training stress. Empty cells were rest. The race day itself is outlined in forest green. The visible difference between rows is mostly the rare days off in 2025 and 2026 vs 2024.
Year by year