The elevation numbers taken from your GPS unit are not perfectly accurate. For example, if you took a completely flat 100 mile ride, your GPS unit might record your elevation at one point to be 10 meters, another point to be 11 meters, then another point 9 meters and so on. If we used these raw numbers to calculate gain/loss, we would get a greatly over-inflated value, maybe even as much as 1000 meters of gain, when in reality the ride was perfectly flat. To avoid this, we use some math to smooth out these inaccuracies before we calculate gain and loss. The problem is, every device and piece of software uses a different method of smoothing, which means that every device/software/service gets a different estimation.
Our goal is to be within 10% of the value reported on a Garmin GPS unit that contains a barometric pressure based altimeter. These are the most accurate (and common) devices used on the site which makes it a good baseline to target. Often, we achieve within 5%, depending on the particular GPS unit.