FTP test post mortem

So, in preparation for a 200km gravel event, I’ve been mainly getting in as many easy miles as I can, and just started doing some VO2 max work in the last few weeks. Both the long rides and the VO2 sessions had been going really well in the last month after an illness over Xmas. At the end of last week, fatigue started to creep up (form -28 in Training Peaks), so I deloaded this week, and I did a test today.

I was aiming for 45 minutes plus at my AI detected FTP. I started 10 watts below it with a plan to ease myself into the test but I really started to struggle from ~ 25 minutes and couldn’t increase the power as planned. My legs gave at just under 40 minutes with a NP 9 watts under AI FTP.

The lungs felt like they still had a bit left tbh, and I wonder if disappointment at how hard the effort felt made me give up a little early, but it’s not like there would have been more than a tiny bit left in the tank.

I’m not going to lie, I’m disappointed. I’m ~ 10% down on last summer.

Now, what I’m trying to work out is whether or not I should maybe have expected this.

While I have been putting in decent miles, have felt good on the bike and during sessions, I’ve done very little muscular endurance work for 3-4 months, and also had a nasty chest infection over Xmas which put a ~3 week hole in training. Last summer was also a bit of a chaingang fest :blush:

I’d also note that last summer’s numbers were set outdoors.

The only other thing to note is that the HR response during the test was a bit odd. HR jumped up pretty quickly to start with – which struck me as normal given the extra freshness and the nerves – but it then seemed a touch suppressed as the test really started to bite, and maxed out 7-8 beats under max (measured in December, so not that out of date). That made me wonder if I’m still a bit fatigued as well.

So I am tentatively putting this down to still being a bit fatigued and not that well adapted to these particular kind of efforts. Does that seem a reasonable conclusion, or should I actually be thinking that in some ways I have gone slightly backwards, and even when targeting 8hr events, I need more intensity in my plans?

Thanks for any insight.

1 Like

I had a big slice of humble pie starting this season close to 11% below last season’s peak. It is what it is. Plugged in the new, low FTP, started training and let adaptive training manage it while I kept focused on consistency. After four weeks I had 5% back. Another four weeks have elapsed and I have a 20 min test on Tuesday. I expect further improvement. Fitness ebbs and flows, one of the reasons this sport is so great.

For me personally, Ramp Tests and AI FTP estimate high. I don’t think this is super evident when doing lots of endurance rides or short VO2 work, but when it’s time to do Threshold or longer VO2, it becomes obvious quickly. This is why I’ve grown to really like the longer tests, like the Kolie Moore one. You can’t really hide when you have to do 45+ minutes around FTP and you walk away feeling confident you know your true number.


I would put it down to comparing 1) summer vs. winter fitness and 2) indoors vs. outdoors.

In any case, you clearly need to dial back your estimate of FTP by ~10%.


Don’t bother doing an FTP test post mortem. It’ll be zero. You just won’t be able to move your legs. It won’t get better either.

Sorry. :laughing:


Maybe it would not have changed anything
, but getting in an opener work out the day prior to ykur test is a good practice and just making sure you are properly fueled.
None the less, it’s just a test and a new reference point to work from. Do the get too hung up on it.


I personally wouldn’t get too worked up about the test. AI FTP is a rough guestimate that should get you close enough to a number to base your training on. All you should really be worried about at this point is whether your workouts are appropriately hard. Feedback from workouts and ongoing adjustments via progression levels should ensure that the workouts are appropriate. It doesn’t really matter if your “official” ftp number is off by a bit in training as long as progression levels are right-sizing the workout.

All that said, if your target events are long gravel races, I wouldn’t get too far removed from longer sweet spot and threshold intervals. And if you are using your FTP number directly for pacing long intervals or during races, that’s where it becomes more important to get right. For me, the best way to dial in an accurate FTP number is doing some over/under work. Short of a lab environment with blood testing, I find an over/under test to be better than 20m, ramp test, 45+ minute test, AI FTP, etc. I can get dialed within 5 watts playing with over/under intervals, you get to a point where you can just feel the cross-over threshold. O/U don’t require the same motivation as most of the other tests and is much more accurate than AI FTP for me. I’m not knocking AI FTP, it’s more than good enough to base adaptive training on. I just don’t find it accurate enough for when you need to determine actual physiological threshold for pacing.


This is a good point and a good idea. Thanks.

How do you structure that?

Maybe too easy. I don’t think there’s a good reason to drop an SST session a week, for an event like yours.

Sometimes, depending on what you did from Sep-Jan, you can overcome these “excuses”.

Only 10% down from the summer peak and you haven’t done a build yet sounds perfectly normal.

1 Like

Times a million this post


anoying as all hell, but i would just accept the number and focus on training

I start with my best guess of current FTP and roll with overs ~105% and unders ~95%, alternating a couple minutes at each for about 10 minutes per set. 3-5 minute reset between sets. Adjust up or down (and tighten up the range) as you go through each set. It takes me 3-4 sets to get dialed into it (first set is mainly warm up). I also just think O/U’s are great workouts in general for many cycling disciplines.

Are you following a training plan or just doing as much easy miles as you can? How much time are you putting in per week? How far out are you from your race? I am curious of your thought process/approach here.

@RecoveryRide it sorta sounds like you have a good handle on exactly what “FTP” means, for the sake of TR, and also what it should feel like, and how to dial it in, and that puts you leaps and bounds ahead of lots of junior users!! So give yourself a big pat on the back for that! :slight_smile: You’re already off to a rippin’ start!

You’ve said you’ve been doing mostly easy riding. I’m not gonna get into the whole “Z2 Yes / No” bidness here, but pretty darn for sure, if you’re doing zero Thresh to VO2 work, that FTP number is gonna drop. I’d recommend mashing in one Thresh and one VO2 per week, if your recovery system can handle it, if not, do Thresh wk 1, VO2 wk 2, for 4 - 6 wks, and see how ya feel.

I’ve absolutely fallen in love w Smith -2 to dial in my FTP. I run it whenever I feel like something is off.

And as others have hinted at, the one thing I would add to your already good understanding of FTP: It is very dynamic, and shifts literally every day. What did you eat, how well did you sleep, how hard were your rides the past 2 - 14 days, did you do any other activity [weight work, hiking, etc].

We like to push and push for these 2 - 5% gains, but the reality is daily, we are up and down a lot more. I know for a fact I can be down 10 to even 20%, if I have a really terrible day; felt ill, etc.

So I try to not get bummed out, and keep fresh in my mind that I want 2024 to be the blue line, vs 2023’s red line… but those dips are still gonna be part of the process! :slight_smile:

So don’t be afraid to manually adjust it down 2 - 10%, if you feel like it’s taken a dip, especially if you’re doing any Thresh or VO2 work. Because making that small adjustment will keep you on track, and smashing your WOs, and you will get more powerful and gain it back in a few days - week or two, instead of leaving it too high, your Thresh & VO2s are all out of whack and way too hard, and you fry yourself!!! :slight_smile: