tracé

Why your ride's elevation gain beats your planned route's

Two complaints, one root cause. Komoot, Strava, Garmin and every analyzer report a different elevation gain for the same roads — and when you actually ride a planned route, the total comes back 15–25% higher than the plan promised. Neither is a bug, and there is nothing to reconcile.

Elevation gain is not a measurement. It is the output of an algorithm.

There is no "true" elevation gain waiting to be measured, because the answer depends on how finely you look. A road that climbs 100 m over 2 km also undulates by centimetres over every single metre. Sum finely enough and the total diverges without limit.

So every platform picks — explicitly or by accident — a scale below which wiggles do not count. That scale is the number. Four independent choices set it, and no two platforms make all four the same.

1. The elevation source

SourceWho uses itCharacter
Barometric altimeter Garmin and most head units, during a ride Measures air pressure at the road surface. Sees every roller. Drifts with weather.
Terrain-model (DEM) lookup — SRTM, ASTER, national LIDAR Route planners; Strava's elevation correction A grid, typically 30–90 m spacing. Cannot see anything smaller than one cell.
Raw GPS elevation Devices with no barometer Vertically the weakest of the three; needs heavy correction.

RideWithGPS ranks accuracy barometer > DEM > raw GPS, and derives its planned-route elevation from SRTM at roughly 90 m spacing, interpolating between grid points. Strava uses a barometer's data when the file has one and the device is recognised, and otherwise looks elevation up from GPS position. Komoot documents that it runs its own algorithms over the data to remove the "virtual inclines" noisy GPS produces and to absorb outright GPS jumps. None of the three publishes its smoothing window or its grid.

2. The smoothing window

Everyone smooths before summing, because unsmoothed noise does not average out — it accumulates, and can fabricate thousands of metres of climbing on a flat route. A wide window erases rollers; a narrow one keeps them. Strava states only that it smooths less when the data is barometric. Nobody publishes a figure. tracé uses a centered 100 m distance window.

3. The threshold before a rise counts

Strava adds gain only once climbing has been consistent for roughly 10 m on GPS-only data, or 2 m with barometric data. tracé uses 2 m, on already-smoothed elevation. That difference alone is large: a 10 m threshold discards a great deal of small climbing that a 2 m threshold keeps.

4. How densely the route is sampled

More points means more small ups and downs survive to be summed. Every planner resamples its line against the terrain model at some spacing it does not disclose, and every recorder samples on its own schedule — a Strava export lands around every 13 m, a Komoot planned route around every 40–130 m.

Any one of these four moves the total by double digits. That is the whole explanation for platforms disagreeing — there is no bug to find, in their software or anyone's. Asking which platform is right is asking which scale of wiggle is the real road.

Why the ride always beats the plan — and never the reverse

This is a special case of the above, and it is asymmetric. The plan's elevation comes from a terrain grid sampled along a line: a smooth idealisation of a road, blind to anything below its cell size. The ride's elevation comes from a barometer sitting on the actual road surface, which catches every cattle grid, every dip through a hollow, every 30 m rise over a railway that a 90 m grid never knew existed.

Those undulations are all-positive contributors. Each up is later matched by a down, but gain counts only the ups — so the difference accumulates in one direction across hundreds of small features. Hence the observed 15–25%.

It is real climbing. It is simply spread thinly across the whole route as micro-relief and rollers, not concentrated in the big named climbs.

Can an analyzer just tune its way to the barometer's number?

No, and tracé measured its own pipeline before concluding that. Running the real gain pipeline — 100 m smoothing, then 2 m hysteresis — at full GPX resolution and again at the app's 10,000-point downsample cap, across every reference route:

Between them, those two stages account for at most about 2.5% on a planned route. They cannot explain a 15–25% gap, and loosening either one would re-admit the phantom gain that smoothing exists to keep out. The gap is in the source data, not in the arithmetic, and no tuning of any constant can recover detail a 90 m grid never captured.

The honest response: simulate past it, and label the simulation

If the missing metres cannot be computed, they can be modelled — as long as nobody pretends the result is a measurement. That is what tracé's worst-case mode does. It is off by default; its slider runs from 0 to 30% of extra gain, defaulting to 20%, which sits in the middle of the observed 15–25% band.

The output is an explicit simulation, not a corrected measurement, and it is labelled as one on every view that shows it. It also knowingly departs from the physics in one specific way: it deals the extra gain into the detected climbs, making them steeper without making them longer, rather than spreading it thinly over the whole route where the real missing metres actually live.

That departure is a usability judgement, not a factual claim. Spread uniformly, the extra gain would be truer to its cause and useless in practice: the profile would grow imperceptibly taller, every climb would keep its colour, its category and its FIETS score, and a rider would learn nothing. Concentrated in the climbs, it answers the question a rider actually asks of a plan — will this hurt more than the profile suggests, and where? — by putting the pessimism somewhere it can be felt. It buys interpretive value at the cost of physical fidelity, with disclosure.

What to do with all this

  1. Stop comparing gain across platforms. Compare a route to another route measured the same way, by the same tool.
  2. Expect the ride to beat the plan. If you are pacing a long day off a planned profile, budget for 15–25% more climbing than it shows.
  3. Distrust any tool that claims to have solved this. The number is a choice of scale. A tool that reports one honestly will tell you what scale it chose.

Sources

Accuracy ranking, SRTM 90 m grid, and noise accumulating rather than averaging out: RideWithGPS — Grade, Elevation and GPS Accuracy FAQ. Barometer-versus-GPS handling, less smoothing on barometric data, and the 10 m / 2 m thresholds: Strava — Elevation FAQs. Removal of "virtual inclines" and GPS jumps: komoot — Elevation / Altitude data.

See what your own route's gain looks like at a stated scale — and simulate the pessimistic version.

Open tracé