Springlab
esc

↑↓ move↵ open38 pages

GPS speedometer accuracy: how close is a phone, and why does my car say more?

Short answer on GPS speedometer accuracy: at a steady speed under open sky, the number on a phone stays within about 1 to 2 mph of its GPS speed. On two recorded drives with a Pixel 10 Pro XL and a GPS-only filter it was 0.6 to 1.5 mph at cruise. Your car's dial says more on purpose: the UN rule for car speedometers, ECE R39, lets it read high by up to 10 % plus 4 km/h, never low. The one car we measured, a 2026 Tesla Model Y, reads 3.3 % above GPS. A phone fails where GPS fails: in the first seconds of a pull-away, in a tunnel, and in a hand that shakes.

By Springlab · 29 October 2026. We make the Speedometer app. Before we let it show a “±” under every speed, we recorded five drives with the phone logging every satellite reading and every sensor sample, and we measured the car's own dial against the GPS. This page is what we found, with the numbers, and a two-minute test you can do with the online speedometer on this site.

What we measured

Five drives on a Pixel 10 Pro XL in a 2026 Tesla Model Y, 20 and 21 October 2026, the longest 37 minutes, up to 74 mph. The phone recorded the raw GPS fixes, the Doppler reading of every satellite, and the accelerometer and gyroscope at 100 times a second. Our reference is the GPS Doppler speed itself, smoothed after the drive, with the chip's measured delay taken out. We have no radar or wheel-speed instrument yet, so these numbers say how well the number on the screen follows the GPS, and how the car's dial compares with the GPS. They do not grade the GPS against a radar.

SituationMeasuredDrive
Steady cruise, old filter (GPS only, smoothed)95 % of readings within 0.6 to 1.5 mphDrives 1 and 2, 20 Oct
Steady cruise, current filterThe number changed 1.1 and 3.5 times a minute on the two cruisesDrive 2 (held back from tuning)
Speed changes, current filter95 % within 1.4 mphDrive 2
Whole drive, pull-aways and corners included95 % within 3.3 / 1.9 / 2.5 / 1.8 / 1.9 mphDrives 1 to 5
Lag behind the GPS on speed changesAbout 100 ms (median)Drive 5, 37 min, as shown on the phone
Standing still, car awake0 the whole timeEvery drive we scored
GPS fix at pull-away0.00 for 4 s, then 4.7 mph in one stepDrive 3
At 72 mph on cruise controlThe GPS fixes wander ±0.5 mph; the car's screen flickers 74/75 tooDrive 5

Drive 1 is the worst row for a reason: it has a GPS gap, a reverse out of a parking space, a road dip and a moment when the phone was picked up. The sources are our drive-lab notes of 20 and 21 October and the accuracy spec, in the repo.

Why the car's dial says more

Car speedometers read high on purpose. The UN rule for car speedometers, ECE R39, says the dial may never show less than the true speed, and may show up to 10 % plus 4 km/h more. A car doing a true 60 mph may show anything from 60 to about 68.5 and stay within the rule.

We measured one car. The driver tapped a button in our app each time the car's screen and the app agreed, 27 taps over three drives, 18 of them at a steady speed on cruise control. A line fitted through those 18 steady taps is simple: the Tesla's screen shows 1.033 times the GPS speed, with no offset, and the scatter around that line is 0.5 mph. From that fit:

GPS speedThe car's screenDifference
35 mph36.2 mph+1.2 mph
45 mph46.5 mph+1.5 mph
72 mph74.4 mph+2.4 mph

One car is one car. A different model, or the same model on smaller tyres, lands somewhere else inside the rule. Tyre size matters because the car counts wheel turns: a tyre that is 3 % smaller in circumference makes the dial read 3 % higher. That is why the app has a “Match my car” setting. Its default of +1 % left the app 0.9 mph under this car at 72 mph; +3 % is right for it.

How a phone measures speed

A phone does not get its speed by comparing two positions. The GPS chip measures how each satellite's signal shifts in frequency as you move toward or away from it, the Doppler effect, and solves for your speed over the ground many times a second. That is why GPS speed is steady at a constant speed and does not depend on the position error, which can be several metres.

Two things about that reading matter for an app:

  • It is late. On the Pixel 10 Pro XL, the speed in each fix describes the moment about 270 ms before the fix's time stamp (we measured it on 20 speed changes; the middle half of them fell between 100 and 410 ms). An app that shows the fix as it arrives trails the car by at least that much, plus its own smoothing. Our old filter trailed by 0.8 to 1.0 s; the current one, which lets the accelerometer lead, by about 100 ms.
  • It comes with its own “±”. Android reports a speed accuracy with every fix. A good app shows it. Under open sky it is small; in a city street between tall buildings it grows, and the number deserves less trust.

