NTP can be inaccurate if you get the wrong mix of peers. My main router has 5 external peers, and all are at least 500ms off (both +ve and -ve) my computed time. One is at +2.3 seconds offset. These are all supposedly stratum 2 servers, learned from pool.ntp.org.