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
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.
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.
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.
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.
Quick answers
Which FTP number is the real one?
Why is my Intervals.icu eFTP higher than my TrainingPeaks FTP?
Why does Garmin show a different FTP than Strava or my trainer app?
Should I set the same FTP in every app?
Does a different FTP in each app mean one is broken?
Sources cited in this guide
- 01
- 02Poole et al. 2016. Critical Power: An Important Fatigue Threshold in Exercise Physiology. Medicine & Science in Sports & Exercise.
- 03McGrath et al. 2021. Do Critical and Functional Threshold Powers Equate in Highly-Trained Athletes?. International Journal of Exercise Science.
- 04
- 05
- 06
- 07
See the direct comparisons
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
- 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.
- 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.
- 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.
- 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.
- 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.