Why Your GPS Speed Is Wrong: Doppler vs Position-Based Speed

Most inflated "max speed" readings come from position-based speed: the app subtracts consecutive GPS positions and divides by time, so every meter of position error becomes phantom speed. The honest alternative is Doppler speed — velocity measured directly from the frequency shift of the satellite signals — which is what the speedsurfing community requires and what serious tracking apps use.

Two ways to get speed from GPS

  • Position-based: distance between fixes ÷ time between fixes. Simple, and wrong in exactly the way that flatters you: two fixes each off by two meters, one second apart, can add nearly eight knots that never happened.
  • Doppler: the receiver measures how much each satellite's carrier frequency is shifted by your motion — the same physics as a radar gun — and solves for velocity directly. The errors are independent of position error and roughly an order of magnitude smaller.

Where the phantom knots come from

  • Multipath: signals bouncing off water, cliffs or your own body arrive late and skew the fix — endemic on the water.
  • Wrist shadowing: a watch spends half of each stroke or wave underwater or behind your body, losing satellites and jumping when they return.
  • Single-sample maxima: reporting the highest instantaneous reading guarantees you report the largest error of the day, not the fastest moment. This is why speed categories use averages — the 2-second peak exists precisely to filter this.
  • Snapped windows: computing a "500 m run" between the two nearest fixes rather than on the continuous track adds or subtracts real distance — one second of slop is ten meters at twenty knots.

Sample rate: how much does 10 Hz matter?

Dedicated GPS speed loggers record at 5–10 Hz and remain the requirement for official community rankings. But rate matters less than method: a 1 Hz Doppler track, averaged over a 2-second or 10-second window, lands within a fraction of a knot of a 10 Hz logger. A 10 Hz position-differenced track is still garbage. Method first, then rate.

How to get honest numbers

  1. Use an app that reads Doppler velocity rather than differencing positions.
  2. Trust category averages, not instantaneous max. Your real "top speed" is your 2-second peak.
  3. Mind the mounting: an upper-arm band or vest pocket sees more sky than a wrist underwater.
  4. Demand error honesty. A good tool tells you when a number is low-confidence instead of guessing silently.

OpenWater takes exactly this approach: speed comes from the receiver's Doppler measurement, categories are computed on the continuous track, every session is graded for GPS quality, and any figure computed without Doppler data says so. The raw samples are always kept, and the source code for every calculation is public — if you disagree with how a number is computed, you can read exactly what it does.

Frequently asked questions

Why does my app show a max speed I never reached?

Position-differenced speed turns GPS jitter into phantom knots, and single-sample maxima report the biggest error of the day. Doppler speed plus a 2-second average fixes both.

What is Doppler GPS speed?

Velocity measured directly from the frequency shift of satellite signals — like a radar gun — independent of, and far more accurate than, the position solution.

Is a phone or watch accurate enough?

For training and personal records, yes — modern chips report Doppler velocity, and averaged categories are accurate to a fraction of a knot. Official rankings still require dedicated 10 Hz loggers.

Honest numbers, verifiable math — Doppler speed, continuous-track categories and per-session GPS grading, open source with OpenWater.

Get OpenWater