I've tried 'mapmyride', 'ridewithgps', strava, and garmin connect all with my edge 500... They are all pretty consistent with mileage (when they differ, its by .1 mile and seems to be rounding related). For Altitude, they can be all over the map.
One thing I've just set and will be trying out for the first time today is using an 'Elevation point' - set for the elevation at the end of the courtyard - I've noticed that the starting elevation for
my rides has been pretty inconsistent - perhaps temperature dependent?