Which mapping/route planning source should I trust for elevation I'm planning a few routes, and while I've generally used Google maps and cyclestreets, the former makes exporting to GPX a pain (there are third party tools, but once you've customised a route they sometime refuse to work, and Google doesn't pass on the customisation properly) and the latter doesn't allow custimsed routes (though its 3 options are generally good).

After hunting for another tool I tried Strava's route builder planning tool (I don't feel any need to log my rides online so don't use Strava for anything else). This apparently uses openstreetmap data. 

Now when I put the same loop into Strava and Google I get a difference in elevation gain, and not a small one: 522m from Google and 774m from Strava which is 48% more.  The distance is within rounding error (Google: 68.5km; Strava 67.7).  At 10% or even 20% I wouldn't be too worried but that's a big difference.

So which one should I trust?
None of them will be "right" 

Strava may throw away your elevation data depending on the device used to record it.   So for any phone-based app the height is ignored, and your track is placed on a map, then the known elevation is read off that.

For devices with known-good barometric sensors (Garmins and some others) the data in the upload IS used by strava.



The weather was horrible at the start, cold spitty rain.  About 20 riders simply chose to abandon before starting.   The rain cleared about level with "Lincoln" and the road was dry by about halfway.  So the air pressure increased, throwing the Garmin sensor out of calibration.  This rider had about 800 metres of climbing

  Here's my recording of the same event in March 2017. My recording shows 1820 metres of climbing, and this graph represents the real road elevation properly.



Furthermore you might think a map would be accurate, and in the main it will be.  Except the elevation of a map is based on contour lines, lines around the slope at the same elevation above sea level.

There is generally no continuous elevation data for a road.

Instead the map is divided up into square blocks and an "average" height for that block is calculated.  If the blocks are 1m square then its pretty good-enough.  If the blocks are 10m square, its "okay" because that's about the width of a roadway.  If the blocks are 100m square, then its terrible.

Consider this road with a 7% grade.   If the elevation blocks were much larger than 10m they could be positioned up or down the hill, giving an artificial high/low spot, increasing your recorded elevation gain.    The hillside here has a slope of about 45 degrees so its the same as a 100% grade.