This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Garmin Connect: Bike Cadence - please calculate median instead of mean

Former Member
Former Member
Dear all,
many of us use Garmin devices to keep track of the cycling technique. It is known, that an optimal bike cadence is between 80 and 100 rpm. My own typical cadence is about 85, but when I look at the activity in Garmin connect, often I see ... "average cadence 70 rpm". The reason: we do not pedal on descents or during braking! At these periods the cadence is ZERO, which strongly pulls down the average value. Those who look at the average value, get a totally WRONG estimate of their cadence. Average cadence value is a pretty USELESS metric!

I suggest to change the way how the stats are calculated, either:
  • Exclude all points where the cadence is ZERO, then calculate the average, or
  • Keep all points, but calculate the MEDIAN value. This would show the TYPICAL, most common bike cadence - what we want to see!


I hope that guys at the development team could change this. It's probably just one line of code somewhere, but a HUGE aid for all cyclist who care about the cadence.
  • Are you sure it includes zero cadence values in its average? Personally, I would not use the median as that can REALLY distort results such as:

    Cadence: 30, 30, 30, 35, 90, 90, 100 would yield 35 as a median. Average would be 58 which makes much more sense to me.
  • A histogram is a useful way to look at stats like this. Golden Cheetah amongst others uses histograms for a range of cycling metrics.
  • we do not pedal on descents or during braking! At these periods the cadence is ZERO, which strongly pulls down the average value.


    So mark the start of a new lap manually at the beginning of your zero-cadence descent, and another new lap at the bottom. You can then easily review the lap-average cadence for each section of the ride that you care about. The way you described it, any scalar metric across the whole ride would be at best meaningless and at worst misleading anyway, so don't even worry about looking at the summary figure for the entire activity record.
  • Former Member
    0 Former Member over 7 years ago
    Are you sure it includes zero cadence values in its average?

    Yes, it does

    Personally, I would not use the median as that can REALLY distort results such as:

    Cadence: 30, 30, 30, 35, 90, 90, 100 would yield 35 as a median. Average would be 58 which makes much more sense to me.


    Well, I disagree with this, since the example you provided is an extreme case. Median value would stay stable unless more than 50% of your data points become outliers (like zeroes).

    A histogram is a useful way to look at stats like this. Golden Cheetah amongst others uses histograms for a range of cycling metrics.

    Indeed, a histogram is a much better tool here, but not offered by Garmin connect either.

    Real data
    To illustrate my point, I took my recent bike training, exported into TCX and extracted the cadence values. The dataset has 8640 data points, 12.5% out of them are zeroes. I calculated mean and median values for all points vs only non-zero points.

    * mean: 76.7 rpm
    * non-zero, mean: 87.7 rpm
    * median: 88 rpm
    * non-zero, median: 90 rpm

    You see that median is quite stable here, while mean is not. Mean of non-zero points, however, has quite a reasonable value.

    Finally, there is a histogram of the same dataset. You clearly see that the mean value of 76.7 rpm is misleading.




    So mark the start of a new lap manually at the beginning of your zero-cadence descent...

    This sound too impractical to me... If a computer could do the job of calculating the stats correctly, why bother?
  • If a computer could do the job of calculating the stats correctly, why bother?


    The computer is already doing the job of calculating the metric correctly for the timed activity; you just don't like what it does and disagree with its fit for the purpose to which you want to put it.
  • Computer says no

    I agree the current method is correct, but not particularly useful for any purpose. I submitted an idea to Garmin for them to do something about this.
  • Former Member
    0 Former Member over 7 years ago
    FWIW If you use Strava along with the StravistiX extension in Chrome you get median along with a histogram of cadence along with histograms of a number of other parameters.
  • Former Member
    0 Former Member over 7 years ago
    I submitted an idea to Garmin for them to do something about this.

    Thank you!

    FWIW If you use Strava along with the StravistiX extension in Chrome you get median along with a histogram of cadence along with histograms of a number of other parameters.


    Wow, that's awesome! Never heard about this extension. Thank you!
  • Sorry to necro this thread, but if you need average cadence, not including zeroes, in real-time [as a data field] and you want it recorded to your FIT file, I made a simple data field app that might help you with that, as long as you have a newer device that supports Connect IQ 2.
    i.e. Pretty much any device that supports apps, except FR230/235, FR630, FR920XT, Vivoactive, Fenix 3 (HR), D2 Bravo
    (Vivoactive HR is fine)

    AppBuilder:
    https://apps.garmin.com/en-US/apps/d...a-9b8485d2fc80

    AppBuilder lets you specify practically any math expression you want, and most Garmin native fields are available. The AVG function, which you would need for your purposes, is only available for Connect IQ 2 devices.

    (Because of issues with the forum, please replace square brackets with round brackets)

    For example:
    Average (mean) cadence, not including zeroes:
    AVG[Cadence]
    Average cadence, including zeroes:
    AVG0[Cadence]
    Average cadence, not including any values below 10 (to pick a number at random):
    AVG[IF[Cadence GTE 10, Cadence, null]]

    If you enable the "Record to FIT file" option, the formula's values during the activity will be recorded to FIT file (to the activity graph), and the final value will be recorded to the activity summary.