This document is mastered in asciidoc format. If you are reading it in HTML, you can find the original at the GPSD project website.


This is a background paper on technological means for high-precision time measurement. We discuss time source types, relative accuracy, relative cost, and how those figures of merit have changed in recent decades. A brief introduction to NTP (Network Time Protocol) is included.

Use cases for precision time service

More applications than are commonly realized require precise time; which, in practice, means time accurate to a tenth of a second or less. While sub-millisecond time requirements are rare outside of scientific work and the sharper end of industrial process control, the range between 0.1sec and 0.001sec has a lot of customers.

As one large example, the Payment Card Industry (PCI) standards used by the credit card industry mandate "correct and consistent time" and gives NTP as an example of qualifying synchronization technology [PCI3].

The Financial Industry Regulatory Authority (FINRA) currently requires that clocks used for business must be synchronized to within one second of NIST time. The synchronization must occur at least once a day and before the start of business. A pending rule change [FINRA_14-47] proposes to tighten that to just 50 ms.

Modern cryptographic systems, such as Kerberos, require accurate time. So do cellular networks and navigation systems for autonomous vehicles. As these cases suggest, the economic value of high-precision time is likely to rise significantly in the future.

There are several equivalent ways to state the precision of a clock. In the remainder of this introduction we will use "jitter" - the width of its short-term random variation from its "correct" time - (commonly Universal Coordinated Time or UTC); usually in nanoseconds (ns), microsconds (μs), or milliseconds (ms). In these units the range of interest for most precision time applications is from 100 ms down to 1000 ns.

Time service types

A "primary time source" is a very high-precision, very stable oscillator (popularly called an "atomic clock") used as a source standard by a national time authority. By international agreement, the U.S. and other major national time authorities use primary standards based on electronic transitions between the two hyperfine energy levels of the ground states of Cesium-133 atoms.

National time standards are synchronized (essentially, averaged after removing outliers and consistent errors) to yield an international reference called Universal Coordinated Time. The US national time standard, UTC(NIST), normally tracks UTC to within 5 ns [BIPM-T].

