COROS watches rely on a combination of barometer and GPS data when calculating elevation. The barometer converts air pressure readings to elevation, and this data is periodically calibrated by GPS.
During workouts, the barometer takes a new reading once every 1-2 seconds. GPS calibrates the elevation once every 30 minutes. During daily use, the barometer reading time is increased to once a minute, and the data displayed in the elevation widget will be refreshed once every ten minutes.
It's important to note that calibrating elevation cannot guarantee 100% accuracy, as there are multiple factors that can affect the barometer readings (see this article for more information). Likewise, GPS is accurate from a few meters (strong satellite signal) to tens of meters (weak satellite signal). We recommend entering your exact elevation prior to starting an activity to ensure the best results. You can do this by going to System → Sensors → Calibration → Elevation → Enter Elevation.
If you notice a discrepancy between the watch's elevation readings and the elevation in the COROS app or Training Hub, this is due to the GPS calibration. By default, the elevation data saved on your COROS watch is the barometer data. But if there is a large enough difference between the barometer data and GPS data, the GPS may override the barometer to ensure the most accuracy, which is what you see reflected in the app and Training Hub.