Athlete summary
When Koyaro plans a ride, the IF on the card is the intensity of the whole session (warm-up, work, recoveries, cool-down), the same way TrainingPeaks reports IF on a completed file. Interval targets (for example sweet spot at 88% FTP) are the work prescription — they are not the session IF.
Training Stress Score still uses Allen & Coggan:
TSS = hours × IF² × 100
IF = NP / FTP (NP of the entire planned power series)Why template IF was wrong
Role templates used to store a single if_factor (threshold 0.95, VO2 1.05, sweet spot 0.91) and multiply it by the full duration. That treats every minute as if it were at the work target, so a 60-minute threshold day looked like ~90 TSS / IF 0.95 when an honest whole-ride NP is closer to IF ~0.75–0.80 and ~55–65 TSS.
Sweet spot also disagreed with itself: the card said 91% while the intervals said 88%. The authoring hint and the work target are now both 0.88 (Coggan Z3.5 / Friel sweet-spot band ~88–93%; one number for both).
Duration first, load follows
- Pick ride length from capacity (recent long Z2 × phase factor; mid Z2; quality ~55–70 min scaled by weekly hours).
- Expand the default recipe and compute IF/TSS from that series.
- Close the week TSS budget by lengthening endurance, not by inventing a fake VO2 IF or shrinking Z2 below its capacity floor. Easy days carry volume (Seiler polarized practice).
Scheduled TSS must match structure-derived TSS within 2% relative tolerance (STRUCTURE_TSS_TOLERANCE in session_allocation).
Citations
- Allen H, Coggan AR — Training and Racing with a Power Meter: TSS and IF are properties of the file (whole-ride NP), not the interval target.
- Sweet-spot intensity ~88–93% FTP (Coggan “Z3.5” / Friel) — Koyaro uses 0.88 for both the template hint and sweet-spot work steps.