Altimeter broken or is this normal variation for this watch?

This is a screenshot of the altimeter after a run with the FR955. The insert is the altimeter from a Fenix 5 Plus that I also wore during the run. The run was in the time period marked by the orange lines.

I had been on 10 meters altitude for a a few hours, went downstairs to -2 to run, and went back to 10 meters. The Fenix 5 Plus shows this clearly. Why is the FR955's altimeter so much off? It has never been as good as the Fenix 5 Plus (and 6), but it's been consistently wrong during outdoor activities from this location since September last year, which I attributed to unstable autumn weather. But now I have compared the two a few times and this shows that the FR955 is always varying too far much. This elevation plot from Runalyze shows the pattern more clearly. 

I am 90% convinced it is software, because all other runs that start at altitudes above sea level and do not start shortly after descending stairs, are OK. DEM calibration to an altitude of -2 meters also does not work anymore, it will always calibrate to +2 meters or higher. I don't mind a small offset of a few meters, but the 'fake hill' in the elevation plot is not right and it annoys me. 

I have never swum with the watch or immersed it in water (except for trying to clean the sensor as per Garmins instructions), usually take it off before using hot air hand-dryers (or dry my hands on my socks). I do not always take it off while showering and run in the rain with it, but that should not damage the baro sensor it I think. 

What do you think? Is this more likely to be software or could it still be a sensor issue? 

===

Edit: I compared with similar runs in this location, from other devices. ALL do a better job than the FR955. Fenix 2, 3, 5Plus, 6X, 7, Epix (gen 1) did it right. The Forerunner 935 sometimes also showed this 'fake hill" but not every run and not as pronouced.

  • When I do repetitions, the altitude drops about 10 meters during recovering. Surely a software issue where a bad algorithm can't compensate for temperature variations

  • Interesting possibility! I'll test tomorrow with pre-cooling the watch outside for 30 minutes and wearing it on my sleeve with thick bubble wrap isolation under it, to make sure it stays at the same temperature. 
    In the mean time I am trawling through old activities in hopes to find a certain software version that introduced this.  

  • I am not going to bother with any testing: all runs that I used the Trail Run activity for, and all activities that started at altitudes above 0 m are not great, but don't have the fake hill at the beginning of runs. Trail Run handles the elevation clearly better. Because I found fake hills in runs all the way back to when I bought the watch, there is no chance a downgrade will fix it.

    This will never get fixed, so I'm resting this case. In future, if fake hill are particularly high, I'll take the trouble to replace the elevation data with data from the Fenix 5 Plus.

  • The problem is only with Run activities, no issues with walk, trail run, hiking

  • Indeed only the Run activity has this issue. Why, Garmin? This watch is named a foreRUNner.. It's kind of in the name that it is used for running. It is silly to have to use the Trail Run activity just to have normal elevation data, and then change the activity type later.