How it works
Methodology
Power Predict turns your Strava archive into a sustainable-watts forecast in four steps: extract per-activity power streams, build a mean-maximal-power curve, fit a critical-power model, and apply a fatigue decay for endurance durations.
1. Per-activity power streams
Each FIT file in your Strava archive contains a 1 Hz stream of power-meter readings. Power Predict reads these in your browser and builds a per-activity mean maximal power array — the best average watts you held across every duration window from 1 second up to several hours, using a sliding-window scan over prefix sums.
Activities without a power stream (older rides, phone-only recordings) are skipped. Only the derived MMP arrays are persisted; raw streams stay in browser memory just long enough to compute, then get discarded.
2. Rolling-best aggregation
We take the maximum across activities at each duration to build an aggregate MMP curve, computed in three windows:
- Last 30 days — sensitive to current form, but noisy if you haven't done many quality efforts recently.
- Last 90 days — the practical race-prediction window. Stable enough to fit a model, recent enough to reflect current fitness.
- All time — ceiling reference. Useful context, not used for prediction.
Power Predict fits the model on Last 90 days by default and falls back to All time if 90 days has too few points in the fitting window.
3. The Critical Power model
For durations from roughly 3 minutes to 20 minutes, sustainable power is well-described by the 2-parameter Critical Power model:
P(t) = CP + W′ / t
where
- CP (watts) is the asymptote — the power you could theoretically hold indefinitely if no other systems failed first.
- W′ (joules) is the finite work you can do above CP before exhausting that anaerobic reserve.
With x = 1 / t, the formula becomes a line, and we fit it by ordinary least squares. W′ falls out as the slope, CP as the intercept. Power Predict reports the fit's RMSE alongside CP and W′ so you can see how well your data matches the model.
Why 3-20 minutes
Below about 3 minutes, anaerobic / neuromuscular contributions distort the simple two-parameter relationship. Above 20 minutes, fatigue and substrate-depletion effects pull power below the model's prediction. Fits done outside this window are unreliable.
4. Fatigue decay for endurance durations
If you ask the raw CP model what you can hold for 8 hours, it will answer "approximately CP" — the asymptote. That's wrong: real cyclists fade well below CP over those durations as glycogen runs low.
For predictions beyond the 20-minute window we apply a Riegel-style power-law decay:
P(t) = Panchor × (tanchor / t)k
The anchor is whichever is later: your longest observed MMP point, or the 20-minute model prediction. Anchoring at real data when available means a 12-hour forecast is grounded in your actual 4-hour or 6-hour ride, not extrapolated all the way from the CP fit.
The fatigue exponent k = 0.10. Skiba publishes 0.07, which fits the 1–4 hour range; observed pro and amateur ultra-endurance data falls off faster than that, more like 0.10 in the 8–24 hour range. Defaulting higher avoids the trap of ultra predictions reading too close to CP.
| Duration | Typical fraction of CP | Power Predict default |
|---|---|---|
| 1 hour | ≈ 95% | ≈ 89% |
| 4 hours | ≈ 85% | ≈ 80% |
| 8 hours | ≈ 75% | ≈ 75% |
| 12 hours | ≈ 68% | ≈ 72% |
Without observed long-duration MMP, the 1-hour and 4-hour numbers run a touch low — that's a known trade-off of the steeper k. Once your archive contains long rides, the anchor moves to those real points and the prediction tightens up.
The "extrapolated" badge in the predict UI marks any duration outside your observed MMP range. The confidence band widens logarithmically with how far out you've reached.
References
- Riegel, P.S. Athletic Records and Human Endurance. American Scientist, 1981. The original power-law fatigue formula, derived from running.
- Skiba, P. Scientific Training for Endurance Athletes. Source for the k = 0.07 fatigue exponent for cycling.
- Coggan, A. and Allen, H. Training and Racing with a Power Meter. Empirical power-profile fractions of CP across durations.
- Monod, H. and Scherrer, J. The work capacity of a synergic muscular group. Ergonomics, 1965. Origin of the critical-power concept.
- Hill, A.V. The physiological basis of athletic records. 1925. Earliest hyperbolic power-duration model.
Limitations and planned improvements
Today's predictions assume your last 90 days of data accurately reflect your current fitness. Issues planned for upcoming releases:
- Recency weighting — weight recent efforts more heavily within the window so a peak ride from week 1 doesn't outweigh week 12.
- Effort-quality flagging — only count an MMP as a "true" point if the activity's overall intensity suggests you were going hard; treat tempo-pace bests as soft data points.
- Fitness drift normalization — rescale older efforts by the ratio of estimated FTP then vs. now, so a year-old peak doesn't dominate.
- Manual fitness override — a way to tell Power Predict "ignore my zone-2 base block, I'm actually fitter than that suggests" via a CP override or a custom date range.
Track these on the project milestones.