Ever finished a century ride, only to see your GPS read 99 miles? Or wonder why the average speed and total elevation gain in your Strava activity are different than a friend’s, even though you did the same ride?
You’re not alone. From the Bicycling forums to those of social fitness apps like Strava and Garmin Connect, riders want answers to why GPS devices, all based on the same satellite-oriented location systems, seem to vary so often.
Our colleagues at Runner’s World recently wrote about such GPS errors, focusing on a recent journal study that demonstrated how GPS devices essentially always overestimate your actual distance—but those errors are only part of the story.
GPS lies, if we want to call them that, derive from a number of issues and affect metrics from distance to average speed to elevation gain. “Each difference has a different driver,” explains pro cyclocross racer Elle Anderson, who, as part of Strava’s customer support team, deals with these questions every day. By using GPS, “we operate on a system that’s inaccurate to some degree,” she says.
Understanding the reasons why GPS discrepancies happen might help you eliminate some error, or learn to live with it until a better alternative arrives.
How GPS Tracking Works
GPS devices gather data from a group of 27 satellites that orbit Earth twice a day, following exact trajectories such that, at any given time at any given location on earth, at least four are visible.
Those satellites send out radio wave signals picked up by your device. Based on the time difference between when the wave was sent and received, a GPS unit figures out how far away each satellite is and uses that info to pinpoint your location—a process known as trilateration.
Errors of Distance
Measurement Error: If you’ve ever downloaded a GPS file only to find your path on the map is parallel to a road but not actually on it, that’s measurement error, as shown in this Garmin Connect file from a recent ride to test GPS accuracy.
Satellite signals travel through our atmosphere, which slows them down slightly. GPS device makers compensate for that with algorithms, but even then, the most advanced among them can only approximate your position within three to five horizontal meters; most are only accurate to within a diameter of 10 meters.
Interpolation Error: If you’ve ever downloaded a GPS file that renders your path around a curve as a weird series of jerky straight lines, you’ve experienced interpolation error. GPS devices only measure your location at intervals, so your path ends up being a series of discrete points. Software typically connects those points with straight lines even if your route is curved. Most software, like Strava or Garmin Connect, can correct to follow known roads, but if your sampling interval isn’t fast enough, the path can incorrectly account for distance.
Other Errors: GPS accuracy also varies with signal strength, hardware integrity, and even whether your firmware is updated. Certain settings may also interfere with accuracy: If you set your device to autopause when you stop moving, you have to move continuously for a certain distance before the system starts measuring again. There’s also data corruption. Anyone who’s uploaded a .fit file knows that sometimes it’s unreadable, and even when it is readable, there’s noise—data drops out or is added in weird spots (no, you did not instantly and momentarily decelerate to 5 mph on an otherwise 35mph descent).
Errors of Elevation
Barometric drift: GPS devices can read elevation two ways. The most common for cycling computers is with a built-in barometric altimeter, which uses changes in barometric (aka air) pressure to compute altitude changes. But barometric pressure also changes based on weather and temperature, so it’s always going to be slightly off. “Elevation gains are relative, not absolute,” Anderson points out. “[And] if you take your Garmin from your warm house and go out and ride in 30 degrees, it freaks out for the first few minutes.”
A GPS without a barometric altimeter, like a phone app, uses your position and a value called a reference ellipsoid to calculate elevation, but it’s often inaccurate—one of the primary reasons why Garmin Connect and Strava offer elevation corrections when you download a file.
Database generality: Elevation correction features compare your route to a list of known elevations. Strava, for example, uses US Geological Survey data, says Anderson: It essentially overlays a map with a grid of 10-square-meter tiles, each assigned an elevation value based on the average elevation of its total area. So in particularly steep terrain, the actual elevation is likely higher (or lower) than the tile value. That's why Strava and Garmin Connect disable elevation corrections when downloading from a device with a barometric altimeter: The collected data is usually more accurate.
Because of all these errors, every time you do a particular ride, your GPS will produce slightly different data sets. And if you and a friend do the same ride, your files will be different. Each error is small individually, Anderson notes, “but everything has a compounding effect of small variables that overlap, so the cumulative error at the end of the activity can be a few minutes, or even a few tenths of a mile.”
Distance is the most regular error and, according to a paper published last fall in the International Journal of Geographic Information Science, the way that GPS relies on interpolation almost always means that your recorded distance is longer than your actual distance.
Elevation data typically varies more widely. Part of that come downs to individual hardware, including the presence or absence of a barometric altimeter. The result can be elevation profiles that are hundreds of feet apart over a series of climbs – pretty important stuff if, say, you ever try to Everest on a bike.
But what about my segments, bro?! Probably people’s biggest concern is that GPS error will somehow affect their QOM/KOM results. Relax, says Anderson: First, segments are typically short enough that measurement error is much less than that found in, say, a 60-mile hill ride.
And interpolation works well for one key metric: segments. For segment times, Strava analyzes your activity file and picks out the two GPS interpolation points that most closely match the start and finsh of a segment (four points total). Of each pair of points, Strava uses the one that is closest to the location of the start of the segment and the finish of the segment as your start and end point. Your time is based on the timestamps of those two points only, not the cumulative measurement errors of all the interpolation points in between, like happens in a full activity. There’s still a margin of error there, but it’s on the order of a few horizontal meters—and sometimes that may be a few meters in your favor. Repeat a segment enough times, and it’s essentially a wash; nothing to get worked up about.
Still concerned? Anderson says Strava is in the very early stages of a project that might end most GPS errors. Using files from the millions of activities users have uploaded, it’s essentially crowd-sourcing a massive database from its users. “It’s so important that if we do make that change, we have to feel 100-percent sure it’s an improvement,” Anderson says. “But if it does happen, it means that it wouldn’t matter if you rode solo or with a group, did the same ride on different days or did it with friends with different devices; if we ride the same route, we’ll all get the same data.”
If that happens, sure, there could still be some miniscule level of error. But at least then we’re all playing on the same field.
What to Do About It
“I’m constantly amazed by how much our users care about the seconds and the feet and the tenths (of a mile),” Anderson says. If you want the most accurate data, here are some good GPS practices:
• Update your firmware: For my GPS test above, I intentionally pulled out an older Garmin Edge 500 that I haven’t updated in years. There are multiple reasons why the resulting file had an error-filled route, but ancient firmware is one.
• Get a speed sensor: It says something that, when you pair a sensor to a GPS device, it almost always defaults collection of that data to the speed sensor rather than GPS. Do make sure that, when necessary, wheel-size calibration is accurate.
• Upgrade: Newer GPS units may have the Federal Air Administration’s WAAS navigation aid enabled in the background, and can also access Russia’s GLONASS satellite network. More satellites equals more precision location.
• Switch your sampling rate: Most GPS devices come with a default setting of “auto” or “smart” for the sampling interval, but you can set them to ping the satellite up to once per second. Downsides? Quicker battery burn and larger file sizes with potentially more noise.
• Enter known elevation points: If you enter a number of points in your GPS, it will help compensate for barometric drift because when you turn on your GPS at a trailhead you visit often, it’ll pick up that saved elevation point and calibrate the barometric altimeter to the known value, which is easily accomplished. On older GPS devices, you can store a certain number of known points; when you start a ride, the device will automatically look to see if it’s in the vicinity of one of the points you entered and calibrate to that. On newer GPS devices with downloadable maps, the elevation points typically come from those maps.
One tip for picking known points: Don’t use a city limit sign that lists elevation. It’s usually a random point somewhere else in the city, or just the city’s average elevation. You can, however, use marked spots like the summit of a pass.
Now go ride your bike, with or without a GPS.