Hmm, I'm using straight-line distances (pythagorean of the northing/easting difference). Maybe he's using "real world" distances somehow? That might explain some of the discrepancies. Although I'd expect the straight-line numbers to be lower, on the whole, because, as you say, the roads are rarely straight.
Seems to be a confusion over the data from the API - it returns a `lineStrings` array of GPS coords but those aren't the stops; it's the "plot these to visualise the route as it goes on the road". The actual bus stops are further down in a different structure.