Elevation data recorded from your phone can be very inaccurate. Because of this, we decided NOT to use phone-recorded elevation data and instead generate elevation for each lat/lng point in your ride. This process is followed by many other ride tracking sites.
Note: the elevation-adding feature will erase any existing altitude data (for example, from a GPS tracker). Often, erasing existing altitude data is the desirable choice; profiles made with Digital Elevation Model (DEM) data are usually "smoother" looking than GPS-derived data, and typically, DEM data contains fewer gaps or suspicious readings.
We currently use our own elevation API service, similar to Google's data, which is typically more accurate than the Shuttle Radar Topography Mission (SRTM) databases. We hope to someday improve our DEM (digital elevation model) using all the ridelog data we are collecting. But until then, we've decided to re-generate all ridelog elevation data. This way, all the ridelog data on Trailforks is at least somewhat comparable to other ridelog data and to the trails mapped on Trailforks.
Ride statistics, like elevation gain or descent, are not a given value like distance, but instead, are calculated with a formula. Each GPS app uses different criteria and formulas to calculate their numbers. Generally, this process often involves some cleanup of the elevation data first, smoothing out the data, and calculating the minimum distance between GPS points in order for a point to be counted towards the ride's cumulative climb or descent. Some apps might also have a more accurate source of elevation data for some areas of the world.
Because of this, if you record a ride on 5 different apps or devices, you will likely get 5 very different totals for climbing elevation. Trailforks has tried to make our elevation processing match those of an activity recorded via another app, but the results will inevitably vary.
You can read more about GPS elevation here.