Elevation data always off by 10-15%

To add to my numerous other disappointments with this, my first Garmin watch (not to be too negative), my 970 is always reporting elevation to be at least 10-15% lower than it actually is. For example:

17km run yesterday -

970: 354m

Strava (adjusted elevation) - 400m

Garmin Digital Elevation Model - 397m

Previous Suunto watch on the same route - 395m

18km run earlier this week -

970: 312m

Strava (adjusted elevation) - 343m

Garmin Digital Elevation Model - 352m

Previous Suunto watch on the same route - 348m


I have auto calibration on, wait for GPS to lock etc, but it seems Garmin's algorithms are fairly basic, whereas something like a Suunto watch uses their FusedAlti, which auto calibrates and calculates with both GPS and altimeter/barometer data. I feel like being 10% out is outside the bounds of an acceptable tolerance personally.

I would assume there are no hardware issues with my watch in particular, as the elevation profile is correct.

Is anyone else experiencing similar discrepancies?