Experience proves that GPS is absolutely useless in the vast majority of my riding situations, with errors up to 20% when mountain biking under tree cover (twists and turns and switchbacks, dropped signal, canyons, etc). Even on a road bike I often ride under tree cover and there are tight turns.
GPS satellite errors are often low, but sometimes surprisingly variable. Of course, GPS has one big advantage: errors are not cumulative over a long ride. But the accuracy over distance is not very good in many cases. For wide open roads and straight lines, it is fine.
GPS total error over distance might also be affected by grade; it’s unclear that GPS ever logs road distance properly when riding on, say, an 8% or 18% grade (e.g., “as the crow flies” vs cyclist glued to undulating/climbing road). That would presumably depend on the GPS unit. But no GPS can properly measure up-and-down short-length dips in the course; the accuracy and precision are just not there.
How to measure
When I road-bike, I calibrate my SRM PC7 accurately (it reads out to 0.001 mile using a wheel sensor).
Ideally, one would have a known distance on flat ground: a 400m track or strip of pavement marked exactly for distance; ride the distance, then adjust the calibration so that it reads exactly right. I don’t have that facility anywhere nearby.
I lay down a long tape measure, then carefully roll the bike so that at least four revolutions are made of the wheel to increase accuracy. I’m on the bike so as to incur typical tire squish. I take the distance, divide by four (revolutions) and plug this number into the SRM.
The numbers will depend on body weight, inflation pressure, type of tire and its size. Thus getting your own number can yield a more accurate speed and distance than some generic assumed number.
22C vs 25C circumference
Here’s what I found for myself for the front wheel (my sensor is on it).
These are pressures that I typically ride and total riding weight was ~200 pounds (~178 pound rider fully clothed, lights on bike, saddlebag, etc):
Veloflex Record 700 X 22C @ 120 psi: 2014 mm
Veloflex Roubaix 700 X 25C @ 110 psi: 2123 mm
The difference is 0.9%. That doesn’t sound like much, but it equates to a 1.76 mile error for a 200 mile double century, which dovetails with what I’ve observed when riding a Veloflex Roubaix with the PC7 being calibrated for the Record.
Note that if you were assessing, say, an aero wheel or aero riding position, that 0.9% difference translates to 0.27 miles per hour at 30 mph. Which is of no particular interest in general, but very significant if you’re goal is to assess gear for winning, say, a time trial. Put another way, 0.9% of 30 minutes is 16 seconds—huge in a race like that.