How GPS Measures Speed: Doppler, Not Distance Over Time
You might expect a GPS speedometer to divide distance by time. Good receivers do something better: they measure your speed directly from the Doppler shift of the satellite signals.
Updated 1 October 2026
Two ways to get speed from GPS
1. Distance over time (position differencing)
Take two positions a second apart, measure the distance between them, divide by the time. It is simple, and it is what you would do with a map and a stopwatch. The trouble is that each position has an error of a few metres, and those errors do not cancel neatly. Two fixes one second apart, each off by 3 m in different directions, can make a parked car appear to move at 20 km/h. Averaging over longer intervals smooths the noise but makes the reading lag.
2. Doppler shift
You have heard the Doppler effect: an ambulance siren sounds higher as it comes towards you and lower as it goes away. Satellite signals do the same thing. Each satellite broadcasts on a precisely known frequency. Your motion towards or away from it shifts the frequency your receiver hears, by a few hertz for every metre per second.
The receiver already tracks each signal's carrier wave very precisely to stay locked on, so it knows the shift for every satellite it can see. Each one gives your speed along the line to that satellite. With four or more satellites in different directions, the receiver solves for your full velocity: speed and direction, horizontally and vertically, along with a small correction for its own clock drift.
Why Doppler speed is better
- It does not inherit the position error. Most of what makes a position a few metres off, such as atmospheric delay, changes slowly, so it hardly affects the rate of change the Doppler shift measures. A study of GPS speed on cyclists found speed stayed accurate even when the position was poor.
- It is instant. Every fix carries its own speed, with no need to wait for a second position.
- It works at walking pace, where position noise would swamp a distance-over-time estimate.
How accurate is it?
| Receiver | Speed accuracy |
|---|---|
| The GPS system itself (US performance standard) | Velocity error ≤ 0.2 m/s (0.7 km/h), 95% of the time, global average |
| Dedicated GNSS module with a good antenna (u-blox M9) | 0.05 m/s (0.2 km/h), median |
| Smartphones on the move (2022 study, two Android phones) | 0.1 to 0.4 m/s (0.4 to 1.4 km/h) |
In plain terms: in open sky, a phone's GPS speed is usually right to within about 1 km/h (under
1 mph). Apple publishes no figure for iPhones, but each reading comes with its own
speedAccuracy estimate, which good apps use to decide whether to trust it.
When GPS speed goes wrong
- Lag under hard acceleration. Phones report about once a second and smooth the result, so in a fast-changing situation the reading trails reality. A sports study measured low-cost 1 Hz receivers, a phone among them, lagging by around two seconds.
- Tight bends. Smoothing can cut corners, so speed is under-read through tight turns.
- Reflections. In cities, signals bounce off buildings and the reflected path has a different Doppler shift. Speed gets noisy or jumps.
- No sky. In tunnels and car parks there is no signal at all, so there is no speed. See why GPS stops in tunnels.
- Slopes. Most phones report horizontal speed. On a steep hill you are moving a little faster than that along the road.
What phones and browsers expose
On iPhone, Core Location gives each fix a speed in metres per second, negative when
invalid, plus speedAccuracy. In a web browser, the Geolocation API gives
coords.speed, the horizontal speed in m/s, or null when the device cannot
measure it. A laptop locating itself by Wi-Fi has no satellite receiver and reports no speed. Our
online speedometer uses that browser value, and falls back to distance over
time only when the browser gives nothing.
Sources
- ESA Navipedia, GNSS basic observables (Doppler and carrier phase).
- R. B. May, Measuring velocity using GPS, GPS World, September 1992.
- US Government, GPS SPS Performance Standard, 5th ed. (2020): velocity accuracy.
- u-blox, NEO-M9N datasheet: velocity accuracy 0.05 m/s.
- Li et al., smartphone Doppler velocity, ISPRS Archives XLVI-3/W1 (2022).
- Witte & Wilson (2004), accuracy of non-differential GPS for speed over ground, Journal of Biomechanics 37.
- Supej & Čuk (2014), comparison of GNSS devices for measuring speed: lag of 1 Hz receivers.
- Apple, CLLocation.speed and speedAccuracy; W3C, Geolocation API.