The online speedometer on this site reads the same GPS speed through the browser. A browser does not pass on the speed accuracy, so the page shows the position accuracy instead, and some browsers give no speed at all and the page has to work it out from two positions.

Where a phone fails

  • The first seconds of a pull-away. The GPS chip holds its speed at 0 until the car clearly moves. On drive 3 it reported 0.00 for four fixes in a row, four seconds, while the accelerometer saw a clean, steady push of 0.5 m/s². The next fix read 2.1 m/s, which is 4.7 mph, in one step. Any app that uses only GPS shows 0 for those seconds, then jumps.
  • Tunnels, garages, tree cover, tall buildings. No sky, no fix. The honest thing is to say so. Speedometer shows “Signal lost” when fixes stop for 3 seconds and never shows an old number as if it were new.
  • A phone in a hand. We sat still for 40 seconds and shook the phone. The GPS fixes read 0 to 3 mph with an uncertainty of 2 to 4 mph (a poor view of the sky), and our app, which was letting the motion sensors lead, showed up to 24 mph. We fixed that the same evening: a phone that is being moved by a hand now stops the sensors from leading, and in the replay the number stays at 0 for 96 % of the shake and never passes 1 mph. The lesson stands for every app: a phone that is not fixed to the car is not a speedometer.
  • Laptops and most tablets. No GPS chip, so a position from Wi-Fi and no real speed.

Test your own car in two minutes

  1. Open the online speedometer on a phone and press Start, before you set off. Put the phone in a mount or let a passenger hold it still. Do not touch a phone while you drive.
  2. On a straight, level road, hold a steady speed. Cruise control is best.
  3. Have the passenger read the page and the car's dial at the same moment, at two or three speeds.
  4. Expect the dial to read a few percent above the page. Our car reads 3.3 % above; the rule allows up to 10 % plus 4 km/h. A dial that reads below the GPS at a steady speed is the odd one.
  5. Watch what happens as you pull away from a stop and as you pass under a bridge. The page lags at the pull-away and may drop out under the bridge. That is the GPS, not the page.

What we show in the app

The Speedometer app is built around the failures above:

SituationWhat the app showsWhy
Moving, good skyThe speed, with the phone's own “±” and the satellite countAndroid reports the accuracy with every fix; we pass it on
Standing still0, not a number that driftsA speed smaller than its own ± is 0
Pulling awayThe number leaves 0 with the carThe accelerometer leads while the GPS still reports 0
Fixes stop for 3 s“Signal lost”An old number shown as new is a lie
Your car reads high“Match my car”: −5 to +10 %Set it once from a steady cruise, as above

Speedometer app standing still: 0 km/h, the phone's own ± and the satellite count, with the trip numbers

The numbers on this page are from one phone and one car. The accelerometer-led filter is new and still being tuned; the figures above are what the recorded drives show today, not promises for every phone. We will add drives on other phones as we record them. The app is coming soon to Google Play. The speedometer, every mode and unit, the head-up display, one alert and your last trip are free; Pro, one payment, adds every trip with its route and chart, GPX and CSV export, three alerts with a voice, and the speed floating over other apps.

Questions

How accurate is a GPS speedometer?

At a steady speed with a clear view of the sky, a phone's GPS speed holds within about 1 to 2 mph. On two recorded drives on a Pixel 10 Pro XL with a GPS-only filter, the number on the screen stayed within 0.6 to 1.5 mph of the GPS speed at cruise. Over a whole drive, with pull-aways and corners in, 95 % of readings on our five drives were within 1.8 to 3.3 mph of the GPS speed.

Why does my car's speedometer show more than the GPS?

Because it is allowed to, and built to. The UN rule for car speedometers (ECE R39) says a dial may never read low, and may read up to 10 % plus 4 km/h high. The one car we measured, a 2026 Tesla Model Y, reads 3.3 % above GPS: about 1.2 mph more at 35 mph, 2.4 mph more at 72. Smaller or worn tyres push a dial higher still.

Is GPS speed more accurate than the car's speedometer?

At a steady speed on a straight road, GPS is usually the closer one, because it measures speed over the ground and the dial is set to read high. GPS is worse when the speed changes fast, in the first seconds after a stop, and wherever the sky is blocked. Neither one is a legal reference.

Why does the GPS speed lag when I pull away?

The GPS chip in a phone holds its speed at 0 until the car clearly moves. On one of our drives it reported 0.00 for four seconds while the phone's accelerometer saw a steady push, then jumped to 4.7 mph in one step. An app that uses only GPS leaves 0 late. Our app lets the motion sensors lead there.

Does a GPS speedometer work in a tunnel or a parking garage?

No. GPS needs a view of the sky. A phone loses the signal within seconds of entering a tunnel or a garage. A good app says so instead of showing the last number as if it were new. Speedometer shows “Signal lost” when fixes stop for 3 seconds.