This graph from my log shows the Desired Altitude, Baro Altitude, RelOriginAlt, SAlt, and RelHomeAlt.
The SAlt value is from a lidar rangefinder - it is reporting date, but not being used as the primary altitude source. I just have it there to provide another altitude reference for debugging this.

All the values except for RelHomeAlt line up very well with each other. And since the baro and rangefinder agree, I’m pretty sure that is an accurate altitude measurement.

Why does the RelHomeAlt diverge? And why would RelHomeAlt and RelOriginAlt diverge from each other? I can understand if the home point was changed - and I can understand a fixed offset, but this clearly isn’t that.

My concern with this is that when I issue a SET_POSITION_TARGET_GLOBAL_INT message, it is used the RelHomeAlt as its reference for that - all those jumps in altitude in the graph were the same commanded altitude. It just adjusted based on the current value of RelHomeAlt.