Running Distance / Pace calculation is flawed / needs rework

Hello, A while ago, I reported that my Fenix 8 watch under-reports distance by a large (from a training athlete's perspective) amount, resulting in wrong running pace reported. 

This affects someone who is actively training both during running - pace is under reported, as well as post training and in planning. 

On today's 7km run - as reported by the Fenix 8 - the recorded GPS track distance was actually ~7.55km. So the distance is actually being recorded correctly, but the watch applies (as I've learned in the previous post) some corrections / calculations based on stride length and cadence, to figure out distance, and purportedly ignores the GPS track distance. 

Garmin has also recently removed the ability for users to specify stride length manually - so you are stuck with what the watch "thinks" is your stride lenght based on accelerometer data, etc. 

Now - to me as a runner who is actually training - distance is distance, based on map data and gps track length - not a calculation you are stuck with and have no control over. In today's run as reported by my F8 my running pace was 5:05min/km over a distance of 7.02km. But based on the recorded GPS track and MAP data - I had a running pace of 4:44min/km over 7.55km. These are two VERY DIFFERENT running paces / running zones, pertaining to DIFFERENT TYPES OF RUNS for DIFFERENT END GOALS within the training block. They cannot be used interchangeably!

Which one should I - an actively training runner - take as correct & accurate when running and planning my training block, with my top-of-the-line flagship sports watch

Has anyone ever found a fix or workaround to have the ACTUAL track distance/map distance reported on their activities instead of useless calculations? 

Also a note to Garmin - shouldn't you put a better use to your "athlete intelligence" technology - to analyze post-activity data and apply corrections based on hard facts (map topographic and survey data for distance / elevation) and IMPROVE such a CORE FEATURE of your devices like Running, instead of using it for shiny "golden badges" and an "intelligent insight" that tells me that my recent stress of 23 is lower than my average past stress of 25??? Slight smileSlight smileSlight smile Current features like HILL SCORE and ENDURANCE score are utterly useless (algorithms are wonky and elevation data gets skewed by the slightest change in ambient pressure or temperature)

