Go Back  Bike Forums > Bike Forums > Electronics, Lighting, & Gadgets
Reload this Page >

Strava "average speed" inconsistencies

Search
Notices
Electronics, Lighting, & Gadgets HRM, GPS, MP3, HID. Whether it's got an acronym or not, here's where you'll find discussions on all sorts of tools, toys and gadgets.

Strava "average speed" inconsistencies

Thread Tools
 
Search this Thread
 
Old 10-25-21 | 09:31 AM
  #1  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Strava "average speed" inconsistencies

Maybe this has been covered before, but does anybody know how Strava calculates average speed in its different displays? The topline value seems to be consistently a little lower than the summary value displayed in the "Analysis" feature, and also lower than what my Wahoo will show at the end of a ride.

For example, this is the summary value for a recent ride: 17.9 MPH:




While the Analysis shows 18.1 MPH average:



This difference happens consistently on most all rides.

It's in the noise, I know, but the offset is systematic (always lower in the topline value), and I'm just wondering if anybody knows why this happens.
MinnMan is offline  
Reply
Old 10-25-21 | 09:35 AM
  #2  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

(I'm not asking why the Wahoo and Strava might be different - different processing of the raw gps data can definitely lead to small differences in averages- particularly in how the different algorithms process the time below the threshold speed (2 mph, 4 mph, etc.). But it seems that Strava itself is processing the same data differently for the two average speed calculations?)
MinnMan is offline  
Reply
Old 10-25-21 | 10:15 AM
  #3  
Iride01's Avatar
Facts just confuse people
Titanium Club Membership
5 Anniversary
Community Builder
Community Influencer
 
Joined: Jul 2017
Posts: 19,341
Likes: 7,062
From: Mississippi

Bikes: Tarmac Disc Comp Di2 - 2020

Maybe/probably the average gets calculated for each page. And maybe the way they derive other data for that page affects what they show for an average.

I don't remember if the totals accumulated on the device are actually transferred in the data file. But also they might be sometimes using that value or basing their calculation on a device accumulated total that might well be different from the summed up GPS position data and timestamps in the file.
Iride01 is offline  
Reply
Old 10-25-21 | 10:31 AM
  #4  
Thread Killer
15 Anniversary
 
Joined: Aug 2008
Posts: 13,140
Likes: 2,163
From: Ann Arbor, MI

Bikes: 15 Kinesis Racelight 4S, 76 Motebecane Gran Jubilée, 17 Dedacciai Gladiatore2, 12 Breezer Venturi, 09 Dahon Mariner, 12 Mercier Nano, 95 DeKerf Team SL, 19 Tern Rally, 21 Breezer Doppler Cafe+, 19 T-Lab X3, 91 Serotta CII, 23 3T Strada

I’ve noticed the variation at times as well, however, looking back at recent rides, it is not consistent, and sometimes (usually, at least recently) the two averages (in Overview and Analysis tabs) match.
chaadster is offline  
Reply
Old 10-25-21 | 11:02 AM
  #5  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by chaadster
I’ve noticed the variation at times as well, however, looking back at recent rides, it is not consistent, and sometimes (usually, at least recently) the two averages (in Overview and Analysis tabs) match.
For me, it's always "faster" on the analysis page unless the ride is short, in which case they may be the same. Except of course, Zwift rides. Those are always the same - I assume because the differences in data processing are most important for stop/starts, and there aren't any of those in Zwift.

The effect might be device dependent.

Oh yeah, and Zwift "speeds" are pretty much meaningless to begin with.

Last edited by MinnMan; 10-25-21 at 11:06 AM.
MinnMan is offline  
Reply
Old 10-25-21 | 11:05 AM
  #6  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by Iride01
Maybe/probably the average gets calculated for each page. And maybe the way they derive other data for that page affects what they show for an average.

I don't remember if the totals accumulated on the device are actually transferred in the data file. But also they might be sometimes using that value or basing their calculation on a device accumulated total that might well be different from the summed up GPS position data and timestamps in the file.
Maybe so, though it seems computationally inefficient for Strava to recalculate the raw data for each different page display. Maybe their resource costs aren't much affected by optimizing CPU use.
MinnMan is offline  
Reply
Old 10-25-21 | 11:11 AM
  #7  
Thread Killer
15 Anniversary
 
Joined: Aug 2008
Posts: 13,140
Likes: 2,163
From: Ann Arbor, MI

Bikes: 15 Kinesis Racelight 4S, 76 Motebecane Gran Jubilée, 17 Dedacciai Gladiatore2, 12 Breezer Venturi, 09 Dahon Mariner, 12 Mercier Nano, 95 DeKerf Team SL, 19 Tern Rally, 21 Breezer Doppler Cafe+, 19 T-Lab X3, 91 Serotta CII, 23 3T Strada

Originally Posted by MinnMan
For me, it's always "faster" on the analysis page unless the ride is short, in which case they may be the same. Except of course, Zwift rides. Those are always the same - I assume because the differences in data processing are most important for stop/starts, and there aren't any of those in Zwift.

The effect might be device dependent.

Oh yeah, and Zwift "speeds" are pretty much meaningless to begin with.
Hmm. Yeah, I don’t know how to account for it at all, and I have recent rides of both long (e.g. 60mi) and short (e.g. 25mi) where the two values are the same, and I’ve not earlier noticed any breakdown along those lines.

I use a Wahoo Bolt, FWIW.
chaadster is offline  
Reply
Old 10-25-21 | 02:30 PM
  #8  
Seattle Forrest's Avatar
Senior Member
 
Joined: Mar 2010
Posts: 23,208
Likes: 10,653
From: Seattle, WA
I wouldn't be surprised if the top number came from the data of the file, and the average you see next to the speed chart was the average of the values in the chart. You would expect that to be the same thing, but there may be some smoothing, ignoring of zeros, or summarization that happens before the numbers are converted into a graph.
Seattle Forrest is offline  
Reply
Old 10-25-21 | 03:53 PM
  #9  
Bald Paul's Avatar
Senior Member
5 Anniversary
 
Joined: Sep 2017
Posts: 2,368
Likes: 2,483
From: Upstate SC
It looks like you stopped several times during your ride. Could the difference be "moving average" vs. "trip average"? If you rode, say, 20 miles at 20MPH, but stopped halfway through for a 30 minute break, moving average is 20mph, but trip average is a bit over 13.
Bald Paul is offline  
Reply
Old 10-25-21 | 05:38 PM
  #10  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by Bald Paul
It looks like you stopped several times during your ride. Could the difference be "moving average" vs. "trip average"? If you rode, say, 20 miles at 20MPH, but stopped halfway through for a 30 minute break, moving average is 20mph, but trip average is a bit over 13.
No, those are both moving average speeds.
MinnMan is offline  
Reply
Old 10-25-21 | 05:50 PM
  #11  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by Seattle Forrest
I wouldn't be surprised if the top number came from the data of the file, and the average you see next to the speed chart was the average of the values in the chart. You would expect that to be the same thing, but there may be some smoothing, ignoring of zeros, or summarization that happens before the numbers are converted into a graph.
If the x-axis is distance, rather than time, the graphically "averaged" velocity is nonsense. You know that. It's possible that the algorithm calculates a graphical average with elapsed moving time as the independent variable, And then maybe smoothing could introduce a difference, though I don't see why that difference would be systematic as compared to the mathematically rigorous quotient (total accrued distance/total moving time). "Ignoring zeros" would amount a different extraction of "moving time" as compared to another calculation, and though this is possible, one wonders why they would have two different methods for calculating moving time - which after all, has to be extracted from the same original data, whether they plot it or not.

Clearly *something* is different and smoothing is a good suspect, but again it's odd that it would result in a systematic bias.
MinnMan is offline  
Reply
Old 10-25-21 | 06:01 PM
  #12  
SalsaShark's Avatar
Senior Member
 
Joined: Nov 2014
Posts: 631
Likes: 355
From: Eastern Iowa

Bikes: 2014 Trek Allant drop bar conversion, modified Schwinn MTN commuter, 2015 Trek 520, Soma ES, Salsa Journeyman, 1980 Trek 414

I checked a bunch of my rides, and the numbers for average speed matched exactly in both places on every ride. No inconsistencies here.
SalsaShark is offline  
Reply
Old 10-25-21 | 06:16 PM
  #13  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by SalsaShark
I checked a bunch of my rides, and the numbers for average speed matched exactly in both places on every ride. No inconsistencies here.
Interesting. And thanks for checking.

it could be device dependent, but like Chaadster, I'm using a Wahoo Element Bolt. Could be different firmware versions or whatnot.
Here are a couple more examples








MinnMan is offline  
Reply
Old 10-25-21 | 08:11 PM
  #14  
black_box's Avatar
Fax Transport Specialist
Titanium Club Membership
15 Anniversary
 
Joined: May 2008
Posts: 1,001
Likes: 728
From: chicago burbs

Bikes: '17 giant propel, '07 fuji cross pro, '10 gary fisher x-caliber

I've had the Element Bolt for just over 4 years now and have noticed similar differences in what is displayed on the Bolt when I finish the ride vs. what is shown when uploaded to Strava. I don't think the difference has ever been more than 0.2 mph, which is pretty small, in fact 1% of 20 mph. 1% seems like a reasonable level of accuracy as that is what a typical power meter would give you as well. My guess is that it's either a rounding difference somewhere or due to more accurate elevation and/or route information that Strava has gathered. GPS is very good, but sometimes it misses a datapoint or two which could be added back in with some sort of path smoothing algorithm. I should add, I think I remember having the same discrepancy with my Garmin Edge 500.
black_box is offline  
Reply
Old 10-26-21 | 10:05 AM
  #15  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by Seattle Forrest
I wouldn't be surprised if the top number came from the data of the file, and the average you see next to the speed chart was the average of the values in the chart. You would expect that to be the same thing, but there may be some smoothing, ignoring of zeros, or summarization that happens before the numbers are converted into a graph.
Just thinking....if the "Analysis" is a time-based graphical average, and if the smoothing affects negative speed spikes (i.e., stopping) more than it affects accelerations (going down hill), because the former are more sudden, (have a higher Fourier frequency) then that would explain why smoothing has a systematic bias to make the graphical average "faster".

What this comes down to is in fact the same as differences between Strava and "average speeds" reported directly on the devices (Wahoo, Garmin, etc.). These are all affected by the way each algorithm deals with stop/starts.

I just find it odd that Strava has two ways of filtering stop/starts out of the "moving time" data that are internally inconsistent.
MinnMan is offline  
Reply
Old 10-26-21 | 10:28 AM
  #16  
Iride01's Avatar
Facts just confuse people
Titanium Club Membership
5 Anniversary
Community Builder
Community Influencer
 
Joined: Jul 2017
Posts: 19,341
Likes: 7,062
From: Mississippi

Bikes: Tarmac Disc Comp Di2 - 2020

Programmers use many different buckets to hold values in. Over years as programs get modified, sometimes new buckets are made to hold similar but not quite the same info and a programmer incorrectly grabs the wrong field to use in the various calculations. Some times, the programmers have no idea what the information they are putting on the screen really means.

I'd just put it up to poor Q&A which actually is quite common from things I've been involved with. Sometimes it's a choice of economy because the changes required might actually mean the whole thing has to be tested again as they might break something else or just be too time consuming to re-test.

I once was part of a project that never went live to my knowledge because although the product we made worked perfectly to the best of our knowledge the company that was created for, never could test it completely before the next software release of the OS, databases, or other products used for the entire product. And this was just a IVR that you call in and talked too. But the complexities on the backend the user couldn't see were enormous.
Iride01 is offline  
Reply
Old 10-26-21 | 10:54 AM
  #17  
Newbie racer
 
Joined: Feb 2018
Posts: 3,404
Likes: 1,574

Bikes: Propel, red is faster

It takes paid Strava to do, but I setup private segments along routes I do a lot to track the speed stuff better. I know where the stops/pauses are. Overall route average doesn't interest me due to the varying nature of it. It's only really useful in a plus or minus 5 to 10min kind of way for being able to choose a route to ride based on how long you have available to you.

The private segments are a better indicator as they auto list prior personal tries, with power used. So you can see how you do.

Average speed is an age old trapping of Strava to worry about. For needing it to plan routes, it's useful as-is without worrying about losing a couple tenths of a mph on a ride.

Funny story, used to have a guy in the A group set his autopause on a Garmin up in such a way it would ignore anything under like 8mph. No idea how you do that. Either way, several of the little hills on the route he'd be climbing slower than 8mph for 30 seconds at a time. His rides were always shorter than everyone else for this reason by an obvious amount. Excuse he gave was we weren't really doing anything if going slower than that.

One thing I do pay attention to for "good route" versus "bad route" is moving time versus total. If there was no cafe' stop but the delta there is large, bad route. If the delta is a few seconds, good route. More riding less waiting.
burnthesheep is offline  
Reply
Old 10-26-21 | 11:02 AM
  #18  
Seattle Forrest's Avatar
Senior Member
 
Joined: Mar 2010
Posts: 23,208
Likes: 10,653
From: Seattle, WA
Originally Posted by MinnMan
If the x-axis is distance, rather than time, the graphically "averaged" velocity is nonsense. You know that. It's possible that the algorithm calculates a graphical average with elapsed moving time as the independent variable, And then maybe smoothing could introduce a difference, though I don't see why that difference would be systematic as compared to the mathematically rigorous quotient (total accrued distance/total moving time). "Ignoring zeros" would amount a different extraction of "moving time" as compared to another calculation, and though this is possible, one wonders why they would have two different methods for calculating moving time - which after all, has to be extracted from the same original data, whether they plot it or not.

Clearly *something* is different and smoothing is a good suspect, but again it's odd that it would result in a systematic bias.
I don't really use Strava, in Garmin you can make the X axis time or distance, but that's not what I mean. What I mean is this. You have more data points in your file than you have pixels on the X axis on that chart. Each pixel in the chart represents some amount of time, it might just be the highest or lowest value. My suspicion as a developer who fixes bugs for a living is that the average speed shown next to the chart comes from the Y values and they're being summarized incorrectly. I don't have a way to test that hunch, but in terms of how software is put together, it feels pretty likely.
Seattle Forrest is offline  
Reply
Old 10-26-21 | 11:38 AM
  #19  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by Seattle Forrest
I don't really use Strava, in Garmin you can make the X axis time or distance, but that's not what I mean. What I mean is this. You have more data points in your file than you have pixels on the X axis on that chart. Each pixel in the chart represents some amount of time, it might just be the highest or lowest value. My suspicion as a developer who fixes bugs for a living is that the average speed shown next to the chart comes from the Y values and they're being summarized incorrectly. I don't have a way to test that hunch, but in terms of how software is put together, it feels pretty likely.
Yes, I got that, and I understand that you know what you are talking about. OTOH, my point, developed disparately across this thread, is that smoothing alone doesn't explain a *systematic* bias, unless "slow" data are preferentially filtered by the smoothing. There is reason (see post above) to suspect that this could be the case.
MinnMan is offline  
Reply
Old 10-26-21 | 12:28 PM
  #20  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by Seattle Forrest
I don't really use Strava, in Garmin you can make the X axis time or distance, but that's not what I mean. What I mean is this. You have more data points in your file than you have pixels on the X axis on that chart. Each pixel in the chart represents some amount of time, it might just be the highest or lowest value. My suspicion as a developer who fixes bugs for a living is that the average speed shown next to the chart comes from the Y values and they're being summarized incorrectly. I don't have a way to test that hunch, but in terms of how software is put together, it feels pretty likely.
(Yes, I know I'm beating a dead horse, etc.)
One complication is that the numbers to the side of the plot always faithfully record the same maximum speed as the maximum speed in the summary. They are never smoothed or filtered out. AND, if one looks carefully at the trace of pixels in the plots, those maximum speeds are rarely and possibly never actually plotted. The plotted speeds are indeed filtered. But the values of Max and Avg that appear to the left of the plot don't seem to come from the plots themselve.
MinnMan is offline  
Reply
Old 10-26-21 | 12:43 PM
  #21  
Seattle Forrest's Avatar
Senior Member
 
Joined: Mar 2010
Posts: 23,208
Likes: 10,653
From: Seattle, WA
This is not what's going on for you, but misery loves company and sometimes birds of a feather... In Garminland there's a 24 hour HR chart, with your movement level and recorded activities superimposed over it. That info comes from your all day data, which they seem to store in 5 minute increments. So my daily max HR is always reported lower than what it actually hit going up the short but punchy hills around here.

What I would do personally if I really wanted to know is open the fit file in Golden Cheetah to get the raw data, bring it into Excel or SQL, and then try to come up with their numbers.
Seattle Forrest is offline  
Reply
Old 10-26-21 | 12:50 PM
  #22  
MinnMan's Avatar
Thread Starter
Senior Member
15 Anniversary
Community Builder
Community Influencer
 
Joined: Aug 2009
Posts: 6,761
Likes: 5,380
From: Minneapolis

Bikes: 2022 Salsa Beargrease Carbon Deore 11, 2020 Salsa Warbird GRX 600, 2020 Canyon Ultimate CF SLX disc 9.0 Di2, 2020 Catrike Eola, 2016 Masi cxgr, 2011, Felt F3 Ltd, 2010 Trek 2.1, 2009 KHS Flite 220

Originally Posted by Seattle Forrest

What I would do personally if I really wanted to know is open the fit file in Golden Cheetah to get the raw data, bring it into Excel or SQL, and then try to come up with their numbers.
Yeah, I know I can do that. But ultimately, I'm really just doing two typical BF things - expressing curiosity and whining. The "average speed" is more or less a meaningless number, as others have said, and all the more so for rides with start/stops. You will always get different numbers if you don't have a universal method for establishing "moving time".

The summary value is the ones your friends see, and it's always lower than the one in the analysis section. NBD.
MinnMan is offline  
Reply
Old 10-26-21 | 01:11 PM
  #23  
noisebeam's Avatar
Arizona Dessert
20 Anniversary
 
Joined: Jun 2004
Posts: 15,029
Likes: 2,170
From: AZ

Bikes: Cannondale SuperSix, Lemond Poprad. Retired: Jamis Sputnik, Centurion LeMans Fixed, Diamond Back ascent ex

I see this too




If I calculate my average speed based on moving time provided in summary (1:07:58) over 24.05 miles I get 21.2mph, remove 30s from moving time and it is 21.4.
The higher analysis value could be from removing movement recorded during full extended stops - a subset of what SF is suggesting.

Last edited by noisebeam; 10-26-21 at 01:18 PM.
noisebeam is offline  
Reply

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off



Contact Us - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service -

Copyright © 2026 MH Sub I, LLC dba Internet Brands. All rights reserved. Use of this site indicates your consent to the Terms of Use.