You’ve just completed your out and back bike ride out on the flatlands of Florida, yet your GPS device is telling you that you went out and climbed the rocky mountains. Why is that you ask? Well, the answer is…it depends.
Outside of ‘Why is my HR strap acting erratic”, the next most asked question I get is ‘Why is my elevation chart all dorked up?’ Thus…this post.
In order to explain that though in something other than a one-liner, I’m going to dive into the two different type of athletic devices that measure elevation out there, and what causes issues with each of those. Then I’ll talk about how to fix it (good news: it’s easy). Don’t worry, I’ve tried to keep it all pretty easy to understand – despite the fact that behind the scenes the math is actually pretty hairy.
Types of sport devices
GPS based altimeters:
The most common type of altimeter found in consumer grade fitness devices today is one based on GPS coordinates. This includes units such as the Garmin Forerunner series (305/405/310XT/110), but this doesn’t include most of the Edge based series, which I’ll talk about in the next section.
In a GPS-based altimeter, the unit uses a whole crap-ton of math to determine exactly how high you are. Without getting into all the details, elevation is determined by utilizing the simple GPS coordinates and a known value called the ‘reference ellipsoid’ to determine your height about sea level, to varying degrees of accuracy.
The challenge here though is that with GPS altimeters there can be numerous inconsistencies introduced by a set of different sources. First, is the base error rate within GPS itself – which horizontally is usually a few meters, but vertically is significantly more. Then you add in any earth obstructions (buildings, trees, cows, etc…) that further increases the error rate. Next, the reference ellipsoid can actually introduce further deviations. Meaning, you could be standing at sea level, yet the reference ellipsoid may assume that that area has a deviation of –4 meters. As you can see, this quickly starts to pile up, generating plenty of errors for even the simplest of out and back courses. Note how upon closer inspection of the below graph, they aren’t the same if split half-way, even though this was an out and back run course.
Now, for most sports applications this isn’t a terribly huge issue. It’s not perfect, but it’s functional. In some sport applications like Skydiving or Hang gliding, the data comes out all wonky. Before we get to the fixes though, let’s go into the next type of devices.
Compared to GPS-based altimeters, barometric altimeters are downright simple, mostly because they’ve been around for quite some time. They utilize atmospheric pressure to determine your elevation. As you go up, atmospheric pressure decreases, and based on that and a known calibration factor you can determine exactly how high above sea level you are.
Barometric altimeters from a sports standpoint tend to give you graphs that are ‘shaped’ correctly – meaning when you go up the graphs show an incline, and when you go down they show a decline. The challenge though with barometric based devices is that the baseline altitude can sometimes be incorrect. This is because normally barometric altimeters are calibrated off of a known barometric pressure reading. In airplanes for example, this ‘calibration factor’ is constantly being tweaked as the pilot flies the plane.
Given you probably don’t have air traffic control relaying the latest altimeter setting to you during you run, newer units utilize GPS-assisted altimeters that can establish a starting point using GPS. Once that’s established they then have the remainder of the elevation data recorded via the barometric altimeter onboard. Sorta a checks and balances system.
In fact, the Edge 500 even goes a step further and allows you to set known elevations for various GPS points. So for example, if you know your house is at 609 feet, then you can set it such that at that lat/long it will utilize your specified elevation as your default one.
From the Garmin line, it’s the cycling devices that get the added love. The Edge 500 and Edge 705 use barometric altimeters.
In general, as a result elevation graphs from the Edge series of devices tend to be quite accurate. And a good litmus test of that is when looking at any elevation chart where you start and end in the same place is to validate that your ascending and descending elevation are roughly the same, like the below:
Elevation Correction Options:
The great news here is that over the past few years a number of software applications have stepped in to help ‘fix’ any bad data points that show up in your graphs. This data is generated by various organizations, usually government in nature such as NASA and USGS, that has known elevation data for any given set of coordinates. This data is typically generated using radar that’s bounced off the earth’s surface from satellites and then measured to determine exact elevation. This is great for correcting any activities that are ground-based (running, cycling, etc…), but less ideal of course for correcting activities that are airborne (flying, skydiving). Hence why those activities are typically done with barometric altimeters.
By default Garmin Connect will now do elevation correction on all imported activities from devices that don’t have a barometric altimeter, which is pretty cool. What’s even cooler is that you can turn it on or off as you see fit.
On the left hand side below your device type, you can see whether or not elevation correction is enabled for that given activity. With it disabled, you’ll see a bit of a different picture:
Note that Garmin Connect will automatically set the elevation correction to ‘Disabled’ for devices that have barometric altimeters, such as the Edge 500:
Sport Tracks can do elevation correction via the elevation correction plug-in, which is available free. I talk about this plug-in in my ‘Top 10 plug-ins’ post, but here’s the skinny… After installation it’ll go ahead and add a settings control panel for elevation correction:
But you can largely ignore that once installed, as I have it set to simply correct all activities automatically, which makes it look like this:
And you can turn it off per-activity as well if you want to:
Simple, yet effective.
While Training Peaks online (TrainingPeaks.com) doesn’t have elevation correction today, you can go ahead and utilize WKO+ to do elevation correction via a Training Peaks account. Meaning, if you have a Training Peaks account, you can utilize that to access TP’s online data store of elevation data from USGS:
(Access via the Edit > Corrections menu)
In addition to the Garmin Connect, Sport Tracks and WKO+, numerous other sites do elevation correction as well – such as RunKeeper, MapMyRun/Bike, and Daily Mile.
So with that you now have the power to make all your elevation graphs look pretty (which is what really matters), and also understand exactly what’s going on behind the scenes (less important). In general, if you want the most accurate elevation data you can get, you’re going to have to go with the Edge 500 or Edge 705 devices. But if you want portability and versatility, you’re probably better off sticking with the Forerunner line and then correcting the elevation later on the computer.
As an aside, if you found this post interesting – you’ll probably find my giant stash of ‘How to’ and ‘Why’ type posts pretty interesting also. They’re all stashed away in my ‘How to’ section.
Great post – VERY informative. I use my Forerunner 305 for running, so I don’t really utilize the elevation data for much, but I have often wondered how it does the calculation, and why it often doesn’t look the way it felt.
Thanks for the Info!
One potential source of error in the elevation correction are bridges and tunnels. Usually USGS data is used and this data records the earths surface and doesn’t account for built environment. So when you go over a bridge the correction will show you going down and then back up again. Another source of error is that the horizontal data can be off by as much as 9 feet and if you are in a hilly area, nine feet to the left or right of you may be up or down a hill. So this can also create elevation errors even when using elevation “correction.”
My Edge 305 does pretty good in computing elevations except on stormy days. As you might guess, the changes in barometric pressure when a front moves in creates some unexpected hills!
FYI, the Edge 705 does support elevation profile correction within 30 meters from a known start point. All you need is a waypoint with elevation on it. Which is quite easy to do.
As for Barometric Altimeters go, when the weather changes, I see myself “going down an 80% slope”, and the elevation quickly drops to 100 meters below sea level! This is when I wished that the Edge 705 had a manual adjustment that the Oregon 300 or the Dakota 20 provide.
Also, if I rested too long in one place, you will see a sudden “cliff” from where you are.
Barometric Altimeters, not perfect, but good enough for the job to make smooth graphs. But sometimes I wish I can turn it off.
Ray – a tremendous amount of your vertical error is due to the datum being used in the currently available GPS geoid model.
Most datums in the US (and especially abroad) were created pre-satellite era. NOAA National Geodetic Survey is currently running a height modernization project (see: link to ngs.noaa.gov), which will hopefully improve vertical accuracy throughout the US.
Thanks for the very useful explanation of barometric altimeters. We sell this type of altimeter in either a digital or analog set up — Red Oaks Trading
Thanks for the detailed account of the Garmin elevation data calculation. A question concerning the barometric elevation calculation: I was under the impression that the calculation was made not based on the starting point elevation, but on an elevation reading made just moments before the calculation is made. E.g., let’s say you are 30:00 minutes into a ride and at that point are at 1,000′. The barometer then notes that at 30:10 you ascended 10 ft. So, it reports a 10′ ascent based on an altimeter reading taken at 30:00, not one at 0:00. Even if there had been an uncorrected change in ambient barometric pressure in the 30 minutes from the start, there would be virtually no change from 30:00 to 30:10. Is this not correct?
Also, I have been using a Garmin Edge 305 for about two months. When comparing the raw barometric readings to the corrected readings, there is an error of 30-50%. On the other hand, my Avocet Vertech records an ascent that is within a few percent of the corrected readings. Any idea why the Edge 305’s raw data would be so inaccurate? Garmin has already replaced the unit once, and the second unit performs just as the first.
This comment has been removed by the author.
I’ve been reading a lot of information about elevation issues related to the Garmin GPS devices. I own a Garmin Edge 705 and understand this device should read the elevation gain over a course quite accurately based on barometric pressure. I usually use my device for cycling or hiking but have occasionally used it for canoeing. On a lake you would expect the elevation gain and loss to be virtually zero. On all occasions however my 705 Edge has shown elevation gains ranging from 4 to 22 meters. Has anyone else experienced similar results? Even with some error there shouldn’t be that much elevation change on a lake.
Any suggestions or thoughts on this matter from anyone. Thank you.
I notice, that Garmin gives some error in distance calculation because it don’t consider thus elevation data. The more a relief, the less final distance (in comparison with actual).
I’ve noticed that on my Garmin 210 that distances seem underestimated (significantly) on hilly courses vs. flat ones. I live in a hilly area and often have a drop and gain of 200M or more even on an 8K run. Since there is no elevation data on a 210- I am not sure whether the GPS is taking elevation into account, but would be interested in others opinions on that.
Over the years I have done research on Elevation Gain Statistics (including how pilots and aircraft adjust barometric altimeters). I 1) wish I found your site earlier, 2) am glad that we have come to the same conclusions. I now use your site to validate my statements.
When looking at recorded elevation data from devices such as the Garmin Edge 500 one must consider time as well because changing weather patterns can dramatically effect local barometric pressure such that a out & back 100Km over say 4 hours duration shows a difference of say 5 meters between start & finish in the same position. That’s the effect of our constantly changing weather and why as a GA Pilot flying under 14,000 feet I’m constantly getting updates and changing my aircraft altimeters subscale setting every 30 minutes to ensure I have a relatively accurate setting so I don’t hit another aircraft going in the opposite direction 500 feet above or below me.
If weather conditions are stable changes are small but if a change or worse front is pushing through you can expect big changes in altitude even standing still on the spot!
My Edge 500 showed a 96 ft. gain in altitude over a 35 min. run starting and ending at my house! There was some weather moving in (nothing crazy). Anyone know if that seems normal?
When I enable elev. correction on garmin connect website, the gradients no longer look correct. There are uphill sections that I know are downhill, and vise-verse.
There must be some way to combine the barometric altimeter data w/ the known data to give a more accurate map. I can’t imagine what algorithm gamin is using to come up w/ the mess they’re displaying to me.
GPS altitude is not a height altitude above sea-level, it is the reporting the height of the unit above the reference “WGS84 Geoid” – a simplistic mathematical model of the earth. The GPS has no knowledge of any geographical features or even sea level. It is not correct to say it is prone to error – the GPS is accurately measuring the height above its reference.
OK, this post ROCKS!
Now I can troubleshoot and make my edge 500 more accurate!
Is there a website of some sort that will tell you your elevation accurately, so I can input this number into my Garmin 910xt as a known elevation value?
Thank you very much for this great article.
I have only one question regarding the elevation correction by Garmin connect.
Once the Elevation correction is processed on the Garmin Connect website. is it possible to generate a gpx file including the new corrected elevation of each recorded point ? I want to use this file late to geotag my photos
Thanks a lot,
I think this is a bit optimistic for elevation correction using a Digital Elevation Model.
For most of the world (outwith the USA), the best free data available is NASA SRTM, so most websites and software are using something based on that. This has a 90m resolution grid, so heights between these points are interpolated.
In an area with steep hills or valleys, this can be rather inaccurate. Also the SRTM data can be affected by tall buildings or trees, as it is measuring the heights of the roofs and treetops, not the ground height.
Whether this is more accurate than a modern GPS is debatable.
Awesome, Ray, this page is linked from Livestrong (link to livestrong.com)
As I go around the web, I see more and more references to your website, congrats!
I’ve just bought an Edge 510 and can see some quite interesting artefacts when importing into Strava. Most notable is how noisy the reading is. That said, the noise amplitude is only a couple of feet, so quite low when you think about it. This especially considering the vibration and air flow around the device while it is moving. Our roads are pretty poor in places so there’s a lot a vibration even on road. I wonder if some of the odd spikes are due to vibration from potholes which cannot always be avoided.
I produced a comparison against corrected data in Strava at m0rjc.me.uk which has restored my confidence in the device. The two graphs are quite close with the Garmin showing details such as a cycle path bridge over the railway.
I had elevation data on Garmin Connect up until Feb 18 2014, and now the last five or six runs Feb 19 on don’t have it. Elevation Correction enabled/disabled does not show up in my “Additional Information” window. I have the basic FR10 and the runs have the same Garmin firmware version both before and after so that wasn’t it. Could it be that Garmin just decided to disable elevation correction on some of their less expensive devices? I have not changed any settings on my watch, the only thing I can think of I did differently was upload only “selected runs” instead of “all new runs” the last couple times.
I hope they’re not removing functionality the way Strava did last year.
link to dcrainmaker.com
Actually, I think it’s a temporary thing that’s broken. As even on other device, you can’t toggle the setting on/off anymore – it’s stuck one way or another. I noted it to them last week. Basically, I think they broke elevation correction across the board.
Thanks for clearing up the mystery! Fortunately elevation on GarminConnect was fixed again sometime between Mar 17 and Mar 20 (after being down for a month). Is there any way to go back and re-enter my runs from that month? I’m a little nervous about deleting the runs I’ve already downloaded in case I won’t be able to upload them off my Garmin a 2nd time.
Here’s something I don’t get…. If I run 20 miles and it thinks I had 3000 feet oc cumultive climb. Then it “corrects” the amount of climb down to 2600 ft. Wouldn’t that mean I didn’t run 20 miles?
No, because almost none of the devices on the market track 3D distance, rather, just 2D distance. Only the Fenix lineup has the ability to track 3D distance.
I’m sorry if I’m not getting this, but I’m just not. If you and I travel a straight line, parallel to each other except one of us climbs and descends 500 ft, the one who did all the climbing covered more ground, correct? But if a satellite it looking down, it sees us both starting and finishing at the same point. Or is that just not how it works?
Yes, therefore all GPS devices except Fenix with 3D distance explicitly turned on will see you have travelled the same distance and will ignore elevation data and their eventual correction.
I understand the Fenix3 accounts for elevation change when calculating distance(3D distance) and it does so on in real time. Would it use this 3D distance to display current speed, or is a speed sensor still necessary? I understand speed won’t be entirely accurate if GPS signal isn’t great, but at least it its better if it does use 3D distance to display speed?
Garmin Connect elevation data is gone – again. When I uploaded my latest run today I got a dialog box about downloading Garmin Express to try the new “modern” Garmin Connect (as opposed to “classic” which I’m evidently using) and expect there’s a connection.
read your post and like it – it explains a lot. But – maybe you can answer me my question…
I own a Garmin Edge 810 and use it with my MTB. During the last trip, I recorded my trail and the result was:
– original result from device: about 1100 meters elevation
– Garmin connect with elevation correction: 1250 meters elevation
– Exported gpx file and loaded it with Google Earth and viewed elevation profile: 2050 meters elevation…
All in all, the landscape profile coming from Garmin looks more “smoothed” while the Google Earth generated profile shows all those smaller and bigger ascents and descents a normal road has (which, again, where not visible on Garmin…). 1000 times one meter up and down also makes 1000 meters altitude, doesn’t it? But Garmin won’t show these small steps…
What’s your experience? Is Garmine more reliable or Google Earth?
Thanks for a short replay,
From the Edge 810, you’ll get barometric, so I’d go with the original 1100 in almost all cases. The Google one is definitely off, for unknown reasons (it could be the track file varies a little bit and causes the altitude to go wonky, or something else).
So in general, I go with the altimeter in the unit over GPS corrected, and then that over Google Earth.
I have a Garmin Edge 500 w/ Barometric Altimeter. On Garmin Connect when I toggle between elevation corrections enabled and disabled the elevation numbers change substantially on some of my rides. I’ve got a ride where the unit says ~6K and the corrected says ~9K. Which is more accurate the Barometric Altimeter on the Edge 500 or the elevation corrections on Garmin Connect?
Barometric (see exactly 1 post above).
Anyone had variations in elevation starting to appear in their Edge devices for known rides? I have a regular ride that is starting to show 20%-30% increase in elevation on my Edge 800 with starting elevation set by me and barometric enabled on both GC and Strava. Maybe I’ve done too much climbing and I’ve worn it out 🙂
I still think that the best algorithm programmed ever by Garmin is not a new one, but a pretty old one developed by Outdoor development team. Around 8 years ago.
1/a) First GPS helps to estimate the starting elevation using more and more 3D coordinates estimated by more and more satellites found by the unit.
1/b) This process can be improved by manual elevation calibration aka “known elevation set by the user”
2) Barometer does it job to track the pressure change and in the short term it is perfect.
3) Either GPS helped to estimate the starting elevation or it was set by the user, the unit is collecting enough GPS elevation data constantly to check whether at any time there is a gap bigger than a predefined one between the average of the GPS elevation data and the actual elevation set by the barometer.
If so, it assumes that there has been a barometric drift due to weather changes, so the unit to some extent starts to use the average of the GPS elevation data, and it does not allow to persist this gap, actually the barometric elevation is subtly overridden by the GPS elevation to reduce the gap below the predefined one.
So the pretty accurate barometers rule, but in case of pressure change due to weather changes, they canbe and in fact are helped by the partly accurate GPS receivers.
The above is said in a non-moving situation, but
This is very interesting. I have a 510, a Fenix 3, and an Iphone with the strava app. Lately I
have done a few rides with all three running. I have seen that elevation gain is always much
higher with the iphone/strava app, and calories are usually much higher in iphone/strava also with
the Fenix numbers always the lowest of the three.
Which device is more accurate for elevation gain? And I wouuld appreciate any tips on the best
altitute settings to use on the 500 and Fenix 3. Should GLONASS be on?
the precise algorithm can be easily checked on page 4 of link to freepatentsonline.com
I understand the Fenix3 accounts for elevation change when calculating distance(3D distance) and it does so in in real time. Would it use this 3D distance ‘on the fly’ to display current speed, or is a speed sensor still necessary? I understand speed without the sensor won’t be entirely accurate if GPS signal isn’t great, but at least it is better if it uses 3D distance in real time, instead of 2D and then corrects to 3D distance on upload?
It’s configured on a per sport profile basis, but a speed sensor is not required. Still, I wouldn’t overthink the 3D distance, it’s really itty bitty for everything but the steepest of drops (even skiing is barely enough). See the math I posted in this article here: link to dcrainmaker.com
Can a GPS altimeter measure skiing speeds relatively accurately? (I am thinking Ambit3 Sport vs Ambit 3 Peak) Thanks!
Thanks for the article, it make a lot of sense and confirms a lot of my thoughts:
I HAVE A FURTHER THEORY TO ADD:
When I correct my Garmin 500 I find that Garmin Connect (and more so Strava) increase my total ascending by up to 30%.
There is a climb that I do regularly and it is quite relentless (steady 7-9% climb all the way). When I analyse it closely on Strava (after elevation correction has been activated), I often find that the gradient can suddenly spike and then there is a negative gradient, then things go back to normal (ie. travelling at 8%, suddenly goes to 17%, then -5%, and then back to 7 or 8 percent.
The ride that I do is up the side of a tight hill, and there is quite a few tall gum trees near and overhanging the road. I am wondering if when the Satelites are “pinging” the earth to get elevation levels at specified GPS co-ordinates, those “pings” are hitting the trees and bouncing back earlier giving an impression that the the elevation is a lot (say 30 metres?) higher at that point? If that was the case, when I correct my elevation to GPS points, this would show me suddenly climbing 30 metres, then descending 20 metres, and then “re-climbing” that 20 metres again. Hence my Strava data would add 20 metres to my total metreage ascended (compared to what my barometric pressure has recorded).
I THINK THAT THIS COULD BE THE REASON THAT STRAVA ERROR CORRECTION SHOWS A GREATER “TOTAL ASCENT” THAN THE BAROMETRIC READING FROM MY GARMIN.
The other thought that I had is that if the GPS co-ordinates are out by a few metres, it could put me up or down an embankment on either side of the road, this would have a similar effect of showing me suddenly ascending/descending and then going back to where I was (i.e. giving me a similar “duplicated ascent (& descent)” after data correction.
I hope this makes sense?
So I have a Garmin Edge 1000, which has a barometric altimeter, and therefore all the advantages and problems that go along with that. As many people report, I get quite significant elevation dependencies between the start and finish of a loop ride. Regularly reading a 50m difference in elevation between the start and end point, when they are the same location.
Does anyone know of a way to correct this without sacking in the advantages of a barometric altimeter and simply using the GPS elevation profile (which is really quite inaccurate in the hilly areas where I tend to cycle)?
The Edge 1000 has internet connectivity while out on a ride already, by pairing with a smartphone with data. It’s used for weather updates and live tracking. It seems to me the ideal solution would be to use this to get a constantly updating calibration factor to keep the baseline altitude in check. Just like a plane does. Does anyone know if Garmin, or anyone else has ever tried doing this?
Assuming that that isn’t possible; does anyone know of a tool to retrospectively adjust barometric readings to make them more precise? I can imagine a few mechanisms for doing this, such as looking up the calibration factor for the time and location of each measurement and adjusting accordingly; or putting in a few known elevations on a ride, measuring the discrepancy between the measured and actual values, then interpolating a linear calibration factor between the known points.
These methods should maintain the shape of the barometric graph, while making it much more accurate. Has anyone come across any tools like I describe?
If they don’t already exist then I might write one. Seems it would probably be a handy tool for quite a few people.
If you go on a long ride and while you are out, the barometric pressure changes significantly whilst you are riding, this will cause differences between your start and end elevations. Your solution of web verification is a good idea, but I would think it is a few years away!
I have a Fenix 3 and get inaccurate elevation gain numbers every time I use the Bike app. It’s generally 20-30% less elevation gain than is measured by an Edge 510, or a variety of phones using Strava. On a recent ride I got 1000ft less gain! I have tried manually calibrating the altimeter at the start, and have Auto Calibrate Continuous turned on. One thing I have noticed while riding is that shorter hills don’t seem to get “counted”. If I watch the elevation gain field while riding it seems that the number does not go up on 20-30 ft hills, only on longer climbs. And I’m suspecting that over the length of the ride this is leading to inaccurate data. If I use elevation correction either in Garmin or Strava it adds a little bit of gain, maybe a couple percent, but not nearly enough. I’ve contacted Garmin about the problem but no help yet. Any ideas why this might be happening?
So on your Fenix 3 you get elevation data that has 20-30% less climb than a phone using the Strava app on the same ride, even if you switch it to elevation correction on Strava?
When you switch to elevation correction it ignores the altitude readings from your GPS and simply looks up the altitude on a known profile of the landscape based on the GPS coordinates, exactly how the Strava app does it. To get an elevation discrepancy between two tracks means that the actual tracks have to be different.
How does the accuracy of the GPS tracks look? Normally I’d expect the GPS readings from a phone to be far less accurate than pretty much any dedicated GPS device.
Generally inaccurate GPS data has a tendency to increase total climb on elevation corrected data (because of spurious locations) though this isn’t always the case. For this reason I’d suggest that your Fenix is simply being more accurate than the phones.
However, that doesn’t explain the difference between it and the Edge 510. Have you tried tracking the same ride with both of them then switching them both to elevation correction and seeing if there is any significant discrepancy? This would tell you if there is any issue with the GPS accuracy.
If there is no discrepancy then your GPS accuracy is fine and the difference is only really down to the inaccuracy of the phones, and a difference between the barometric altimeters in the two GPSs. In which case the Fenix is either built with a less sensitive altimeter than the Edge, or it is faulty. You’ll have to ask Garmin which it is.
Thanks for the reply. The GPS accuracy of my rides is very accurate otherwise. These are road bike rides, and the tracks are dead on. Both from my Fenix3 and from my phone.
However, there is no way my Fenix3 is more accurate when it comes to total elevation gain. I just did a ride with a friend, who was using an Edge 510. We did the same exact route together. My Fenix3 had 2352 ft of elevation gain. His Edge 510 had 3182 ft. That’s a huge difference for the same exact route. Our GPS tracks are very similar otherwise. And I know his Edge 510 was more accurate because I compared it to Strava’s routing tool, which reports 3125 ft. for that route. Google Maps or MapMyRide also report similar. So I did elevation correction on my Strava route and got 2493 ft. A little increase, but still 600+ ft less.
I’m finding others on Garmin’s forums having this same issue with the Fenix3. It seems related to elevation smoothing on the overall gain calculation in the Fenix3.
link to forums.garmin.com
link to forums.garmin.com
link to forums.garmin.com
I’ve passed all this on to Garmin support and am assured they are working on it…we’ll see.
I posted this on the Garmin forum but thought I’d see if anyone here (Ray?) can shed some light on my elevation gain issue. Garmin support simply don’t get it so I took a video to show the issue on a short steep incline with a consistent gradient. See – link to youtube.com
What I’m really interested in is how they do the total ascent calculation. The elevation numbers appear accurate enough so I would have thought that the logic would be very simple – every second look at the current vs previous altitude and if it has moved just add the difference to a counter. They clearly aren’t doing this which puzzles me as to why – or am I missing something? Its been a while since I wrote any software code but am tempted to try build a ConnectIQ field to track altitude gain data.
What about built-in altimeter of action cam Virb Elite ? Is this accurate same way as on best Garmin Edge devices for this feature ? Thanks
I have a Garmin 510 which thinks my location is -124m, i.e. under ground! Even if I reset it to 60m which is what it should be it reverts on restart to a negative value. A couple of days ago I contacted Garmin support who suggested latest software and reset the device. Well I had the latest software and after a factory reset I had the correct elevation, great. Later when I went for a ride it decided I was at 25m (I didn’t check as I was leaving so didn’t correct it) so when I was riding next to the beach I was -24m under the sea.
The elevation being wrong is annoying in itself but for some reason when I try and enable elevation correction on Garmin Connect nothing changes. The only good thing I can say is the start and end point elevations are pretty close.
I reset the device in morning while outside and went for a bike ride in the afternoon. During that time the weather, a clear sunny day, hadn’t changed so the barometric pressure would have been about the same. I can see that a change in weather could be an issue, but to be so off the mark is pretty poor.
I don’t know how these devices are calibrated but it would be sensible to have an option to set a reference location and elevation so that future trips can work of that barometric reading at that altitude or to use a GPS fix.
I have the Forerunner 920xt. The altitude tracks perfectly, very accurate. I analysed .fit files with “every second” recording, and altitude readings are perfect (this device uses barometric), very smooth. Graphs on Garmin Connect and STRAVA are perfect, super smooth and no spikes.
BUT, and this I don’t get, while out on an activity, vertical speed an gradient reading are a complete mess, jumping around like crazy all the time. Completely useless. During running and cycling. I’ve tried different versions of firmware including the latest beta 6.06.
I don’t really understand how this is possible. In my opinion it can only be a software bug, as the altitude readings are spot on. There has to be a problem in the calculations. What is even more puzzling is that, on my Edge 500, which is a much older device, this has never happend and gradient is always very accurate.
I opened a ticket with support etc. and they think I need to have my unit replaced. It’s frustrating, they don’t seem to get the problem or don’t really care to investigate. Well, of course, I might be mistaken and there really is a problem with my device. But the more I think about it, and the more I see similar problems in the forums, I’m more and more convinced it is a software error.
Does anyone have further insight to this?
Ray, I remember having read in your 920xt in-depth review (your comment of December 31st 2014) that you’ve noticed a problem with vertical speed as well and that you’ve put it on your list… Do you have any feedback on this?
I haven’t looked at the vertical speed while running again on the FR920XT (mostly just because since then I’ve been using/testing other watches on hill repeats).
That said, I’d agree it sounds more like software. I just don’t have much of an idea of how to fix that. :-/
I have the Garmin 1000 and my friends (2 other’s), and that unit as well.
All 3 of us got a different reading on climbs. mine was: 2920, another was 2778, and the other person was: 3300 feet of climbing. We all rode together, doing the same route.
Even the downloadable GPX file had a different reading for final gain…..
Why do you think we all had different readings ?
Well, all those figures show a tolerance of about 10%, which is perfectly reasonable. They’re little barometer chips in a piece of consumer electronics; they’re not precision instruments. You should expect a reasonable margin of error.
I have a question. I have the new Forerunner 735XT and went trail running today with someone who has a Fenix 3. The guy is a professional trail runner so he depends on his altitude meter in the Fenix 3. We went running on his home trail and after the run he recorded 119m altitude. When I uploaded my run it showed 59m altitude. When I disable the elevation correction on Garmin Connect it shows 117m altitude, which is almost the same as the 119m from the Fenix 3. We know for sure the 119m is pretty accurate for our run. How come Strava and Garmin Connect correct the ‘wrong’ number 117m (which is actually right) to the ‘right’ number 59m (which is wrong for sure? Anyone any idea?
Thanks in advance
Curious if you would update this article as everyone seems to have correction now
did a ride yesterday
Garmin 520 – 6600
Strava corrected 7200
Garmin Connected corrected 8500
TrainingPeaks corrected 10600
Hard to say.
The Edge 520 is barometric already, so in theory that’s likely to be the most accurate. Especially if you were near bridges/buildings/cliffs/etc that could present tricky satellite elevation issues for corrected elevation.
But…if you’re Edge 520 has the barometric altimeter holes blocked/etc…then I’d guess one of the other ones.
Hi there. By default the elevation correction on my fenix 3 should be deactivated. Lately the elevation correction is always activated and I have to deactivate it after each activity. On the new Garmin Connect I can’t find the option to deactivate the elevation correction by default. Where ist that option located. Thanks for any help.
Trying to figure out if the altimeter drift on my Fenix 3 HR is normal or not. Sitting at home I can reset my altitude to the correct elevation (2400 feet). Then the next day at the same exact location it will read 2100 ft. Is this a normal amount of drift or do I have a lemon?
Using the “my altitude” app on the iphone 6 (which uses the phones barometer) it is always spot on at 2400 feet every time I check.
To be sure check the barometric pressure difference. Same pressure same altitude… but if a storm front is approaching, the lower pressure will read like an increased height.
If your iPhone is showing always the same altitude most likely you are using an application that retrieves the altitude from databases based on your location. To view the internal altitude reading from your smart phone you need to download an application that displays its value as recorded by the barometric sensor. Your sensor reading should oscillate by up to 20 to 30 feet due to atmospheric changes.
First let me say I really appreciate all the useful information you present on your site – has really helped me out! I have a question regarding the 910xt elevation readings. Did a search but could not find a definitive answer, so if I missed something, would appreciate a steer in the right direction. I understand the 910 has a barometric altimeter so that should be the more accurate reading than the “corrected” reading in Garmin Connect – correct? On pretty much all my runs/rides when I “correct” the elevation data, it typically shows way less than the uncorrected. For example, did a ride last weekend, uncorrected showed ~6,800 ft elevation gain, while “corrected” was only about 4,800. Most people that have posted regarding this wind up w/corrected elevations higher than the uncorrected. So my question is which one should I rely on as being more accurate? Is there a way to test it?
About the discrepancy between the Garmin Connect corrected elevation and the altimeter calculated elevation, I believe there is a very logical explanation. The elevation in topographic maps is represented by contour lines 20 foot apart (e.g. USGS maps). Every time your GPS plotted path on the map, crosses a contour line it adds 20 feet of ascent/descent. But in reality any minor hills between those 20 foot contours will not be captured by the Garmin Connect correction, but they will be by the altimeter. I would expect the elevations measured by the altimeter sensor to be greater and more accurate unless you are climbing a straight slope like in a triangle where they should then match. Like I wrote in another thread, the barometric altitude can easily change 20 to 30 foot in one hour due to atmospheric pressure changes always occurring, even in stable weather.
I have the FR 935 which I believe is a combo altimeter and barometer. I live in Philly where it’s fairly hilly. My last two rides and my last run, I’ve gotten essentially a flat line for elevation. This includes a 41 mile ride with lots of ups and downs and it’s simply telling me there was no change in elevation. Elevation had always worked with this watch in the past. Do you have any recommendations for a fix? Garmin gave me some potentially useful info but it doesn’t solve the problem as to why this just suddenly happened. Thanks,
An old post so I hope this will still be read??.
Do you think a barometer is necessary during an ultra trail run if you have a route altitude profile?
Here is my issue. I’m after a new gps watch. First was Fenix 5 but I’ve read many gps issues. Then I thought Suunto Ultra but I prefer the look of the Suunto trainer metal bezel. I’m happy to charge it on the run during ultras but it has not barometer. Though I could see my elevation on the profile. Do you think the barometer is an important feature?
I can see why you like the Suunto despite its lack of barometer. I believe for your running purpose, you can do without the altimeter. After all, you will see the elevations changes in your profile. I use heavily my altimeter mainly because I travel to places where there is no phone signal, or in foreign countries and I like to know my elevation. E.g. Machu Pichu.
Thanks for this detailed explanation. The comments were insightful as well.
A few years have passed since this was originally written. What is the state of GPS-based altitude in 2019? Should one consider a device (e.g., the new Garmin Forerunner 235) that uses GPS-based altitude? Why or why not?
Sorry, I meant Garmin Forerunner 245.
My Edge 500 is still going strong and has been a totally reliable workhorse and I depend on the Total Ascent on every ride. So switching to a Fenix 5 (now on 3rd device in 4 weeks due to SW issues), it has been such a disappointment to see how bad the Fenix cycling Total Ascent calculated values are. The barometer in my latest Fenix 5 is working well and tracks the Edge 500 to +/- 1m when both are manually set to the same starting elevation during a constant barometric ride.
However, the Fenix 5 can be seen to discard elevation increases during a ride when watching the Fenix and Edge together. For every 1m increase that the Edge shows, the total elevation the Edge, is increased by 1m. The Fenix however will often discard up to 5m even though it’s altimeter sows 5m of increase. This increase is just discarded and the next 5 m hill may only show 4m of Total Elevation where it should have showed 10m increase (which is what the Edge 500 shows). Over my typical ride the Fenix shows a -10-15% lower Total Ascent and is therefore useless to be as a cycling device.
Pretty bad when an entry level, 10 year old Garmin device is more accurate then a new expensive Garmin device that makes a lot of claims and fails to deliver.
I’m having an issue with Training Peaks adjusting my elevation gain from one of my Garmin devices (Forerunner 735xt) making it completely inaccurate. It will import the data into the Garmin app correctly, but when it imports that info into training peaks (which I think happens as soon as I import into Garmin app) the elevation is way off. Like it will turn 2,600 ft into 7,000 ft. My other device, the 920xt, does not have the same issue. It imports the same elevation into both the Garmin app and training peaks.
Any ideas what is going on and how to fix this?
The FR735XT doesn’t have a barometric altimeter (whereas the FR920XT does), so Training Peaks will run it against map based data to recalculate the elevation data (and actually, Garmin does the same, if you look on the right side on Garmin Connect web for an activity you’ll see it shows the elevation status).
As for why there’s such a big gap with the post-upload correction, that’s pretty unusual.
Same issue here with the Forerunner 735xt syncing from Garmin Connect to Training Peaks (TP). The activity synced to TP always shows significantly more elevation gain and loss than actual. To correct this I select “Analyze” for each activity and then “Elevation Correction”…. I haven’t found a way to automatically apply elevation correction to newly synced activities, which would be optimal.
I’d love to see a post regarding the altimeter/baro readings always being out of whack on the Garmin Fenix3HR. I have what i call “settings OCD” and it drives me nuts when I know I’m at a location that has 36m elevation above sea level but my watch is telling me i am at 50m elevation or sometimes 20m.
I am on my 3rd garmin FR 935. Elevation has broken on all 3. I give up and will not bother getting a replacement this time. I honestly think the sensors just can’t handle swimming
Hey, Hope someone can work this out 🙂
I’ve got a Garmin tactical which uses an altimeter/ barometer rather than GPS.
I have it set to auto calibrate but I’ve noticed that the elevation gain / loss in garmin shows a considerable difference. For example today 6km run had 146m gain with a 170m loss.The run was a loop back to my house so I would expect the difference to be zero or negligible.
It wasn’t stormy and the weather didn’t change much and it was only a short run time. Looking back at previous runs I’m seeing a big discrepancy everytime.
I’ve run the elevation adjustment in strava which always seems to be counting slightly higher gain than the garmin but the gain / loss as expected is 1m difference.
Has anyone had this issue or know of any reason it would be doing this?
Thanks in advance.
@Zak IMHO and having worked my way through 4 Fenix5’s (all returned faulty), Garmin seem to add a sort of double hysteresis to the total ascent. You can see this in action if you can setup a Garmin device with a barometer to display the altitude and total ascent together. Then start climbing and often you will see the Garmin device ignore at worst, the first 1 to 5m of the climb. E.g if the altitude is 100m and you start to climb, the altitude will show 100, 101, 102, 103, 104, 105 as you climb, yet the Total Cimb will show, 0, 0, 0, 0, 0, 1. I use a Garmin Edge 500 which works correctly and when compared with the Fenix5, the Total Climb is very accurate on the Edge 500 – if the altitude increases by 1m then the 1 is added to the Total Climb on the 500.
The effect of this error is about 10%-15% on a 1000m ride and I saw similar errors when tracking runs. I do a lot of Strava Climb Challenges so to use a data capture device that loses 15% of a climb is a complete showstopper.
I had several conversations with Garmin technical who showed no comprehension whatsoever of what I was talking about and requested that I send then GPS data for both devices to compare. They said the GPS tracks were identical so there was no problem! When I explained further that barometer data is nothing to do with GPS they said that the barometer in the Fenix5 is accurate to +/- 100ft and that was the end of the conversation!
I finally got my money back on the Fenix5’s and bought an Amazfit GTR for $100 as a Garmin Edge 500 backup. Guess what, it tracks Total Ascent and Descent perfectly without needing any calibration. The climbed and descended figures are within 1 or 2 m on a 1000m ride.
I have owned several Garmin Vivoactive watches (3) and I also own a Garmin Oregon. Like you, I am also very OCD about altitudes since I run and travel a lot. Based on your scenario I am certain that your problem has to do with the elevation self-calibration. It takes a Garmin several minutes of GPS activity (I would say up to 10-15 minutes) to self-correct to the GPS altitude. Therefore by the time it corrects itself, you have already run/ridden a long distance and it has been recorded at the wrong elevation. If Garmin was smarter it could add/subtract the correction to the already wrongly recorded altitude profile. I have conducted dozens of experiments and the Garmin devices always remember the last (GPS) activity ending elevation. On you next activity your starting point or barometric pressure may have changed dramatically. But, if you “enable” the elevation correction in the Garmin Connect (computer only, I do not know how to do it in a smartphone), it will be more accurate because the application looks at the elevation of multiple points along your route and returns the correct elevations from a database.
If you have a device that allows you to manually correct the elevation to the known elevation of your starting point (like my Oregon), your data will be perfect. I assume the more expensive Fenix devices would allow you to manually correct the elevation. Conclusion, you better enable the elevation correction. For local device readings, wait several minutes of GPS activity.
This only works for devices without barometer. Device with barometer have elevation corrections turned off by default so you have to manually turn it on for each individual activity after you’ve completed the activity. Super annoying
@spidercrab thanks for the info. Yeah a 15% deviation is a bitch. I did an everest running challenge a month back and if I had just used Strava or Garmin GPS only elevation I may have been able to have a few days off..
I’m just chatting with customer support now and they are being just as vague.. basically sending me the articles that basically says to calibrate it. If I calibrate it + or – X feet that won’t make a difference if I’m running from a fixed spot and back again.. their just not getting it.
Tempted to flip back to GPS values and see if the data at least levels out.