Someone said they purposely make the courses long for certification. This is true, but they don’t add much. For USATF certification they have to add 1/10th of 1% of the distance, so every certified marathon course is at least 26.245 miles.
The courses are measured the shortest possible distance, from corner to corner. Most runners don’t run this. (I try to when I think about it). For some reason, I see most runners actually run the corners wide. Why? I have no idea. Bust all that distance adds up.
But the biggest error comes from the Garmin itself. It doesn’t know exactly where you are. It knows approximately where you are, usually within 3-15 or more feet. Bigger error with poor satelite coverage…like if you running under thick tree cover or around buildings, or hills. It thinks you are 3 feet that way, wait you are 15 feet that way. So as you are running, it thinks you are zig zagging side to side and back and forth.
Try this, start your Garmin and set it somewhere for a while…the poorer satelite lock the better…Notice that it will occasionally show speeds and distances, even though it is not moving. Garmin has some logic to figure out the unit has not actually moved, and will filter this out. But when the unit is actually moving (the locations are changing more than a certain amount of feet), these errors are not filtered out. So that is why most marathon courses come out as 26.7 or more miles on the Garmin.