
The trainer holds the watts. You hold on.
Pick one of 42 structured sessions and CrankPilot drives your smart trainer through it in ERG mode, target by target. There is no world to ride through and nobody to race. Just the interval, and whether you can stay on it.
42 workouts, from recovery to VO2max
Endurance, sweet spot, threshold and sprint work, three FTP tests, or a .zwo file you brought from somewhere else. Every target is a percentage of your FTP, so the same session scales as you get fitter. It never asks how you're feeling.
Interval profile · work laid down over time and watts
View as tableHide table
| Block | Minutes | Target | Starts at |
|---|---|---|---|
| Warm-up ramp | 5 | 100 to 220 W | 0 min |
| Work 1 of 5 | 6 | 220 W | 5 min |
| Recovery 1 | 3 | 125 W | 11 min |
| Work 2 of 5 | 8 | 220 W | 14 min |
| Recovery 2 | 3 | 125 W | 22 min |
| Work 3 of 5 | 10 | 220 W | 25 min |
| Recovery 3 | 3 | 125 W | 35 min |
| Work 4 of 5 | 8 | 220 W | 38 min |
| Recovery 4 | 3 | 125 W | 46 min |
| Work 5 of 5 | 6 | 220 W | 49 min |
| Cool-down | 5 | 100 W | 55 min |

ERG mode: the trainer holds the watts
Each block has a power target and the trainer changes its own resistance to sit on it, whatever your cadence does. Down 5% if today is not the day, without breaking the interval.
Target, mid-interval
- Power
- 161 W
- Cadence
- 85 rpm
- Heart rate
- 136 bpm
Read off the trainer and your heart-rate strap. Nothing is estimated from wheel speed.

The numbers are done before you unclip
Normalized power 178, intensity factor 0.71, and where the hour actually went by zone. Your power curve runs from one second to two hours, and training load stacks up week over week. It is all computed on the phone the second you stop, so there is nothing to upload and no sync to sit through.
- Normalized power
- 178 W
- Intensity factor
- 0.71
- TSS
- 1
- Calories
- 10 kcal
Zone split · one cell is one percent of the hour
View as tableHide table
| Zone | Share | Minutes | Seconds |
|---|---|---|---|
| Z1 recovery | 12% | 7.2 | 432 |
| Z2 endurance | 54% | 32.4 | 1944 |
| Z3 tempo | 32% | 19.2 | 1152 |
| Z4 threshold | 1% | 0.6 | 36 |
| Rounding | 1% | — | — |
Power curve · one second to two hours
View as tableHide table
| Duration | Share of peak |
|---|---|
| 1 second | 100% |
| 2 seconds | 96% |
| 5 seconds | 86% |
| 10 seconds | 74% |
| 30 seconds | 52% |
| 1 minute | 41% |
| 2 minutes | 35% |
| 5 minutes | 29% |
| 10 minutes | 26% |
| 20 minutes | 24% |
| 30 minutes | 23% |
| 1 hour | 22% |
| 2 hours | 20% |
Training load · fitness, fatigue, form
- 58 fitness · CTL at week 12
- 54 fatigue · ATL at week 12
View as tableHide table
| Week | Fitness CTL | Fatigue ATL | Form TSB |
|---|---|---|---|
| Week 1 | 32 | 38 | −6 |
| Week 2 | 34 | 30 | +4 |
| Week 3 | 37 | 45 | −8 |
| Week 4 | 40 | 52 | −12 |
| Week 5 | 42 | 41 | +1 |
| Week 6 | 45 | 58 | −13 |
| Week 7 | 44 | 36 | +8 |
| Week 8 | 47 | 55 | −8 |
| Week 9 | 50 | 62 | −12 |
| Week 10 | 52 | 48 | +4 |
| Week 11 | 55 | 66 | −11 |
| Week 12 | 58 | 54 | +4 |
Nobody else is in here
- No virtual worlds
- No group rides
- No racing
- No leaderboard
Ride Zwift if you want company on the bike, because it is genuinely good at that. This is the other kind of indoor riding.
The hardware still comes with you. CrankPilot pairs the Zwift Ride controller like any other sensor: on a free ride the shift buttons run twelve virtual gears built off your FTP, and inside a workout the paddles push the ERG target up or down mid-interval, so your hands never leave the bars. Outside Zwift's own app, very little else reads it at all.
What it costs
$9.99 a month, $69.99 for the year, first month free. Zwift is $19.99 a month and Wahoo SYSTM $17.99, checked July 2026. There is no account to make and no server of ours holding your rides — each one is yours as a .fit file.
| App | Monthly | Yearly |
|---|---|---|
| CrankPilot | $9.99 | $69.99 |
| Zwift | $19.99 | $199.99 |
| Wahoo SYSTM | $17.99 | $179.99 |
$69.99 for the year works out at $5.83 a month.