cancel
Showing results for 
Search instead for 
Did you mean: 

Why Strava distance is always 0.01 mile shorter than Garmin distance?

Silentvoyager
Elbrus

I know it is a small thing but it is one of those things that is quite annoying about Strava. You know that situation when you finish a run and notice that it is very close to a round number of miles, than you run a bit further to make it e. g. 5 miles. Then it uploads to Strava and shows as 4.99 miles in some parts of the app and 4.9 miles in other parts of the app (e. g. the training calendar). Can Strava stop doing that? 

1 ACCEPTED SOLUTION

varun
Strava
Strava

Hi @Silentvoyager

We know this has been a long-time quirk, and often a frustration for many athletes, including some of our own employees! The reason this happens is that Garmin (both the device and Garmin Connect) rounds up distances, whereas Strava rounds down. Distances are always stored in meters on devices and then shown on Strava in the athlete's preferred units (i.e. miles/yards for imperial and kilometers/meters for metric). So for example, a distance that comes over in a file as 4995 meters will get displayed on Strava as 4.99 km and on Garmin as 5.00 km. Similarly, if on your watch you run until you see 1.00 miles, that might actually be something like 1608.0 meters (0.9994 miles) and Strava will show 0.99 miles.

It is also worth clarifying that most Garmins, even relatively older ones, provide a distance directly in the file that Strava uses. There are cases we calculate distance ourselves from the raw GPS points; for example, if a certain device doesn't provide it. And athletes can also choose to use our calculated distance to override the device one - see How Distance is Calculated for more. 

One other nuance for the question from @MattS_bsb regarding race distances like a half marathon or marathon. There are features like Best Efforts and Challenges based on those Best Efforts that require athletes to complete a certain distance. One thing we have seen is athletes who run 26.2 miles and not receiving credit. This stems from the same issue above - that a marathon is 26.22 miles when converted from its official distance (26 miles and 385 yards), and athletes are often slightly short.

We understand that this is a bit of a philosophical stance we've taken - the digital version of "running all the way to the line". There is a tradeoff here between the consistency with Garmin and satisfaction of the round numbers (because yes, we've all been there), and the care we aspire to take with data correctness and integrity. This is one of an exceedingly long list of nuances around data as we pursue making Strava work for thousands of devices, each with its recording subtleties and differences.

Hopefully that helps clear things up and explains why you might see some crafty athletes running til they see 1.01 on the watch. We will strive to continue using this forum as a place to transparently explain more of these types of situations to athletes.

 


Varun | Senior Software Engineer - Geo Team
https://www.strava.com/athletes/varun

View solution in original post

17 REPLIES 17

Silentvoyager
Elbrus

I wanted to add two more points to this thread.

1) Strava's rounding down of the distance is well known and disliked on Reddit (e.g. r/running subreddit), and often mentioned and referred to as "Strava Tax". If nobody likes that, why Strava insists on doing that? 

2) The same rounding down seems to apply to elevation gain. 

@Silentvoyager To your first point, I believe what @varun is saying in the response when they refer to "the care we aspire to take with data correctness and integrity. " is that Strava is not going to round up, because they are more concerned with data correctness and integrity, or "running all the way to the line".  - basically, they (Strava) are ensuring that you go the full distance, and not rounding up ensures this... you have to 'cross that virtual finish line'.

Elevation would also apply (but this is even more of a contentious issue, and your elevation will vary wildly from device to device).  I don't count on any device to be accurate with elevation numbers - I can ride next to others and have a variation in elevation between us of 100s of feet (or meters/metres if you prefer metric)... I can complain all day about elevation! (but it really has nothing to do with Strava when the GPS devices are so varied in the numbers it gives).

I know the "Strava Tax" can be frustrating/upsetting, and can cause an athlete to not get a completion of a certain distance, but I don't think Strava will start rounding up anytime in the near future... my best advice is to run/ride a bit further than the distance you are looking to achieve, or climb a little bit higher (also, this is likely not the answer you are looking for, but it is the only solution based on @varun's response on Strava's methodology). 

@CreakyCrank , I understand @varun's answer - there is no need to explain it to me.

My point is that every other GPS device brand does proper rounding. And then Strava says - we know better and we better not award you those extra 0.005 miles (which is about 10 steps) in case you haven't actually run that. By doing that Strava says that it knows better than any other other GPS device brand, which is pretty ignorant.

The points is that it isn't scientifically correct and only causes annoyance for the following two reasons:

1) The GPS distance accuracy is 0.5-1% at best and can easily be up to 5% wrong on a challenging terrain (that is my personal experience), and even worse than that. So if someone has run 5 miles, in reality that may be anything between 5.95 and 5.05 miles in the best case. So always rounding down in that situation in case they didn't run that extra 0.005 miles is simply not scientifically correct. It just introduces a bias for no particular reason.

2) @varun mentioned that GPS devices tend to measure GPS distance long. But that is simply not correct. Perhaps that was the case 10 years ago. It is true that early GPS devices that relied on GPS only had quite a bit of wobbling which could add to the distance. But modern devices use sensor fusion and tend to factor accelerometer and gyroscope heavily in the distance calculation and counteract the wobbling.  If anything, modern devices tend to oversmooth the track, especially around turns, and the distance tends to be too short, especially when running on trails with a lot of turns. If you don't believe me, try searching for Garmin Forums  for "distance short": https://forums.garmin.com/search?q=distance%20short

