EN FR Home

Live NTP Offset

Clock offset measurement and interpretation — understand the number in real time

1. What live NTP offset measures

NTP offset is the signed difference between your local system clock and an authoritative time source at the moment of measurement. It is the single most important number in time-sync: it tells you by how much, and in which direction, your clock is wrong.

A "live" offset measurement means the value is updated continuously as you watch. On the home page tester, the offset refreshes every 10 seconds, letting you see both the current error and how it evolves between resyncs.

Offset is not accuracy. A clock can show a small offset at one instant but have terrible jitter or drift. Offset is a snapshot; accuracy is the envelope formed by offset, jitter, and stability over time.

2. Positive vs negative — sign convention

The NTP sign convention (used by chrony, ntpq, w32tm and this tester):

SignMeaningCorrection NTP will apply
+150 msLocal clock is 150 ms ahead of referenceSlow the clock (negative frequency step)
-75 msLocal clock is 75 ms behind referenceSpeed up the clock (positive frequency step)
0 msPerfectly synchronised at this instantHold frequency

Intuition: the sign of the offset is the opposite of the correction NTP must apply. If you read +150 ms, NTP will slow you down by 150 ms to bring you back to zero.

3. Acceptable offset by use-case

Use-caseAcceptable offsetBreaks at
General desktop / email / browsing< 1 sTLS certificates (> ~5 min skew)
Active Directory / Kerberos< 5 s defaultAuthentication failure at 5-min skew
TLS / HTTPS certificate validation< 5 minInvalid cert errors, OCSP failure
Log correlation / SIEM< 100 msCausality inversion across services
Financial trading (MiFID II RTS 25)< 1 ms for HFT, < 100 µs for colocatedRegulatory non-compliance
Telecom 5G / PTP-grade< 100 nsSynchronisation requires PTP, not NTP

Most applications live comfortably below 100 ms offset — the green zone on the live tester. Anything above 1 second means NTP is effectively broken or absent.

4. How the browser measures offset (HTTPS method)

NTP normally runs over UDP port 123, which browsers cannot send. Our tester uses an HTTPS-based approximation:

  1. Record local timestamp t1 just before sending the HTTPS request.
  2. Server returns its authoritative timestamp t_server (microsecond precision, sourced from a Stratum 1 GNSS).
  3. Record local timestamp t2 on response.
  4. Estimate one-way latency as (t2 - t1) / 2 — the same assumption NTP itself makes.
  5. Compute offset: offset = ((t1 + t2) / 2) - t_server.

This method reproduces NTP's classic four-timestamp algorithm adapted to the request/response pattern of HTTPS. Precision is limited by the symmetry of the TCP/TLS path — typically ±10–30 ms on a good connection, versus ±1 ms for native UDP NTP.

Browser caveat. JavaScript Date.now() has only millisecond resolution, and some browsers quantise it to reduce fingerprinting. Don't expect sub-millisecond precision from a browser-based measurement — for that, use CLI tools directly.

5. Interpreting a drifting live offset

Watch the offset value on the home-page tester for 2 minutes. You should see one of these patterns:

6. Large or unstable offset — next steps

If the tester reports offset above 1 second or highly unstable values:

  1. Check the NTP service status. systemctl status chrony (Linux), w32tm /query /status (Windows). If it's not running, start it.
  2. Check for firewall blocks on UDP 123. For port-123 and daemon-level issues, use check-ntp.net — the dedicated NTP diagnostic site.
  3. Verify you have at least 4 configured sources. Fewer than 3 active sources means NTP cannot detect a false ticker.
  4. Look at the round-trip delay too. A high offset with a high RTD often indicates a distant or congested source — see the latency benchmark.
  5. Running a regulated workload? For NIS 2 / ISO 27001 / DORA compliance evidence, online-ntp-validator.com produces audit-ready reports.
Run the Live Offset Tester →

Beyond offset? Use the right tool: