Runners, hikers, geocachers, cyclists and many others use smartphone apps or dedicated GPS units to measure how far they’ve gone and to calculate their pace. What they don’t realize is that the apps and units routinely underreport the distance traveled, that is, tell you that you traveled a shorter distance than you actually did. Sometimes they overreport it. For competitive runners and others, this can be a serious drawback because it becomes difficult to judge your true pace, which you need to know for proper race planning. Why is this happening?
To understand this, first we need to examine how these apps and GPS units work. They all rely on the Global Positioning System (GPS) network of satellites which in turn relies on the WGS84 datum. What is that? For a detailed description, click the link. For our purposes, the important thing to know is that the system assumes the earth is a perfect spheroid, that is, it’s smooth like an egg or a billiard ball. Smoother – perfectly smooth, in fact. Thus when you move from point A to point B, the algorithms at work in your app take the coordinates of those two points and measure the distance between them with the assumption you are moving over a smooth, level surface. It also assumes you moved in a straight line. Both of these assumptions are seldom true in real life.
If you don’t believe me, you can test this easily. Google Earth uses this same methodology and datum. Take the point in Yosemite Valley with these coordinates: . Paste these coordinates into Google Earth (GE): N37 43.700 W119 38.250. The elevation according to GE is 4143 feet. Now do the same with N37 43.830 W119 38.160. The elevation shows as 7129 feet. That point is atop El Capitan. Mark these with the stickpins from the top menu then measure the distance between them using the ruler tool. It shows a distance of about 900 feet. But the elevation (vertical) distance alone is almost 3000 feet. If you could fly from the first point to the second in a straight line, 900 feet is the distance your app would report to you. Clearly that’s too small and the reported pace would be too fast. Even though GE knows of the elevation difference, it doesn’t use that to compute distance between points. Your app is the same.
Consider the following cross-section where C is the mountaintop and A and B are the valley floor.
If you go from A to C the distance reported will be AB, not AC. But even AC would be wrong since you don’t travel the black line AC but that wiggly red line that goes up and down through the hills. All those elevation changes are not taken into account. The true distance would be more than AC but less than AB+BC.
Your app or unit can also overreport distances. Take, for example, a geocacher on a level trail in the forest. Elevation is not a factor. He stops at the location of the geocache which we’ll say is hanging in a tree, a particular, identifiable tree so he doesn’t move around much. He stands more or less in the same place for ten minutes trying to spot the cache in the leaves. The app or GPS unit, due to the tall trees and position of the satellites at that time, may have an accuracy of only 80 – 100 feet or so. As he stands there, the app thinks he moved 80 feet one way then 100 feet another direction every split second, or whatever its effective sampling rate is. It can report that he moved a quarter mile over those minutes while he actually stood in the same place simply because it’s not that accurate. Most of these issues do not apply to road-based apps because the programmers have access to accurate traveling distance over known streets and highways and use that rather than pure GPS data. At least, I think that’s true. If you run or cycle on measured tracks, just use a stopwatch, not your app. You can compute the pace yourself since you know the distance.
The accuracy of the unit is affected by many things including the quality of the unit, the terrain, and the location of the satellites at the time. Phone apps are generally less accurate than dedicated GPS units. Even on a known level road, a GPS-based unit/app can cut off curves if it doesn’t get a reading all the way around the bend. On a straight line path it can record your route as veering off to one side and the other, like a drunken sailor (no offense to the sailors out there). That could result in overreporting. If you really want to know the exact distance of your regular run, bike, or hike, use better methods like a well-calibrated bicycle odometer or at least average the same exact route many times and compare your app or unit to known distances like the local high school track to adjust the readings.