How do I get accurate elevation change information?

So far I've tried two different methods on my Garmin Venu:

-Sensor.Info.altitude deltas. This is extremely inaccurate. Your altitude changes while just standing still. When tested going up the staircase in my house, started by swinging from 0ft to -20 ft (without moving) then as I ascended it went to 70ft at the top. My staircase is probably 15ft tall... +/- 70ft is not acceptable accuracy.

-Activity.getActivityInfo().totalAscent. I've read from other posts this is more accurate because of Garmin's algorithms, but it also just straight up doesn't register values a lot of the time. I ran up and down my stairs at home while recording this and there was 0 change in elevation the whole time.

I was hoping for accuracy of +/- 5 ft but can definitely work with +/- 10 ft. Mostly I just want something that is at least somewhat accurate for elevation changes that are as short as 50 ft. Am I barking up the wrong tree here? Are the Garmin watch sensors just way less accurate than I am hoping for here? And if they are accurate, how do I get those accurate values?

  • What device are you using? If you are using a GPS elevation based device (like the FR245), you aren't going to get the results you are looking for no matter what.  If your device has a pressure sensor, the current altitude will be your best bet.  total ascent is going to try to smooth out the small bumps as they are likely due to pressure changes.  And you really don't want a lot of ascent if you are just sitting there.

    What are you hoping to actually achieve?  If you are looking at being accurate every time you go up or down 5 feet, you are unlikely to get what you want.  If you are trying to figure out you just climbed a 200' hill, that will be pretty accurate.

  • Without a baro, it doesn't work too well, but "floors" are counted based on a 10'/3m change in elevation on devices with a baro.  How well "floors" work can vary by person/location/etc and at times you will get random ones.

  • My watch is a Venu. I am aware that GPS based elevation is not the way to go and haven't been trying to use that. The accuracy I'm hoping for is in elevation changes between 50 and 150 ft over the course of 1 minute to 1 hour. 

    The totalAscent method is not working for me very well at all - about 95% of the time it doesn't register any elevation gain when moving between floors in my house. Maybe that's too small of a distance, but that is part of my question - when does totalAscent become more accurate? I can try just using the altitude sensor info but it was swinging by +/- 15 ft just sitting still so i didn't think it was even remotely reliable. 

  • Have you tried just getting the elevation when you start and then look for a gain and not using totalAscent/totalDescent?

  • That is exactly what I meant by "Sensor.Info.altitude deltas". This does give me numbers, but they swing around wildly even when sitting still. I will use this method if I have to, I'm just looking for more accuracy. I just tried going up and downstairs now with this method and it went from -20 ft to 70ft of elevation gain on a 20 ft staircase...

  • I got out and tested using the altitude deltas at a gym, and for elevation changes of between 12-15 feet it's pretty useless. I didn't have nearly as wild of swings in the gym (maybe my house's air pressure is weird) but the data is still not usable. I'll repeat testing on the range I care about later (50-150ft elevation changes), just don't have time today. 

  • I think if the gym is air-conditioned you won't probably get good pressure readings as the pressure profile differs from a natural one. Venu is similar inside as Vivoactive 4s (my watch). I tested it in indoor climbing gym, which is not air-conditioned. It recorded elevations during climbs with surprising accuracy. The climbing wall height there is 13 m and I got a profile with altitude differences +- 1 m. It recorded even some short climbs of 3-4 meters (when I tried to climb a too difficult route). I recorded this using in-built "walking" activity. It showed "total ascent" of only 3 meters, but the elevation profile graph recorded was absolutely correct indicating all climbs min and max  accurately (I did 11 climbs in total)

  • The elevation in a gym probably wont change that much, and yes, there can be impacts due to heat/ac as either can have an impact on the pressure when they turn on/off.