Why your best effort times disagree

You ran 5 km in 22:00 by your watch. One app says your fastest 5 km in that run took 21:34. Neither is broken. They measured distance in different ways, and over 5 km a 2% difference in distance is a 26-second difference in time.

Two ways to know how far you’ve gone

A FIT file from a GPS watch usually carries distance twice.

The device’s distance field. Every record the watch writes includes a running total of how far it thinks you’ve gone. That number is the watch’s own estimate. It may come from GPS, from a footpod or wheel sensor, or from a blend, and the watch has usually smoothed it before writing it down.

The GPS track. The same records carry latitude and longitude. You can ignore the device’s distance entirely, measure the distance between each pair of positions, and add them up.

On an open road with good satellite coverage, the two agree closely. Between tall buildings, under heavy tree cover, or on a running track where you turn the whole time, they can drift apart by several percent.

Where 26 seconds come from

Take the run above: 5 km in 22:00, which is 1,320 seconds at an even pace.

Say the GPS track zig-zags a little in a city centre and adds 2% to every stretch. By the GPS track’s measure you reach “5 km” after only 4.9 km of real running. At that pace, 4.9 km takes 1,294 seconds. The GPS best effort comes out at 21:34, about 26 seconds faster than you ran.

The same thing works in reverse. A track that cuts corners measures short, so it takes you longer to cover “5 km” and the time comes out slow.

Which way each error pushes your time

What happenedDistance measuredBest effort time
GPS positions bounce side to side between buildingsGPS distance too longGPS time too fast
GPS cuts corners on a twisty trailGPS distance too shortGPS time too slow
Footpod reads 3% shortDevice distance too shortDevice time too slow
Footpod reads 3% longDevice distance too longDevice time too fast

A suspiciously fast result is usually the wrong one. A 5K that’s a minute better than anything you’ve run, set in a city centre, is more likely a GPS track that measured long than a breakthrough.

How FitKeep finds a best effort

The search is the same for both kinds of distance. FitKeep lays a window over the activity, extends its right edge one recorded point at a time until it covers at least the target distance, then pulls the left edge forward as far as it can while it still covers that distance. It notes the time, carries on to the end, and keeps the shortest time it saw.

Three details change the result more than you might expect.

Both ends sit on recorded points. FitKeep doesn’t interpolate between points, so the window always covers slightly more than the target distance. The extra is less than the distance between two neighbouring points, so the extra time is under one recording interval. If your watch records every second, that’s under a second. If it records less often, say every 5 seconds, a 400m best effort can come out several seconds slower than you ran it, which matters a lot more over 400 m than over a marathon.

Long pauses split the run. A pause of more than 5 minutes cuts the activity, and no effort can span the cut. Shorter stops stay inside the effort and count toward its time, because a best effort is elapsed time.

Glitches split the run. For the device method, FitKeep splits wherever the recorded distance goes backwards or climbs faster than 50 metres per second (200 for bike activities). For the GPS method, it splits where the track shows a sustained run of points faster than 7 metres per second on foot (25 on a bike). A single stray point is tolerated; several in a row are treated as a recording problem.

What FitKeep does with both

FitKeep calculates every best effort both ways and stores both. The Best Efforts page shows the device result when there is one, because your watch may have corrected its distance with information that the raw GPS points don’t carry. You can switch any effort to the GPS result.

When the two disagree by 5% or more, and by at least 5 seconds, the effort gets a ⚠️. The 5 seconds keep short distances from being flagged over noise: 5% of a 90-second 400 m is only 4.5 seconds. On a 22-minute 5K the threshold is 66 seconds, so a ⚠️ there means something went wrong with one of the measurements.

What to do with a suspicious record

Open the activity and look at the map where the effort starts and ends. A track that cuts through a building or jumps across a park you ran around explains a fast GPS time. If the GPS result looks wrong, trust the device result. If the device result looks wrong and you ran with a footpod, calibrate the footpod.

If short efforts keep coming out slower than your watch’s own lap times, check how often your watch records. A setting that records every second gives the most accurate short best efforts.


FitKeep shows both times for every best effort, from 400 m to the marathon. See Understand Personal Records and Best Efforts for how the Best Efforts page works, or why we built FitKeep around them.