FTP without a test

Why cycling apps show you different FTP numbers

Connect the same rider to five apps and you can see five different FTPs: Strava says 250, Intervals.icu 262, TrainingPeaks 244, Xert 256, Garmin 238. Nothing is broken. Each app runs a different model on a different slice of your data, feeds it from a different power source, and reports the result with false confidence. Here is exactly what each one computes, why the numbers diverge by 5-10%, and which estimate to trust for which decision.

By Jim Camut · Former pro & ex-Bruyneel Academy racer

Updated Jul 17, 20264 chapters7 citations

01 / 04

The short answer: each app runs a different model on a different slice of your data

Five apps can report FTPs 10-25 watts apart on the same rider and none is malfunctioning. The spread comes from three independent choices each app makes: which model it fits, which window of your history it reads, and which power file it trusts. A 5-10% gap between the highest and lowest estimate is normal, not a bug.

The apparent contradiction dissolves once you see that FTP is an estimate, not a measurement. All five apps are trying to pin the same physiological boundary — the wattage between the heavy and severe intensity domains, near the power you could hold for roughly an hour [Allen et al. 2019]. But that boundary is never observed directly; it is inferred. Two estimators handed the same rides will disagree the same way two analysts handed the same spreadsheet disagree — the raw data is identical, the assumptions are not.

The size of the disagreement is predictable. For a rider whose true one-hour power is around 250 watts, the modeled estimates typically land within a 20-25 watt band — a Critical Power fit near the top, a conservative 20-minute-peak method near the bottom, and a heart-rate estimate as the wild card. That is 8-10% between the extremes, wide enough to move a sweet-spot target from a productive 218 watts to a soul-crushing 235.

02 / 04

What each app actually computes

Strava reads your best-efforts power curve and applies the 20-minute-minus-5% convention [Strava docs]. TrainingPeaks Auto-FTP takes 95% of a new best 20-minute effort [Allen et al. 2019]. Intervals.icu fits a Critical Power model to your 90-day curve and calls it eFTP [Intervals.icu docs]. Xert builds a three-parameter Fitness Signature from breakthrough rides [Xert docs]. Garmin estimates from heart rate and HRV [Garmin docs].

Strava and TrainingPeaks share DNA. Strava builds a best-efforts power curve — your top average power from one second to the full ride length — and derives an estimate anchored to the 20-minute-times-0.95 convention it documents [Strava docs], smoothed across your recent bests. TrainingPeaks Auto-FTP is more literal: it watches for a 20-minute effort that beats your previous best and proposes 95% of it as the new FTP [Allen et al. 2019]. Both are conservative by design, and both go stale the moment you stop producing fresh 20-minute peaks — a rider deep in base can hold a months-old number that no longer reflects fitness.

Intervals.icu takes the modeling route. It fits a Critical Power model to your mean-maximal-power curve and reports the result as eFTP, using your efforts over a rolling 90-day window; a single long-enough maximal effort on one ride can set a new eFTP by itself [Intervals.icu docs]. Because a CP fit uses the whole curve rather than one 20-minute point, it tends to read a few watts higher and update more often than the peak-detection methods.

Xert models you as a three-parameter Fitness Signature — Threshold Power, High Intensity Energy, and Peak Power — extracted from your hardest efforts and revised whenever you score a breakthrough ride the current signature cannot explain [Xert docs]. The strength is granularity; the weakness is that the signature needs breakthroughs to stay current, so a rider grinding easy zone-2 weeks watches the Threshold Power figure quietly decay.

Garmin comes at it from the opposite side. Its Firstbeat-derived estimate needs a heart-rate strap and a connected power meter, plus a stable VO2max estimate, and infers threshold from the relationship between heart rate, HRV and power rather than from the power curve alone [Garmin docs]. Ramp-based apps are different again: TrainerRoad's ramp test sets FTP at 75% of your peak one-minute power [Allen et al. 2019], a ratio that genuinely varies from 72% to 77% across riders. Five methods, five arithmetic paths to the same target.

03 / 04

Why the numbers disagree — three structural reasons

The estimates disagree for three structural reasons. Different models: a Critical Power curve fit sits a few percent above a 20-minute-peak method [McGrath et al. 2021]. Different input windows: a single recent best versus a 90-day rolling curve versus live breakthroughs. Different power sources: the same legs logged through two meters can differ 5-10%.

The model choice sets the systematic bias. Critical Power is the asymptote of your power-duration curve, and in trained cyclists it runs measurably above 60-minute power — MacInnis and colleagues showed CP and FTP are not interchangeable, with CP the higher of the two [McGrath et al. 2021]. So a CP-based eFTP will structurally read above a TrainingPeaks Auto-FTP built from 95% of a 20-minute effort, even on identical data. Neither is wrong; they are reporting two different points on the same curve [Poole et al. 2016].

The input window sets the lag. TrainingPeaks and Strava wait for a fresh peak effort, so their numbers can sit unchanged for two or three months if your training does not produce one. Intervals.icu's 90-day rolling curve updates as older efforts age out. Xert moves only on breakthroughs, and Garmin needs a spread of heart-rate data across intensities before it will commit. On any given Tuesday the five apps are describing five different time slices of you — last spring's peak, the last 90 days, or last week's intervals.

The power source sets the noise floor. Feed one app your outdoor crank meter and another your indoor smart trainer and the same effort can differ 5-10% before any model runs, because the two devices are calibrated differently and read different parts of the drivetrain. All five apps are, in the end, attempts at the same problem our ftp-without-a-test pillar lays out — estimating threshold from data you already have, without burning a Saturday on a forced 60-minute effort. They diverge not because the physiology is unsettled but because there are many defensible ways to infer one number from a messy power file.

