I compared my Garmin Edge 305 to S Health on a 21 mile ride. According to
Bikeroutetoaster, which has always been very accurate, the ride was 21.0 miles with 517 feet elevation gain, minimum elevation 236 feet, and maximum elevation 431 feet. The
Garmin Edge 305 matched the distance and minimum and maximum elevations very closely at 21.06 miles, 253 feet, and 442 feet; however, it had the elevation gain as 795 feet. S Health had the distance at 19.83 miles and the minimum and maximum elevations at 308 feet and 525 feet. S Health does not give elevation gain - just the distances of ascent (1.05 miles) and decent (0.81 miles).
I think the Garmin messed up on elevation gain because it works off barometric pressure, and we had some storms in the area, which would have caused pressure changes during the ride. We only rode through one brief shower, but on the return portion of the trip, we saw that there had been some heavy rain, but not while we were there. I am not sure how S Health determines elevation. Bikeroutetoaster uses USGS data, so again, it is pretty accurate.
The Garmin had the average speed at 12.6 mph, and S Health had it at 9.7 mph. I can contribute that difference to the time spent stopped while we waited for one of the members of the group to catch up.
I had downloaded CycleDroid, but when I started S Health, I inadvertently stopped CycleDroid, so I cannot tell whether the difference between the Garmin and S Health has to do with the sensitivity of the GPS on each device or the S Health software.