GPS Is Worst at the Third Dimension
Satellite geometry makes vertical position the weakest measurement a GPS receiver produces: vertical error typically runs 1.5 to 3 times larger than horizontal error. A receiver placing you within 3 meters horizontally may be 5–10 meters off vertically — and unlike horizontal wander, vertical error swings continuously up and down while you stand still.
Two more things stack on top of the raw satellite error:
- Ellipsoid vs. sea level. Satellites measure height above a mathematical ellipsoid, not sea level. The difference (the geoid separation) reaches ±100 meters depending on where you are on Earth. Receivers correct for it, but cheap ones use coarse correction tables — a source of constant offset.
- Barometric altimeters. Better devices blend a pressure sensor with GPS. Baro elevation is smooth and precise moment to moment but drifts with the weather — a passing front can move your "elevation" 30 meters while you sleep.
Why Elevation Gain Is Even Worse
Total climb sounds simple: add up every meter that goes up. But apply that to a noisy signal and the noise itself becomes "climb." If elevation jitters ±2 meters on every point and your device records every second, a dead-flat highway accumulates hundreds of phantom meters per hour: +2, ignore the −2, +2 again, forever.
This is why raw point-to-point summation always overstates gain — commonly by 2–5× on flat-to-rolling terrain. Every serious tool filters the signal before summing, and the filter choice is why apps disagree:
| Approach | How it works | Effect on the number |
|---|---|---|
| Raw summation | Add every positive delta | Wildly inflated |
| Threshold / hysteresis | Only bank climbs bigger than a band (2–10 m) | Close to honest; small rollers may be missed |
| Smoothing first | Average elevation over distance/time, then sum | Honest on sustained climbs, clips sharp ones |
| DEM replacement | Discard GPS elevation; look up terrain-model height per position | Consistent, but only as good as the terrain model |
Our GPX Analyzer uses a 2-meter hysteresis: a climb only counts once it exceeds the noise band, and descents reset the baseline the same way. Expect its gain figure to land near what a barometric Garmin reports — and far below what naive tools claim for the same file.
Reading Your Own Numbers Honestly
Compare like with like
Gain numbers are only comparable within one tool's method. Track your progress in a single tool rather than comparing totals across apps.
Trim stationary ends first
A GPS left recording at camp logs hours of pure noise — vertical jitter included. The GPX Track Editor detects and trims stationary tails automatically.
Check the elevation profile, not just the total
The analyzer's elevation chart shows the shape of the data. Sawtooth fuzz on flat sections is noise; if the fuzz is huge, distrust the gain number regardless of the tool.
Expect baro and GPS files to differ
The same ride recorded by a barometric watch and a phone will disagree on gain by design. The watch is usually closer.
Common Elevation Problems in GPX Files
Elevation reads zero for the whole track
The recording app never had a vertical fix, or stripped elevation on export. Position can be fine while elevation is absent — the fields are independent in the file.
A constant offset from known elevations
Benchmarks say 1,204 m, your file says 1,167 m everywhere: geoid correction or baro calibration error. Harmless for gain calculations — the offset cancels out.
Single-point spikes hundreds of meters tall
Momentary multipath or a bad fix in a canyon. One spike can add its full height to a naive gain total; threshold-based methods largely ignore it. Cut the offending points with the editor if the profile matters.
Non-numeric elevation values
Corrupted exports sometimes write junk into <ele> elements. The GPX Validator flags these, and the analyzer skips them rather than poisoning the stats.