04 / 04

Which number to trust — and where AdaptCycling lands

Trust a Critical Power estimate — Intervals.icu eFTP or AdaptCycling — for day-to-day training zones, because it uses the most data per estimate and lags least [Poole et al. 2016]. Treat TrainingPeaks Auto-FTP and Strava as conservative confirmations that update only when you go genuinely faster. Discount Garmin's heart-rate estimate for prescribing intervals.

Match the number to the decision. For setting the zones you ride to every day, the CP-curve estimate is the best default — it is anchored by dozens of efforts rather than one, so a single flat day cannot drag it and a single hero effort cannot inflate it. For a deliberately cautious number that only moves when you set a real personal best, TrainingPeaks Auto-FTP is honest and useful. Garmin's estimate is fine as a trend line but too noisy to set a 4x8-minute threshold session against.

When two estimates disagree by more than about 5%, one of them is wrong, and a clean 20-minute or 8-minute field effort is the tiebreaker [Allen et al. 2019]. If your eFTP reads 262 and your Auto-FTP reads 244, the honest move is to test once and see which the curve was closer to — usually the CP fit, if you have a recent long effort feeding it, but not always.

AdaptCycling's estimate is closest to Intervals.icu's eFTP by design: we fit a Critical Power model to the mean-maximal-power curve we read from your Strava history, no forced test, updated as new rides land, accurate to within roughly 3-5% for a rider with 90 days of varied data [Poole et al. 2016]. The difference is what we do with it. Intervals.icu shows you the number; we feed it straight into an adaptive plan, so when the estimate moves, your prescribed watts move with it rather than waiting for you to notice and retype a value into a settings box.

Common questions

Quick answers

Which FTP number is the real one?

None of them — they are all estimates of a boundary no app measures directly. As a default, trust the Critical Power / power-curve estimate (Intervals.icu eFTP or AdaptCycling), because it is built from dozens of efforts rather than one 20-minute point. When two apps disagree by more than 5%, do a single clean 20-minute effort and let the field test break the tie [Allen et al. 2019].

Why is my Intervals.icu eFTP higher than my TrainingPeaks FTP?

Because they compute different points on the same curve. eFTP is derived from a Critical Power fit, and CP sits a few watts above 60-minute power in trained riders [McGrath et al. 2021]. TrainingPeaks Auto-FTP takes 95% of your best 20-minute effort, a deliberately conservative haircut [Allen et al. 2019]. A 10-15 watt gap between the two is expected, not an error.

Why does Garmin show a different FTP than Strava or my trainer app?

Garmin's estimate comes from heart rate and HRV rather than the power curve, and it needs a heart-rate strap, a connected power meter, and a stable VO2max before it will commit [Garmin docs]. That makes it slower to update and noisier than a power-only estimate, so it commonly reads 10-20 watts off the power-curve apps. Use it as a trend, not a training target.

Should I set the same FTP in every app?

Practically, yes — pick one authoritative estimate and enter it manually everywhere else so your zones, TSS, and training load stay comparable across apps. If you let each app run its own auto-detection, one good week can show up as three different fitness stories. One number, entered everywhere, keeps the accounting honest.

Does a different FTP in each app mean one is broken?

No. A 5-10% spread across apps is the normal consequence of different models, input windows, and power sources — not a malfunction. Worry only when a single app's number jumps more than about 5% overnight with no breakthrough ride behind it, which usually points at a power-meter calibration or data-dropout problem rather than real fitness change.
References

Sources cited in this guide

  1. 01
  2. 02
    Poole et al. 2016. Critical Power: An Important Fatigue Threshold in Exercise Physiology. Medicine & Science in Sports & Exercise.
  3. 03
    McGrath et al. 2021. Do Critical and Functional Threshold Powers Equate in Highly-Trained Athletes?. International Journal of Exercise Science.
  4. 04
    Strava docs. Power — Strava Help Center. Strava Help Center.
  5. 05
    Intervals.icu docs. Power model now complete — eFTP and W'. Intervals.icu.
  6. 06
    Xert docs. Fitness Signature — Xert Breakthrough Training. Xert / Baron Biosystems.
  7. 07
Compare head-to-head

See the direct comparisons

In this series

More inside FTP without a test

Start here · Foundational guide

FTP without a test: estimating threshold from real rides

How to find FTP without a 20-minute or ramp test — using your power curve, critical-power modeling, and the rides you've already done.

Read the full guide

Other articles in this series

  1. 01

    Indoor vs outdoor FTP: why the numbers differ

    Why your indoor FTP reads lower than outdoor — heat, cooling, motivation, and power-source differences — and whether to keep two numbers.

  2. 02

    How to estimate FTP without a power meter

    Estimating FTP from heart rate, RPE, and Strava when you don't own a power meter — how close you can get and where the method breaks down.

  3. 03

    20-minute vs 8-minute FTP test: which to use

    How the 20-minute and 8-minute FTP tests differ, the multipliers each uses, and which one fits your riding — plus why both are only protocols.

  4. 04

    Is your ramp test FTP too high? Why it happens

    Ramp tests overestimate FTP for anaerobically-gifted riders and underestimate it for diesels. Why the 75% rule misfires and how to correct it.

  5. 05

    How often should you test your FTP?

    How often to re-test FTP as a self-coached cyclist — twice a year, not every six weeks — and why modeled estimates change the cadence.

Free training analysis · No card · ~3 minutes

Try the adaptive coach yourself.

Connect Strava and the coach reads your last eight weeks — intensity balance, ramp rate, what's working, what's holding you back — then drafts your training plan around it.

Free 14-day trial, no card.