OK.
The law is that speedos are allowed to over read but are not allowed to under read. The maximum over read allowed is 10%. Speedos can never be 100% accurate.
On a car its easy to see why. A brand new tyre on the car has around 8mm of tread. A worn out one has 1.6mm. The difference in the rolling distance of the two is about 2%. This means physically travelling next to each other, two identical new cars with the new and worn out tyres will show different speeds of about 2%. Add in other factors like going round corners which makes one wheel turn faster than the other and it gets very confusing.
Now look at bikes. Which point on the tyre will the speed be accurate. When you are totally upright going in a straight line, or leant over going round a bend where you reduce the rolling radius even more?
Sat navs are more accurate but only in a straight line, on level ground, at a constant speed. Change any of the points here and the SATNAV is play catchup as it only calculates your speed between two points and assumes you are going at a steady speed in a straight line etc.