Grade/Elevation for Older Garmins / Watches

I did my ride yesterday with both my EDGE 1050 with the latest BETA firmware (that seems to have some elevation/ascent/grade improvements), and my Forerunner 955 watch. I converted both FIT files to CSV, removed the dup timestamp rows, synchronized the two data sets to GPS timestamps, and plotted out the native elevation data, and my GRADE calc.

This was an overpass over a highway.. The EDGE Elevation data looks perfectly valid (time based, so the descent was faster). The corresponding GRADE data looks good, hitting a max/min around 3.5%, which is correct. The zero crossing is slightly delayed due to the need to accumulate a few data points to smooth out noise.

I was frustrated with the GRADE data showing on my watch. Now I know why. This is the native elevation data recorded by my watch - a lot more noise. I had optimized my GRADE algorithm with the well behaved EDGE elevation data. Looks like I need to adjust the filter to handle the noise in older devices, which will increase the delay. I might be able to detect the quality of the elevation data and adjust the filter dynamically? Do you know of any techniques to do this?