In practice, the U.S. has another time standard; UTC(USNO), military clock time propagated through the GPS system. As the skew between UTC(NIST) and UTC(USNO seldom if ever exceeds 10ns [TIMESCALE] they are for practical purposes identical.

GPS enables receivers to generate a pulse-per-second signal ("1PPS" or just "PPS") accurate to the top of the current UTC second within 50 ns.

National time standards are also propagated through time radios. In the U.S., digital time signal is provided by WWVB in Colorado, driven directly by the NIST (National Institute of Standards and Technology) master civil time standard. Propagation delay to U.S. receivers varies but is constant by location and no more than 20 ms; being fixed, this can be easily compensated out. The jitter added to NIST time by the WWVB transmission system is about 6 ns [WWVBPRECISION], for a total jitter relative to UTC of about 26 ns at the transmitter. Atmospheric conditions and signal-processing jitter in the receiver may degrade this considerably, to the tune of 10-100ns - however some of that is fixed delay that can be compensated out by knowing your distance from the transmitter. Accuracy is better at night.

National time authorities may also offer a digital time reference via landline phone; the U.S.'s has two, supported by NIST and the U.S. Naval Observatory. NIST has a claimed accuracy of "a few milliseconds" [ACTS1]; USNO says 4 ms [ACTS2].

Clock types

A clock, in this context, is a device for delivering an approximation of a national time standard at a user’s location.

High-end precision clocks are based on rubidium oscillators (close relatives of the cesium time standards). Less expensive ones are based on a temperature-compensated crystal oscillator or TCXO, sometimes also seen as OCXO for "oven-compensated crystal oscillator"; these are more closely related to the non-temperature-stabilized oscillator in a quartz-crystal watch.

Due to frequency drift (induced mainly by temperature variations), all such clocks need to be periodically conditioned by an external signal from a time authority. The cost of a clock correlates with its "holdover" performance - how stable the oscillator’s frequency is and thus how little the time drifts between conditioning signals.

A "time radio" or "time receiver" is a clock that is conditioned by a national time radio source. High-end dedicated time receivers can achieve 50 ns accuracy [RADIO]; consumer-grade "atomic clocks" (not actually atomic at all but using a radio time signal) achieve a much less impressive 30 ms [HARCC] or even as poor as 150 ms [JUNGHANS]. Both are often constrained by siting problems and poor longwave propagation, leading to frequent loss of signal. In some parts of the U.S., most notably the Boswash corridor and the southern tip of Florida, coverage is so intermittent [WWVBMAP] as to make the WWVB signal nearly unusable. The technology works better for smaller, European-sized countries.

Time receivers' model designations often include the call sign of their radio source; for example, a WWVB receiver uses the U.S. national time radio, a DCF77 receiver uses the German national time radio, an MSF receiver uses the British national time radio, and a JJY receiver uses the Japanese national time radio. Some time receivers (especially those made for the European market) can use multiple stations. A useful table of national time radio stations is at [SPECTRUMWIKI].

Devices described as "GPS clocks" (or more technically as "GPS Disciplined Oscillators" or GPSDOs) are conditioned by the 1PPS output of a GPS receiver. Worst-case accuracy depends on the accuracy of the 1PPS and vendor data sheets commonly claim 100 ns, sometimes even 20 ns.

The GPS system standard [IS-GPS-200G] Section 3.3.4 specifies that GPS satellite clock (MSC) from each satellite be within 90 ns of USNO time to a certainty of one sigma. Adding in GPS satellite position uncertainty widens the time uncertainty as broadcast from the GPS Sat to 97 ns at one sigma. Any GPS propagation and reception errors will add to that uncertainly. Thus one needs to assume a GPSDO will track USNO time to better than to about 120-200 ns.

A plain GPS, without a stabilized crystal, can serve as a clock source. However, it will generally be unable to deliver time at all when it lacks memory of a previous 3D position fix and current lock on at least one satellite. In other words, it has no "holdover". (NTP patches around this by using the system clock for holdover.)

GPSes actually deliver two times: 1PPS at top of second, and in-band time expressed in a message packet over the serial or USB link. In consumer-grade GPSes, 1PPS may not be shipped to the serial connector; if it is, it becomes a pulse on a handshake line, usually DCD.

In-band time is usually delivered accurate to the second only and is shipped with significant and variable delay after 1PPS, typically on the order of 100 ms. By contrast, 1PPS time output total error will typically be close to 1μs.

Basics of NTP

NTP (Network Time Protocol) is a set of protocols that attempts to synchronize computer clocks across the Internet - ultimately, Universal Coordinated Time (UTC) as defined by several scale-related atomic clocks run by national standards institutes. NTP Version 4 is defined in [RFC-5905].

NTP service daemons running on each host do clock synchronization in the presence of variable network latency by monitoring those delays in real time and passing around messages that say, essentially, "I received your request at time X, I’m sending the reply at time Y and the propagation delay to my source of time is Z". Each daemon then uses rather complex algorithms that we won’t attempt to describe here to digest incoming messages into a composite "NTP time".

NTP conditions your system clock by noticing how your system clock time differs from deduced NTP time, then speeding up or slowing down your clock’s tick rate until it is synchronized. These tick-rate changes are usually extremely small, much too small for a human or even most software timing loops to ever notice. But large changes are possible.

NTP’s technique exploits the fact that while the quartz crystals used in PC clocks are not very accurate, they are quite stable - that is, their frequency drift in response to environmental changes is slow.

Most computers are just NTP clients. They send NTP requests to a set of servers and use the replies to adjust the local clock. It is generally expected that NTP clients will have an accuracy (that is, maximum divergence from the master atomic clock) of of "a few tens of milliseconds" [RFC5985]; however, problems such as asymmetric routing, bufferbloat, or large time jitter (especially likely on cable networks) can degrade accuracy to around 100 ms and even worse in extreme cases.

Some NTP hosts are time servers. They respond to NTP clients with time read from high-precision reference clocks (often abbreviated "refclocks") synchronized to national time standards. The refclocks are all the kinds of precision time source discussed earlier in this document.

You will hear time service people speak of "Stratum 0" (the reference clocks) "Stratum 1" (NTP servers directly connected to reference clocks) and "Stratum 2" (servers that get time from Stratum 1). Stratum 3 servers redistribute time from Stratum 2, and so forth. There are defined higher strata up to 15, but you will probably never see a public time server higher than Stratum 3 or 4.

Jitter induced by variable WAN propagation delays (including variations in switch latency and routing) makes it impractical to try to improve the accuracy of NTP time to much better than the "a few tens of milliseconds" of [RFC-5905].

Cost-effective clocks

There is about three orders of magnitude between the best achievable wide-area-network accuracy and even the lowest-end GPS-constrained clock or time radio. Of all the time sources described here, the only one not precise enough to drive WAN NTP is in-band time from a GPS without 1PPS
[Actually, a non-1PPS GPS with sufficiently clever firmware can be good enough - but they almost never are in practice, and never in consumer-grade hardware.]

Since the year 2000 GPSes have drastically decreased in price and improved in performance. For time-service purposes the important performance metric is weak-signal performance and ability to operate indoors.

A 1PPS-capable plain GPS that can operate reliably near a window is for NTP purposes nearly as good as a time radio or GPS clock, and orders of magnitude less expensive. Even the USB 1.1 polling interval of 1 ms does not introduce a disqualifying amount of jitter for WAN service.

LANs are a different matter. Because their propagation delays are lower and less variable, NTP can do about two orders of magnitude better in this context, easily sustaining 1 ms accuracy. The combination of NTP and [PTP] can achieve LAN time service another two orders of magnitude better.

GPS clocks and time radios remain, therefore, cost effective for driving NTP over LAN. This is significant in many scientific, industrial, and government deployments.

While pressure from plain GPSes has eroded the competitiveness of both GPS clocks and time radios, time radios have suffered more. While theoretically more accurate than GPS clocks, they have not improved in weak-signal performance in the dramatic way GPSes and GPS clocks have; they remain finicky and nearly as vulnerable to siting and skyview problems as the GPSes of decades ago.

Furthermore, the U.S. radio-clock industry was impacted when [WWVB] changed its modulation scheme at 2012-10-29T15:00:00Z. This didn’t affect consumer-grade "atomic" clocks, which resynchronize once a day and don’t use the fine details of the signal, but it obsolesced all the high-end equipment that conditioned on shorter time scales. At least one major timing-systems vendor (Spectracom) bailed out of the time-radio market entirely, and it is not clear there are any high-end vendors at all left in the U.S.


Some figures in this table are from [GPSD-HOWTO] and are explained in more detail there.

Table 1. Summary of worst-case deviation from UTC

National primary time standard

20 ns

WWVB time radio broadcast

26 ns

GPS 1PPS top of second

50 ns

Dedicated time receiver

50 ns

GPS-constrained clock

100 ns

1PPS delivered by OS kernel

1 μs (1000 ns)

Serial 1PPS

5 μs (5000 ns)

1PPS over USB 1.1

1 ms (1000000 ns)

1PPS over USB 2.0

100 μs (100000 ns)

NIST/USNO modem time

4 ms (4000000 ns)

Consumer-grade time radio

30-150 ms

Normal accuracy of NTP

~ 30 ms (3000000 ns)

Jitter of in-band GPS time

> 100 ms (100000000 ns)

Further Reading

You can find a practical how-to on setting up a local Stratum 1 time server using GPSD and an inexpensive GPS at [GPSD-HOWTO].



v1.0, 2015-03-10

Initial version.

v1.1, 2015-03-11

Lots of tiny corrections from G+ and the blog. Use the NTP accuracy estimate from RFC 5905.

v1.2, 2015-03-15

Clarifying language, proof-reading, and minor corrections.

v1.3, 2015-03-16

Text polishing, terminological cleanup.

v1.4, 2015-07-11

Text polishing, note upcoming change in FINRA, more about GPSDO precision.

v1.5, 2015-12-10

Fix typo in WWVB delay figure and date of modulation change.