It's very, very common for odometers on vehicles (including bikes) to be almost perfectly accurate, and for speedos to be anywhere from 3 to about 8% 'optomistic'. I believe a lot of this is down to the manufacturers ensuring there can't be a lawsuit if someone gets pinged for speeding and can prove the speedo was inaccurate so tries the "I'm innocent! It was the manufacturer's fault!" tack. It also allows for minor variations due to different tyre brands. OTOH, the odometer needs to be fairly accurate for navigational purposes.
My bike was reading about 6% high when I got it, and I lowered the gearing by 1 tooth on the countershaft sprocket, which worked out to about 6%. I was going to see if I could get a friendly policeman to verify the 'corrected' reading, but never had an opportunity to do so. I ended up riding for nearly 3 years with it over-corrected (reading about 2% lower than it should have been). The speedo on my wife's car (when it works) has an error of only 2% against the GPS, which is pretty amazing.
Bookmarks