Calculation demonstration for "Why the same workout can have different distances". route-A-unchanged.gpx 11 invented points, 0.001° apart along the equator (open ocean). route-B-one-point-moved.gpx The same points with point 6 moved 0.0005° north. route-points.csv Both coordinate sets with each segment length (mean radius). route_length.py Stand-alone haversine sum (Python standard library only). Results (haversine): A = 1112.0 m, B = 1138.2 m (+26.2 m), mean radius 6371008.8 m. With radius 6378137.0 m, A = 1113.2 m. The files contain no times and no distance field on purpose: they are geometry for a calculation, not activities. The article's 1,150 m figure is a hypothetical device or summary total stated only in the text; neither GPX contains it. Nothing here measures GPS accuracy or reproduces any service's internal calculation. validated against the GPX 1.1 schema; not uploaded. Editorial validation: the supplied GPX files passed offline XSD validation on 20 October 2026. This checks file structure, not provider acceptance or real recording provenance. The supplied route_length.py is for these single-segment synthetic examples. It joins consecutive points; adapt it before using files with separate tracks, segment breaks or recording gaps.