Crossing the finish line of a half-marathon after putting everything on the course is one of the best feelings in running.
This morning, a runner friend crushed his goal, crossing the timing mat in 1 hour, 23 minutes, and 42 seconds. But when he looked down at his wrist to savor the split breakdown, his watch delivered a gut punch: 20.22 km.
Because the watch stopped short of 21.1 km, it refused to grant him his half-marathon milestone. Worse, it calculated his average pace at 4:08 /km, masking what was actually a stellar sub-4:00 race.
He sent over the raw .FIT file asking what went wrong.
Diagnosing the 968-Meter Disappearance#
We dropped the .FIT file into our GPS Drift & Accuracy Analyzer to compare the watch’s recorded summary against the raw 2D satellite coordinates:

The diagnostics made the issue immediately obvious:
- Raw 2D Satellite Points Sum: 21.19 km (5,022 points at 1.0s sampling rate). On an officially certified 21.0975 km race course, 21.19 km is spot-on once you account for slight curve tangents and water station detours.
- Watch Recorded Distance: 20.22 km.
- Firmware Fusion Addition: -968.2 meters (-4.57%).
The Kilometer-by-Kilometer Cut#
Looking at the per-kilometer breakdown table, the watch firmware had not suffered a sudden GPS outage or cut a corner. Instead, its internal accelerometer pedometer fusion had systematically docked distance across the entire race:
- Km 1: Watch measured 954.2 m vs. GPS 1000.4 m (-46.2 m)
- Km 5: Watch measured 952.1 m vs. GPS 997.9 m (-45.7 m)
- Km 10: Watch measured 951.5 m vs. GPS 997.6 m (-46.1 m)
- Km 15: Watch measured 955.3 m vs. GPS 1000.8 m (-45.5 m)
- Km 20: Watch measured 953.0 m vs. GPS 998.3 m (-45.3 m)
Like clockwork, the watch fused sensor model trimmed roughly 45 to 47 meters every single kilometer. Over 21 kilometers, that silent cut accumulated into a massive 968-meter deficit.
Why Standard Apps Keep the Wrong Number#
Most running platforms (including Garmin Connect, Apple Fitness, and Strava) prioritize the watch’s pre-calculated lap and session summary messages over the raw trackpoints.
Even though the GPS coordinates on the map clearly stretched the full 21.19 kilometers, the file’s internal lap records anchored the activity to 20.22 km.
The Solution: Strip Laps & Recalculate#
To rescue the workout without complex manual file hacking, we updated our web-based Running File Converter with a dedicated fix:
- Strip Firmware Laps: An option to omit the watch’s corrupted internal
lapmarkers that lock in the faulty distance. - Pure GPS Recalculation: The file converter takes the lossless GPS trackpoints and computes the true distance (21.19 km).
- Harmonized Cadence & Stride Length: To prevent data conflicts between distance and step count, the tool mathematically recalculates the average stride length (
21,190 m / total steps = 1.31 m), keeping pace, cadence, and distance completely in sync.
The Result: 21.19 km, 3'56" Pace Restored#
We processed the raw file through the converter with laps stripped, and imported the freshly generated .FIT file straight into Apex Run:

The result speaks for itself:
- Distance: 21.19 km (Full half-marathon recognized)
- Duration: 1:23:42
- Average Pace: 3'56’’ /km
- Cadence & Stride: 193 spm with a clean 1.31 m stride length
- Elevation Gain: 134 m
You should not lose an official half-marathon milestone just because a watch firmware pedometer decided to shave 46 meters off every kilometer.
The update is live right now in our web Running File Converter — free, 100% local in your browser, and ready to save your next race file.
For the runner’s perspective and full race day split log on this same course, check out Run Log: Autumn Half Marathon — Course Progress and Rescuing a Friend’s Race.