Why are athletes penalized when this is a "SPORTS WATCH" and we are getting newer and fancier "smartwatch", "wellness" and "social" features instead of focusing on having a ROBUST and ACCURATE training experience on a thousand dollar Flagship sports watch??!! 

  • The accelerometer data is used when the GPS signal is missing or has lower quality. So principally it does have a sense. Unfortunately, the implementation is not perfect, the quality threshold seems to be too low, leading to an overuse of the accelerometer data even in cases the GPS data is quite fine, and hence leading to a lower accuracy than necessary.

    Ok, now I see what you mean.

    I thought you meant that activity speed/distance (not instant speed) *always* used a fusion of GPS and accelerometer throughout the activity.

    If you're saying that the accelerometer only kicks in when GPS quality is deemed to be too low, that definitely matches my experience. We see it all the time when running under a bridge or by tall buildings.

    I still think:

    - *in general*, outdoor activity distance is based mostly on GPS distance. Average pace/speed is calculated based on distance and time. (Instant pace/speed may use the accelerometer to a greater degree than distance). 

    - Average stride length is likely calculated from activity distance (regardless of that's determined), cadence, and time. Therefore, I don't think one can make any conclusions from the average stride length that is displayed in the activity summary.

    When I look at old activities from like 6-7 years ago, with a watch that did not have instant stride length on the wrist, and where instant stride length was not available at all because I wasn't wearing a strap, the average stride length was still displayed in the summary.

    And I am fairly sure that average stride length *always* equals activity distance / (average cadence * time). So assuming that average cadence and time are measured reliably, then the most likely conclusion is that average stride length is based on distance (and the other variables), as opposed to distance being based on average stride length (and the other variables). If it was the case that activity distance was somehow calculated from average stride length, it would mean that algorithm used to determine average stride length would completely determine the activity distance, which doesn't seem plausible to me. (It doesn't seem like a good idea at all)

    In other words, given that there's little to no margin for error for average cadence and activity time, we can assume those are "fixed" for any given activity. Either average stride length is calculated from an uncertain activity distance (for a given cadence and time), or activity distance is calculated from an uncertain average stride length (for a given cadence and time). Only one of those possibilities makes sense to me.

    I do see your point about the accelerometer and its (invislbe) calibration which relates to Garmin's estimation of your stride length. But again I don't think this is directly related to the average stride length in the summary.

    No, the setting must remain on the option "Indoors Only", definitely not "Outdoors"! That would not use the GPS distance and pace at all, and the accelerometer data could also not calibrate in this mode. And turning it off completely would only make the watch to resort to its own accelerometer, which is much less accurate than the one of the strap (or a pod). So no, you cannot really opt out, even with an external accelerometer.

    Gotcha. Just wanted to understand exactly what you meant when you said the strap is used as an accelerometer.

  • When I look at old activities from like 6-7 years ago, with a watch that did not have instant stride length on the wrist, and where instant stride length was not available at all because I wasn't wearing a strap, the average stride length was still displayed in the summary.

    It may depend on the model. I do have the avg. stride length in the run stats even now (on Instinct 3), and regardless whether I use a strap or not.

  • Thanks for taking the time for contributing to the topic! 

    As Trux has replied to most of your ideas and clarified some topics, I'll stick to replying strictly to what was addressed to me and provide some other remarks from my point of view. 

    When I run races from 5k to 42.2k, the error in distance estimation is typically 1-2%.

    I found that indeed that is the case - When I either race (half marathon and upwards, lots of trail races) the error seems to be a bit lower but still noticeable / impacting the overall pacing. What I'm more concerned with is skewed regular TRAINING data (I run 70-100km per week depending on training block). Tempo, Threshold and Sprints workouts are the most affected, since stride length varies considerably compared to steady runs (which do make up 70-80% of my training). These are some of the most important and impacting training sessions for a runner, and it saddens me that they're the most affected by this "bug". It's the data that a runner (and data nerd) prizes the most and tracks their progress/future training on.

    You didn't mention exactly how you extracted the track length.

    You can easily download the pure, unaltered GPS track from the activity in Garmin Connect Web and analyze as per your choosing. 

    Is it possible you are using a tool which adds up all the deltas between individual GPS points to obtain an estimated track length which was not originally recorded in the GPS file? And is it possible that this calculation is not quite right?

    No, that's not true/possible. 

    - Your watch uses smart recording (the default setting) as opposed to per-second recording. Smart recording tries to save battery and device storage space by recording data to the FIT file only when it's deemed to be necessary.

    It does not. I've switched to training with Garmin watches since the Fenix 5 and went through every generation, and I set my watches to record every second right out of the box. 

    - You are not getting a solid GPS lock before starting your activity

    I always wait a good amount of time after the GPS fix has been accomplished - green progress bar and check mark. 

    but in many cases it's premature.

    It might not be the case - Garmin uses A-GPS, check to see how that works. 

    If I start my activity before waiting for a true GPS lock, then indeed I will usually see a bad GPS track near the beginning, including additional distance I didn't run. I'm not saying it's exactly what you are seeing though.

    A "True" GPS lock is also achieved when the progress bar / checkmark turns green, the watch is "truly" synced to the minimum ammount of sattelites needed to provide an arguably accurate tracking experience. The difference if you wait more time consists in the watch syncing to even more GPS sattelites, improving your triangulation and thus positioning/tracking.

    If Garmin always uses the accelerometer to augment both instant pace and total distance / average pace, to me that doesn't make much sense as it seems like it would produce bad results.

    This is what we are observing - despite having a good and heathy GPS track (clear day, no buildings or trees, running in a field) the watch "pollutes" the total distance using Running Dynamics data. 

    I think average stride length is always calculated from the estimated distance, average cadence, and activity time.

    I think this is very much not the case. Stride Length is, as per Garmin, one of the many "Running Dynamics" metrics, calculated by the onboard sensors including accelerometers (and maybe gyroscope?). I might be wrong, but this is my current understanding. Until Garmin comes out stating if this is not the case, we can, again, only deduct, speculate and reverse engineer based on all available metrics we have. 

    If Garmin always uses the accelerometer to augment both instant pace and total distance / average pace, to me that doesn't make much sense as it seems like it would produce bad results.

    There you go Slight smile

  • My point is that I have good reason to believe that average stride length is simply calculated from activity distance (regardless of where it comes from), time and average cadence.

    I am saying that I think average stride length has always been available as long as average cadence was available. 

    So I am saying that I do not think any additional conclusions can be drawn from the value of the average stride length, since I think it is derived from the distance in the first place.

    If the distance is accurate, the average stride length will be accurate (assuming time and average cadence are accurate, which I assume they are - unless you get cadence from the wrist and you don't swing you watch arm for long periods during the run.)

    If the distance is inaccurate, then the average stride length will be inaccurate.

    Similarly, if distance is inaccurate, then average pace will of course be inaccurate, but I don't think any additional conclusions could be inferred from an inaccurate average pace either, since average pace is directly derived form distance. (And I assume that the activity time is very unlikely to be wrong.)

    To be clear, I don't think that an incorrect average stride length means anything special. I don't think it *directly* signifies that the accelerometer's idea of your stride length (its calibration) is wrong. I think it just means that one the following is incorrect: activity distance, activity time, or average cadence. And assuming that time and cadence are accurate, the most likely explanation is that distance is wrong. And distance could be wrong for many reasons (including the thing about the accelerometer)

  • I think average stride length is always calculated from the estimated distance, average cadence, and activity time.

    I think this is very much not the case. Stride Length is, as per Garmin, one of the many "Running Dynamics" metrics, calculated by the onboard sensors including accelerometers (and maybe gyroscope?). I might be wrong, but this is my current understanding. Until Garmin comes out stating if this is not the case, we can, again, only deduct, speculate and reverse engineer based on all available metrics we have. 

    I am talking about average stride length, not instant stride length.

    Average stride length has been available in Connect for a long time, for super old watches [like 10+ years old] which had no running dynamics except cadence. Some of these watches didn't even have cadence from the wrist. 

    Given the above point and the fact that average stride length is always equal to the activity distance / (average cadence * time) [try it out for any activity and see], I think it's reasonable to infer that average stride length is always derived from distance and not the other way around.

    I agree that instant stride length comes from the accel or the chest strap, but that doesn't matter. Average stride length is not based on instant stride length, as far as I can tell. If you add up all the instant stride length data points and average them, I do not think you will get the average stride length. And I don't think that's a reasonable way to calculate average stride length anyway. It's more mathematically sound to calculate average stride length as activity distance / (average cadence * time). I think you would find that even with perfect measurement of instant stride length once per second, you would never be able to get the "correct" answer every time, if you calculated the average based on the sum of instant values. The reason for this is the limited resolution and accuracy of the individual data points. (In a perfect world with infinite resolution and infinite accuracy, the average of the sum of the individual points would ofc equal the average that's calculated from the total distance.)

    Similarly, I think instant pace relies more heavily on the accel than it does on the GPS, but I don't think average pace is based on instant pace either. Similarly to the above point, average pace is always equal to activity time / activity distance. Again, if you added up all the instant speed/pace data points and averaged them, you would never consistently get the "correct" average pace value.

  • Average stride length has been available in Connect for a long time, for super old watches [like 10+ years old] which had no running dynamics except cadence. Some of these watches didn't even have cadence from the wrist. 

    Case in point: super-old slow 10k from 2015 T_T

    [1/2]

  • Notice how there's no running dynamics except cadence, yet average stride length is displayed in the summary.

    Notice how [distance in metres] / [time in minutes * average cadence in steps per minute] = average stride length? (After rounding of course) I don't think that's a coincidence. And given this strict relationship holds for any activity I want to look at, I only see 2 possibilities:

    1] activity distance was measured somehow [mostly via GPS, I think], and average stride length is mathematically derived from distance

    2] average stride length was measured somehow, and activity distance is mathematically derived from average stride length

    --

    1] is the only alternative that makes sense to me. And if 1] is the case, then there is no additional inference that can made by looking at average stride length beyond what you can infer from looking at the activity distance. (Assuming that the activity time and average cadence are correct, which is an assumption that I am making because I wore a footpod and I don't think Garmins have any problem tracking activity time.)

    If average stride length looks wrong, it's because the distance is wrong [*], and not the other way around. As far as I can tell, anyway.

    [*] or the cadence or time are wrong

    [2/2]

  • Anyway it's just my experience with Forerunners (and not Fenix watches), but activity distance is generally ok for me unless I run past tall buildings or under a bridge. But it's always very obvious from the GPS track what happened.

    I don't see any systemic errors in distance/average pace that aren't attributable to obvious GPS error.

    Instant pace is much more iffy but we all know that GPS is not good for short distances (which is why the accel is apparently used to augment instant pace in the first place), and we all agree the accel is not perfect either. But again I don't think it matters because instant pace is just something that's displayed on the pace chart, and it's not used to determine the distance for the entire activity or any part of it (including laps).

    I am aware the accel is used to augment GPS distance/speed when GPS quality is bad, but I haven't noticed any problems with it.

    But I can see how it would be a problem if the threshold for "bad GPS quality" is too high, and it causes the accel to be used too heavily.

  • Speaking of "GPS track length" vs activity distance, I just converted a recent activity that was recorded as 13.11 km to a course in Connect, as trux suggested. The course was exactly 13.11 km (same as the activity distance).

    I tried the same with a marathon from 2024 that was recorded as 43.15 km (obviously there was GPS error). The course was again same as the activity distance: 43.15 km.

    Unless I am doing something wrong, it seems that my "GPS track length" is the same as my recorded activity distance, at least for those 2 activities.

    I don't deny that you guys are seeing issues, but I am not seeing the same thing. And I have a fairly modern Garmin watch, although it's last-gen.

  • Do you have any data / investigations done so far to support your assumptions or just pure speculation? Can you post some runs made with your Fenix 8 and the data you have inferred from them to help us provide the necessary weight to your conclusions? 

    I'm also curious why do you think the current algorithms of the watch could be designed to use two running paces / stride lengths. 

    Also, are you aware that the watch records data incrementally to the FIT file, including the Running Dynamics data which then rounds up/sums up at the end of the activity? That "Instant pace" or "Instant Stride Length" is being recorded in the file, not just displayed on the screen live. You mean to tell me the FIT file has TWO fields each, for pace and stride length, one instant and one calculated from the GPS distance? Slight smile