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?