parallax background

Strava Elevation Woes

The Strava Effect
March 31, 2017
1UP Bike Rack Mini-Review
April 6, 2017
 

It's a basic principle really... I want to know how far I rode and how much elevation was gained throughout said ride. The realities of several factors combine to make this endeavor more difficult than it should be.

T he pursuit of accurate riding data is a slippery slope, and at some point, you have to settle for "good enough." Conversely, I know several serious riders that don’t track their rides at all and think it’s sacrilege. To each his own. As an admitted tech-head and lover of all things precision (don’t get me started on tools), I have spent a decent amount of time learning about GPS and barometric altimeter technology and how Strava/Garmin deal with them.

The biggest issue is accurately calculating elevation gain. Many people assume that since GPS is fairly accurate in locating your position in 2D (where you are on a map), that it should also be able to triangulate your exact elevation. Unfortunately, that’s not the case. GPS was designed for 2D location finding, and while it can roughly find your elevation, it’s not terribly accurate, and can jump around substantially. For much better elevation gain/loss data, your device must have a barometric altimeter. A barometric altimeter measures altitude not based on GPS satellite signals, but by measuring atmospheric pressure (which changes reliably as you vertically move up or down). You would think that you’d be golden if you had a decently accurate GPS device that also had a barometric altimeter. But alas, Strava doesn’t want to make things too easy.

For reasons unknown to me, Strava tightly regulates which devices it will "trust" elevation data from. This baffles and irritates me to no end. Instead, Strava really has a thing for its Digital Elevation Model (DEM). A DEM is basically a glorified and digitized topographic map. By laying your 2-dimensional GPS track on top of its DEM map, Strava can calculate your exact elevation at any given point, and thus calculate the total elevation gained and lost during a ride or run. Sounds pretty awesome right? For sure, with the glaring and unforgivable exception being that the DEM map itself is not all that accurate. If you search the interwebs, you’ll find thousands of complaints about the accuracy of Strava’s elevation calculations.

"At this time we do not have a device list of all barometric altimeter trusted devices. For most manufacturers if the device falls under a "fitness" category for that manufacturer then the device is or is currently in the queue of being added to our system as a trusted device."

- Strava Rep "Rudolph"

 

I have read that Strava’s DEM has a resolution of 10 meters. Meaning that every 10m square of land is assigned a single absolute elevation. That’s not too bad, all things considered. If you’re going up a steep hill, the elevation will jump rapidly from one 10m square to the next, but the overall elevation GAINED should be the same. You will lose elevation gain/loss from smaller things like rollers, creek crossing, obstacles, etc. The real issue is that the elevation values assigned to all of those points in the DEM are not very accurate to begin with. Plus you have constantly changing landscapes from construction, new trails, mother nature, etc.

For example, so far in 2017, I have "lost" almost 4,000 feet (or about 15% average) in elevation gain when comparing my Garmin barometric elevation data with Strava’s own elevation calculations from those same rides. I don’t know about you, but four-thousand feet is a big deal to me, especially considering that’s only from 15 rides this season.

And the reason Strava won’t honor my Garmin Oregon 750t’s barometric altimeter data? Because it’s not on their "approved" device list (technical note below on this). So while Strava WILL accept GPS data from any wonky device, it will NOT accept elevation data unless your device is in their Little Black Book. Which devices are on that "approved" list? Excellent question! The answer I got from a Strava rep is that they do not keep such a list, and so it is unknown exactly which devices will work and which will not...

What this means is that even though I’m using an expensive, highly accurate, waterproof, outdoor GPS and altimeter, Strava doesn’t give a crap and automatically discards the embedded elevation data that the Garmin Oregon records and replaces it with its own estimate based on the DEM. No bueno. Living out here in the foothills of Colorado, this issue means that for almost every ride, Strava is under-reporting my elevation gained. I have seen plenty of reports of people having up to 50% over-reporting on elevation gain too. It should be noted that the same thing happens when you use the Strava app on your phone (even if you phone has a built-in barometric altimeter like the iPhone); the Strava app does not record altimeter data.

Garmin Connect - 1,608'

20170405_1

Strava - 1,141'

20170405_2
 

In the above screenshots, you’re looking at exactly the same ride data recorded by my Garmin Oregon 750t. On the left is the Garmin Connect page showing exactly what the GPS device itself showed. On the right is what happened when I uploaded this same file to Strava. I even tried changing the device name, which didn’t work (see below). I lost 467’ in elevation gain when uploaded to Strava. While that’s not a ton on it’s own, consider that that is almost a 30% difference. When that happens on every ride, your year-end Strava stats are going to be very off, and if your stats aren't accurate, what is the point of using Strava to begin with?!

Technical note specifically regarding the Garmin Oregon 7xx series: Apparently Garmin does not save the "Device ID" inside of the activity FIT it creates once you save your ride/run. Because of this, Strava has no way of knowing what device recorded it. Furthermore, since a device must be on the "approved" list to enable altimeter data to be used on Strava, if there is no device listed, it is automatically discarded. To get around this, I was using Fit File Tools for many months to edit the FIT file and change the device name. This would allow me to trick Strava into thinking I used an "approved" device like the Garmin Fenix 3 or Edge 810, and would allow the barometric altimeter data. As of December 2017 this quietly stopped working and it was several weeks before I noticed. Aside from extreme irritation with both Garmin and Strava on this issue, that has precipitated me to get the new Garmin Fenix 5X watch, more on that in a later post.

2 Comments

  1. Emeka Ogbugo says:

    Sorry, if I am a bit off-track. Would you or any of your readers be in a position to advise on the following issue I have with my Fenix 5x. The data it records for a bike ride normally includes temperatures (maximum, average and minimum). The issue I have is that these are my body temperatures and not the ambient temperatures of the ride. Is there any where in the bike activity profile where this can be tweaked? Thank you.

    • jmvcolorado says:

      Hey Emeka. This cannot be tweaked, unfortunately. Since the temperature sensor is built-in to the watch body, which sits against your skin, there is no way for it to know what your body temperature is versus the ambient air. I’ve had other watches (like higher-end Casio G-Shocks) with the same issue. It’s more an issue of physics than poor design. To measure air temperature accurately, the sensor must be away from your body heat.

      There are only two solutions: wear the watch off your body (like strapped to a pack), or get an external sensor. Wearing the watch off your wrist defeats the purpose in my opinion, but some riders do strap it to their handlebars (Garmin even makes a mount specifically for that). Or you can get Garmin’s wireless temperature sensor, which you can mount to your pack or shoe and leave the Fenix 5 on your wrist.

Leave a Reply

Your email address will not be published. Required fields are marked *