• How does Garmin calculate percent grade?

    On a recent mountain bike ride, a couple of us with Garmin devices began to wonder how percent grade is determined by the device. Through a local contact, I was able to go directly to the design source, Jared Bancroft, PhD – Sensors & Algorithms Team Leader.

    Here is what Jared told me:

    Grade is responsive to the slope of the trail or road.  It relies on the distance as determined from GPS and the barometric altimeter sensor.  Basically, it’s a ratio of the change in altitude over distance traveled. The longer the distance, the more averaged the grade is.  We try to use the smallest distance, but if the distance is too small it looks really noisy and the grade bounces all over the place.  Also, anytime GPS isn’t available or sufficiently accurate enough (e.g. heavy tree coverage in the mountains) grade also suffers.  That said, if you have a speed sensor, percent grade comes in more accurately since we can use the speed sensors distance rather than the GPS based distance that may or may not be correct.   

    Grade typically responds within several seconds. It won’t react to large rocks, wheelies, or popping up your front tire.  Its more trying to emulate the slope of the terrain you take.  We have to filter the results so that delays it a bit. 

    Accuracy of percent grade is more based on GPS reception quality than time on the hill. Small dips get averaged out but longer hills are usually pretty good.

    Grade should be consistent on rides.  If you take the same path, it should be the same (both by definition and seen on the device). That said, the distance grade is calculated over, the smoothing filter and the GPS quality all play a role in the final number you see on your device.

    Now you know!


    Be sure to see if I have an easy-to-use training plan for you on my site to help you reach your goals. And, there are more options on the TrainingPeaks site.


  • ← Next Post Previous Post →
  • Comments on this post (3 comments)

    • Werner Brandt says...

      I have always been interested how it is calculated. My intuitions tell me that the gradient shown in real time on my Edge device is a rolling average over maybe 40m. Example: You can see that when going through a longer dip, the gradient is still negative even when you are already going up. It changes after 40m – not depending on time. So the slope changes once you cross the dip but it does not show for the 40m I mentioned before. If you stopped, it is not that the filtering and calculation catches up.

      It would be great if Garmin explained on their website the maths behind these parametres.

      On December 24, 2022

    • David Kelley says...

      Found this searching for info on difference between grade shown on my Garmin Edge 1030 and the grade shown for the same point on ride mapping program, ride with GPS. Does remark on default 100 meter distance for averaging imply that changes in grade shorter than 100 meters will be slow to show on the Garmin?

      On June 12, 2020

    • Geoff Marriott says...

      The response from Jared Bancroft PhD whilst being correct is also somewhat vague in its technicality – he refers to ‘…filter the results….’ but only talks about a slight delay – what is missing from his reply is the detail of the distance over which the [instantaneous] grade is calculated. The shorter the horizontal distance the more extreme the grade readings will be – he alludes slightly to this when talking about ‘….large rocks, wheelies, or popping up your front tire’ [isn’t that a wheelie!!!].
      I have read somewhere that Garmin calculate the instantaneous Grade value based on a rolling horizontal distance of 100metres [not sure if this is true horizontal or distance over the ground – for which the difference is not significant being only 2metres at 20%]

      So the critical data value is 100metres which I do not believe can be changed [certainly not on the Edge 820 or 910XT which I own].

      There are a number of Garmin IQ apps that calculate Grade and do allow customisation of the horizontal (distance over ground) value. I have found that a value of 50metres gives a better representation of the grade you actually experience.

      I hope this helps

      On August 14, 2018

  • Leave a comment