OverviewSelect a phase below to see typical time-in-zone targets for each discipline.
CYCLING · HEART RATE
Z2
<145 bpm—
Z3
145–162—
Z4
163–179—
Z5
>179 bpm—
CYCLING · POWER (FTP ~235W)
Z2
<176W—
SS
207–221W—
THR
223–247W—
VO2
>248W—
RUNNING · PACE & HR
EZ
6:00–6:30 · <155—
TMP
5:20–5:45—
THR
~5:00 · 170+—
← swipe or tap dots →
GOAL
FTP TARGET · AUTUMN 2026
235→255WATTS
+20W over the 13-week plan, then retest and repeat
PHASES
BUILDWks 1–4
DEVELOPWks 5–8
PEAKWks 9–12
RECOVERWk 13
About your commute: Your commute is ~40–45 min each way and naturally drifts to tempo — that is already a big aerobic load twice a day. The research is clear: ride it deliberately easier than feels natural. Treat the morning leg as recovery only (keep HR under ~150bpm, breathing easy), and only ever add quality on the homeward leg, max 2 days/week. This keeps you fresh for the weekend session, which carries the real intensity. The cardinal error is letting every commute drift into the grey zone.
Your weekend ride — pick ONE each week: Because the commute already gives you endurance volume, the weekend is your one quality slot. Choose either format depending on the week:
🚴 1-hour INDOOR — a focused interval session (sweet spot, threshold, or VO2). Your main FTP driver. Pick this when the commute was light/disrupted or weather is poor.
🚴 2-hour OUTDOOR — mostly easy Zone 2 endurance (132–176W). Your durability builder. Pick this when commutes were hard/frequent or you feel flat.
Rule of thumb: alternate them, leaning ~2:1 toward indoor intensity — but never skip the long ride for more than 2–3 weeks, or durability and FTP stall. The sessions below are sensible defaults; swap freely.
Build Phase: Re-establish aerobic base. Commutes Z2. Sweet spot enters week 3. Run easy. KB Circuit A weeks 1–2, Circuit B weeks 3–4.
🏋 KB Circuit A — Foundation
Weeks 1–2 · 2 rounds · 40s on / 20s rest
›
MONDAYREST⌄
Full rest. Light stretching only.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2 <145bpm. High cadence 90+ rpm.
AMMorning Brixton → Epsom: Z2 <145bpm all the way.
PMAfternoon Epsom → Brixton: Z2 only <145bpm. Recovery week.
🏋 KETTLEBELL EVENING
Circuit — optional light
Recovery week: skip or go very light
›
FRIDAYREST⌄
Rest before weekend ride. Light mobility.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
Easy Z2 — 90 min
RIDE90 min all Z2: <176W, HR <155bpm. No intervals.
SUNDAYRUN⌄
🏃 RUN
Easy 5km
RUNEasy 5km, fully relaxed.
Develop Phase: 2×20 sweet spot is the weekend anchor. Thu return pushes Z4. Run adds 1km tempo. KB Circuit C all 4 weeks.
🏋 KB Circuit C — Power
Weeks 5–8 · 3 rounds · 45s on / 15s rest
›
MONDAYREST⌄
Full rest.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: Z2 <145bpm.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
WEDNESDAYCOMMUTE⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z2.
THURSDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Easy In / Z4 Out
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: 20+ min sustained at 163–170bpm (Z4) on Surrey stretch.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
FRIDAYREST⌄
Rest before weekend.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
2×20 Sweet Spot
WU15 min warm up + 15 min Z2.
SS120 min at 207–221W.
REC10 min easy.
SS220 min at 207–221W.
CDZ2 + cool down.
SUNDAYRUN⌄
🏃 RUN
Easy 8km
RUN8km easy at 6:00–6:30/km
Week 6 mirrors Week 5 with a small step up in sweet-spot duration. Same daily structure.
MONDAYREST⌄
Full rest.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: Z2 <145bpm.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
WEDNESDAYCOMMUTE⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z2.
THURSDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Easy In / Z4 Out
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: 20+ min sustained at 163–170bpm (Z4) on Surrey stretch.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
FRIDAYREST⌄
Rest before weekend.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
2×20 Sweet Spot
WU15 min warm up + 15 min Z2.
SS120 min at 207–221W.
REC10 min easy.
SS220 min at 207–221W.
CDZ2 + cool down.
SUNDAYRUN⌄
🏃 RUN
Easy 8km
RUN8km easy at 6:00–6:30/km
MONDAYREST⌄
Full rest.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: Z2 <145bpm.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
WEDNESDAYCOMMUTE⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z2.
THURSDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Easy In / Z4 Out
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: Z4 sustained blocks where traffic allows.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
FRIDAYREST⌄
Rest before weekend.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
SS + Threshold Mix
WU15 min warm up.
SS20 min sweet spot 207–221W.
THR12 min threshold 223–240W.
SS12 min sweet spot.
CDCool down.
SUNDAYRUN⌄
🏃 RUN
Tempo 8km
EASY3km easy.
THR1km at 5:00–5:10/km.
EASY3km easy + cool.
Week 8 repeats Week 7 then eases slightly into the Peak phase. Same daily structure.
MONDAYREST⌄
Full rest.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: Z2 <145bpm.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
WEDNESDAYCOMMUTE⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z2.
THURSDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Easy In / Z4 Out
AMMorning Brixton → Epsom: Z2 <145bpm.
PMAfternoon Epsom → Brixton: Z4 sustained blocks where traffic allows.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
FRIDAYREST⌄
Rest before weekend.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
SS + Threshold Mix
WU15 min warm up.
SS20 min sweet spot 207–221W.
THR12 min threshold 223–240W.
SS12 min sweet spot.
CDCool down.
SUNDAYRUN⌄
🏃 RUN
Tempo 8km
EASY3km easy.
THR1km at 5:00–5:10/km.
EASY3km easy + cool.
Peak Phase: The sharpening block. Add VO2 max work (the fastest way to pull FTP up from above) alongside threshold. On indoor weekends, rotate threshold and VO2; the 30/15s session below is the research-backed standout. Run up to 10km. FTP retest week 12.
🏋 KB Circuit C — Power (heavier)
Weeks 9–12 · increase load · 3 rounds
›
⚡ VO2 session (indoor, ~60 min) — Rønnestad 30/15s: Warm up 15 min. Then 3 sets of 13×(30 sec hard / 15 sec easy), 3 min easy between sets. Hard reps at 258–270W (~110–115% FTP), easy at ~120W. This accumulates more time at high VO2 than long intervals — use it on 1–2 indoor weekends in this phase. Cool down 8 min.
MONDAYREST⌄
Full rest.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z2.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
WEDNESDAYCOMMUTE⌄
🚴 COMMUTE · HR BASED
Z2 In / Z4 Out
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z4 push on clear stretches.
THURSDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Easy In / Z4 Out
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: 30 min Z4 163–170bpm.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
FRIDAYREST⌄
Rest before weekend.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
Ride A — 2×20 Sweet Spot
WU15 min warm up.
SS120 min at 213–225W.
REC10 min easy.
SS220 min at 213–225W.
CDCool down.
SUNDAYRUN⌄
🏃 RUN
8–10km + Threshold
EASY2km easy.
THR2×1km at 5:00/km.
EASYEasy around them.
MONDAYREST⌄
Full rest.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z2.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
WEDNESDAYCOMMUTE⌄
🚴 COMMUTE · HR BASED
Z2 In / Z4 Out
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z4 push on clear stretches.
THURSDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Easy In / Z4 Out
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: 30 min Z4 163–170bpm.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
FRIDAYREST⌄
Rest before weekend.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
Ride B — 2×10 Threshold
WU15 min warm up.
THR110 min at 223–247W.
REC8 min easy.
THR210 min at 223–247W.
SS15 min sweet spot.
CDCool down.
SUNDAYRUN⌄
🏃 RUN
8–10km steady
RUNSteady 8–10km, optional tempo km.
Week 11 repeats the Week 9 sweet-spot pattern at the top of your range.
MONDAYREST⌄
Full rest.
TUESDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Z2 Both Ways
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z2.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
WEDNESDAYCOMMUTE⌄
🚴 COMMUTE · HR BASED
Z2 In / Z4 Out
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: Z4 push on clear stretches.
THURSDAYCOMMUTE + KB⌄
🚴 COMMUTE · HR BASED
Easy In / Z4 Out
AMMorning Brixton → Epsom: Z2.
PMAfternoon Epsom → Brixton: 30 min Z4 163–170bpm.
🏋 KETTLEBELL EVENING
Circuit C — Power
KB Swing · Clean & Press · Squat Pulse · Get-Up
›
FRIDAYREST⌄
Rest before weekend.
SATURDAYRIDE · POWER⌄
🚴 WEEKEND RIDE · POWER METER
Ride A — 2×20 Sweet Spot
WU15 min warm up.
SS120 min at 213–225W.
REC10 min easy.
SS220 min at 213–225W.
CDCool down.
SUNDAYRUN⌄
🏃 RUN
8–10km + Threshold
EASY2km easy.
THR2×1km at 5:00/km.
EASYEasy around them.
Week 12 — FTP retest. Replace Saturday's ride with the test below.
SATURDAYFTP TEST⌄
🚴 WEEKEND RIDE · POWER METER
20 min FTP Test
WU20 min progressive warm up.
TEST20 min ALL OUT solo effort.
CALCFTP = average power × 0.95.
CD10 min easy cool down.
Week 13 — Full Recovery. Z2 max on rides. One easy 5km. No KB. Adaptation happens here.
MONDAYREST⌄
Full rest.
TUESDAYEASY RIDE⌄
🚴 COMMUTE · HR BASED
Z2 by Feel
AMMorning Brixton → Epsom: Z2 max, ride by feel.
PMAfternoon Epsom → Brixton: Z2 max.
WEDNESDAYREST⌄
Full rest. Walk if you like.
THURSDAYEASY RIDE⌄
🚴 COMMUTE · HR BASED
Z2 by Feel
AMMorning Brixton → Epsom: Z2 max.
PMAfternoon Epsom → Brixton: Z2 max.
FRIDAYREST⌄
Full rest.
SATURDAYREST⌄
No ride. Optional gentle spin only.
SUNDAYRUN⌄
🏃 RUN
Easy 5km
RUNOne easy 5km jog, fully relaxed.
After recovery, retest FTP then begin a new block from Develop with updated zones.