When I know that my Garmin device already under-measures the distance and then Strava reliably subtracts 0.01 miles from that, that causes nothing but irritation. 

And just to make it clear, I am not saying Strava should round up. It should do proper scientific rounding instead of truncation that it currently does.

 

varun
Strava
Strava

Hi @Silentvoyager

We know this has been a long-time quirk, and often a frustration for many athletes, including some of our own employees! The reason this happens is that Garmin (both the device and Garmin Connect) rounds up distances, whereas Strava rounds down. Distances are always stored in meters on devices and then shown on Strava in the athlete's preferred units (i.e. miles/yards for imperial and kilometers/meters for metric). So for example, a distance that comes over in a file as 4995 meters will get displayed on Strava as 4.99 km and on Garmin as 5.00 km. Similarly, if on your watch you run until you see 1.00 miles, that might actually be something like 1608.0 meters (0.9994 miles) and Strava will show 0.99 miles.

It is also worth clarifying that most Garmins, even relatively older ones, provide a distance directly in the file that Strava uses. There are cases we calculate distance ourselves from the raw GPS points; for example, if a certain device doesn't provide it. And athletes can also choose to use our calculated distance to override the device one - see How Distance is Calculated for more. 

One other nuance for the question from @MattS_bsb regarding race distances like a half marathon or marathon. There are features like Best Efforts and Challenges based on those Best Efforts that require athletes to complete a certain distance. One thing we have seen is athletes who run 26.2 miles and not receiving credit. This stems from the same issue above - that a marathon is 26.22 miles when converted from its official distance (26 miles and 385 yards), and athletes are often slightly short.

We understand that this is a bit of a philosophical stance we've taken - the digital version of "running all the way to the line". There is a tradeoff here between the consistency with Garmin and satisfaction of the round numbers (because yes, we've all been there), and the care we aspire to take with data correctness and integrity. This is one of an exceedingly long list of nuances around data as we pursue making Strava work for thousands of devices, each with its recording subtleties and differences.

Hopefully that helps clear things up and explains why you might see some crafty athletes running til they see 1.01 on the watch. We will strive to continue using this forum as a place to transparently explain more of these types of situations to athletes.

 


Varun | Senior Software Engineer - Geo Team
https://www.strava.com/athletes/varun

I have just been discussing this exact issue on Reddit and saw the following comment:

I just looked at several of my runs and on a 10k distance, every one is short anywhere from .01mi to 0.03mi. My watch is uploading in FIT and has the distance embedded in the data. Are we sure it's just rounding? I personally don't care if it's off 0.03mi on a 10K distance.

I understand that the 0.01 mile difference can be explained by rounding, but how the larger differences would be explained? The same reddit thread gives another example of 0.06 mile difference when uploading from Apple watch. Now that I think about that I also recall seeing 0.02 mile difference when uploading from Suunto 9 Baro via FIT format. 

 

@varun  This isn't just an issue with Garmin, as I have friends/fellow runners who experience this with COROS watches.

Also, I would refer you to my post on this topic where I cited non-GPS activities such as indoor rowing where the source data is registered as one distance, but STRAVA arbitrarily rounds down, e.g. 5000 meters on a C2 rower calculated as 4997 on STRAVA.

https://communityhub.strava.com/t5/devices-and-connections/distance-discrepancy-between-strava-and-g...

@MattS_bsb if you can file a Support ticket with your C2 rowing files, we can take a look into what is going on there, as it is likely (as you and others in the linked post noted) different than the "rounding" issue here.


Varun | Senior Software Engineer - Geo Team
https://www.strava.com/athletes/varun

Varun, Thank you for the detailed answer! I think Garmin does a proper rounding and not always rounding up. In other words, 4.995 rounds to 5.0 but 4.994 rounds to 4.99. Personally I think that is the way to go. That is the proper scientific approach that everyone gets taught in school. Always rounding down is arbitrary, especially considering that GPS distance error is typically much greater than the rounding error. Because of that the notion that a user might not have run the distance is simply wrong. Rounding down is even more annoying in some parts of the UI that show only one decimal digit, for example in the week stats or in the training calendar. 

 

I actually disagree - I think rounding down is the correct approach, rather than rounding up.  Think of it in terms of a race... if your Garmin is rounding up, and you were just about to cross the finish line, would you stop and complain that you are 'done', even though you haven't crossed the line?  Rounding down ensures that you go the FULL distance, not just shy of it.  

Another analogy is in engineering/construction - would you want something to be slightly too small, and compromise the integrity of a structure?  By rounding down, I feel that Strava is maintaining the integrity of the distance reported.

I also recognize that I may be in the minority opinion here - and these are just my opinions.  I too have finished a race (1/2 marathon) to find the distance wasn't long enough, then restarted the Garmin and (looking like a fool) ran around after the finish line to get to the proper distance.

Win Win Option? Maybe Strava could "round down" in "race mode" and then "round up" in non-race mode?  Kind of like it removes the stop time, but this would be a code change, and would also then require recalculating all activities to the current date (not an insignificant amount of computing power)... I'm not sure the cost would be justified for such a little thing, but maybe it could be done going forward... just my 2 cents.