NTPsec

A-ntpsec-3-hour-stats

Report generated: Thu Jun 8 05:04:12 2023 UTC
Start Time: Thu Jun 8 02:04:12 2023 UTC
End Time: Thu Jun 8 05:04:12 2023 UTC
Report published: Wed Jun 07 22:04:17 2023 PDT
Report Period: 0.1 days

Local Clock Time/Frequency Offsets

local offset plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Local Clock Time Offset -1.383 -1.143 -0.833 0.000 0.896 1.329 1.760 1.729 2.472 0.536 0.011 µs -3.748 8.895
Local Clock Frequency Offset -54.932 -54.382 -53.970 -50.354 -46.829 -45.990 -45.547 7.141 8.392 2.341 -50.526 ppb -1.158e+04 2.63e+05

The time and frequency offsets between the ntpd calculated time and the local system clock. Showing frequency offset (red, in parts per million, scale on right) and the time offset (blue, in μs, scale on left). Quick changes in time offset will lead to larger frequency offsets.

These are fields 3 (time) and 4 (frequency) from the loopstats log file.



Local RMS Time Jitter

local jitter plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Local RMS Time Jitter 0.314 0.425 0.504 0.714 1.000 1.145 1.427 0.496 0.720 0.154 0.723 µs 62.27 281.8

The RMS Jitter of the local clock offset. In other words, how fast the local clock offset is changing.

Lower is better. An ideal system would be a horizontal line at 0μs.

RMS jitter is field 5 in the loopstats log file.



Local RMS Frequency Jitter

local stability plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Local RMS Frequency Jitter 141.000 163.000 183.000 254.000 348.000 393.000 445.000 165.000 230.000 50.398 257.295 10e-12 81.99 396.4

The RMS Frequency Jitter (aka wander) of the local clock's frequency. In other words, how fast the local clock changes frequency.

Lower is better. An ideal clock would be a horizontal line at 0ppm.

RMS Frequency Jitter is field 6 in the loopstats log file.



Local Clock Time Offset Histogram

local offset histogram plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Local Clock Offset -1.383 -1.143 -0.833 0.000 0.896 1.329 1.760 1.729 2.472 0.536 0.011 µs -3.748 8.895

The clock offsets of the local clock as a histogram.

The Local Clock Offset is field 3 from the loopstats log file.



Local Temperatures

local temps plot

Local temperatures. These will be site-specific depending upon what temperature sensors you collect data from. Temperature changes affect the local clock crystal frequency and stability. The math of how temperature changes frequency is complex, and also depends on crystal aging. So there is no easy way to correct for it in software. This is the single most important component of frequency drift.

The Local Temperatures are from field 3 from the tempstats log file.



Local Frequency/Temp

local freq temps plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Local Clock Frequency Offset -54.932 -54.382 -53.970 -50.354 -46.829 -45.990 -45.547 7.141 8.392 2.341 -50.526 ppb -1.158e+04 2.63e+05
Temp ZONE0 51.540 51.540 51.540 52.078 52.616 52.616 52.616 1.076 1.076 0.329 52.060 °C

The frequency offsets and temperatures. Showing frequency offset (red, in parts per million, scale on right) and the temperatures.

These are field 4 (frequency) from the loopstats log file, and field 3 from the tempstats log file.



Local GPS

local gps plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
nSats 8.000 8.000 9.000 10.000 11.000 11.000 11.000 2.000 3.000 0.721 9.989 nSat 2163 2.831e+04
TDOP 0.610 0.610 0.680 0.910 1.190 1.580 1.640 0.510 0.970 0.172 0.902 89.85 451.3

Local GPS. The Time Dilution of Precision (TDOP) is plotted in blue. The number of visible satellites (nSat) is plotted in red.

TDOP is field 3, and nSats is field 4, from the gpsd log file. The gpsd log file is created by the ntploggps program.

TDOP is a dimensionless error factor. Smaller numbers are better. TDOP ranges from 1 (ideal), 2 to 5 (good), to greater than 20 (poor). Some GNSS receivers report TDOP less than one which is theoretically impossible.



Server Offsets

peer offsets plot

The offset of all refclocks and servers. This can be useful to see if offset changes are happening in a single clock or all clocks together.

Clock Offset is field 5 in the peerstats log file.



Server Offset 104.131.155.175

peer offset 104.131.155.175 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset 104.131.155.175 -0.233 -0.233 -0.233 3.494 4.350 4.350 4.350 4.583 4.583 1.328 2.929 ms 3.903 7.99

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Offset 169.229.128.134

peer offset 169.229.128.134 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset 169.229.128.134 0.572 0.572 0.963 2.240 4.504 4.783 4.783 3.541 4.211 0.897 2.281 ms 8.872 27.06

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Offset 173.11.101.155

peer offset 173.11.101.155 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset 173.11.101.155 -5.160 -5.160 -1.947 0.394 3.344 3.994 3.994 5.291 9.155 1.858 0.308 ms -3.392 9.126

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Offset 178.62.68.79

peer offset 178.62.68.79 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset 178.62.68.79 1.015 1.015 1.015 1.552 2.443 2.443 2.443 1.428 1.428 0.435 1.537 ms 24.43 87.93

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Offset 216.218.254.202

peer offset 216.218.254.202 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset 216.218.254.202 1.786 1.786 1.874 2.990 4.664 4.742 4.742 2.790 2.956 0.718 3.178 ms 50.77 213.8

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Offset 66.220.9.122

peer offset 66.220.9.122 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset 66.220.9.122 1.366 1.366 1.440 3.050 4.472 4.552 4.552 3.032 3.186 0.839 3.062 ms 26.45 92.4

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Offset SHM(0)

peer offset SHM(0) plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset SHM(0) -100.154 -99.739 -99.355 -97.968 -96.373 -95.713 -94.926 2.982 4.026 0.950 -97.946 ms -1.129e+06 1.175e+08

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Offset SHM(1)

peer offset SHM(1) plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Offset SHM(1) -1.384 -1.144 -0.834 0.000 0.897 1.330 1.761 1.731 2.474 0.537 0.011 µs -3.749 8.892

The offset of a server in seconds. This is useful to see how the measured offset is behaving.

The chart also plots offset±rtt, where rtt is the round trip time to the server. NTP can not really know the offset of a remote chimer, NTP computes it by subtracting rtt/2 from the offset. Plotting the offset±rtt reverses this calculation to more easily see the effects of rtt changes.

Closer to 0s is better. An ideal system would be a horizontal line at 0s. Typical 90% ranges may be: local LAN server 80µs; 90% ranges for WAN server may be 4ms and much larger.

Clock Offset is field 5 in the peerstats log file. The Round Trip Time (rtt) is field 6 in the peerstats log file.



Server Jitters

peer jitters plot

The RMS Jitter of all refclocks and servers. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter 104.131.155.175

peer jitter 104.131.155.175 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter 104.131.155.175 1.227 1.227 1.227 2.034 3.288 3.288 3.288 2.060 2.060 0.681 2.067 ms 14.89 46.96

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter 169.229.128.134

peer jitter 169.229.128.134 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter 169.229.128.134 1.031 1.031 1.127 2.117 20.233 20.440 20.440 19.105 19.409 5.683 4.669 ms 1.237 3.458

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter 173.11.101.155

peer jitter 173.11.101.155 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter 173.11.101.155 1.127 1.127 1.336 3.455 8.897 12.068 12.068 7.561 10.942 2.598 4.066 ms 3.262 9.565

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter 178.62.68.79

peer jitter 178.62.68.79 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter 178.62.68.79 0.873 0.873 0.873 1.525 4.431 4.431 4.431 3.558 3.558 1.326 1.999 ms 2.852 6.684

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter 216.218.254.202

peer jitter 216.218.254.202 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter 216.218.254.202 0.828 0.828 0.959 1.960 8.594 9.151 9.151 7.635 8.324 2.188 2.857 ms 2.489 6.884

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter 66.220.9.122

peer jitter 66.220.9.122 plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter 66.220.9.122 0.658 0.658 0.744 1.756 8.083 9.522 9.522 7.339 8.863 2.158 2.495 ms 2.489 7.609

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter SHM(0)

peer jitter SHM(0) plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter SHM(0) 0.060 0.088 0.123 0.304 0.926 1.270 1.739 0.803 1.182 0.263 0.390 ms 3.106 10.16

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Server Jitter SHM(1)

peer jitter SHM(1) plot

Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Server Jitter SHM(1) 0.226 0.279 0.363 0.668 1.291 1.586 2.016 0.928 1.307 0.281 0.723 µs 9.697 32.48

The RMS Jitter of a server. Jitter is the current estimated dispersion, in other words the variation in offset between samples.

Closer to 0s is better. An ideal system would be a horizontal line at 0s.

RMS Jitter is field 8 in the peerstats log file.



Summary


Percentiles...... Ranges...... Skew- Kurt-
Name Min1%5%50%95% 99%Max   90%98%StdDev  MeanUnits nessosis
Local Clock Frequency Offset -54.932 -54.382 -53.970 -50.354 -46.829 -45.990 -45.547 7.141 8.392 2.341 -50.526 ppb -1.158e+04 2.63e+05
Local Clock Time Offset -1.383 -1.143 -0.833 0.000 0.896 1.329 1.760 1.729 2.472 0.536 0.011 µs -3.748 8.895
Local RMS Frequency Jitter 141.000 163.000 183.000 254.000 348.000 393.000 445.000 165.000 230.000 50.398 257.295 10e-12 81.99 396.4
Local RMS Time Jitter 0.314 0.425 0.504 0.714 1.000 1.145 1.427 0.496 0.720 0.154 0.723 µs 62.27 281.8
Server Jitter 104.131.155.175 1.227 1.227 1.227 2.034 3.288 3.288 3.288 2.060 2.060 0.681 2.067 ms 14.89 46.96
Server Jitter 169.229.128.134 1.031 1.031 1.127 2.117 20.233 20.440 20.440 19.105 19.409 5.683 4.669 ms 1.237 3.458
Server Jitter 173.11.101.155 1.127 1.127 1.336 3.455 8.897 12.068 12.068 7.561 10.942 2.598 4.066 ms 3.262 9.565
Server Jitter 178.62.68.79 0.873 0.873 0.873 1.525 4.431 4.431 4.431 3.558 3.558 1.326 1.999 ms 2.852 6.684
Server Jitter 216.218.254.202 0.828 0.828 0.959 1.960 8.594 9.151 9.151 7.635 8.324 2.188 2.857 ms 2.489 6.884
Server Jitter 66.220.9.122 0.658 0.658 0.744 1.756 8.083 9.522 9.522 7.339 8.863 2.158 2.495 ms 2.489 7.609
Server Jitter SHM(0) 0.060 0.088 0.123 0.304 0.926 1.270 1.739 0.803 1.182 0.263 0.390 ms 3.106 10.16
Server Jitter SHM(1) 0.226 0.279 0.363 0.668 1.291 1.586 2.016 0.928 1.307 0.281 0.723 µs 9.697 32.48
Server Offset 104.131.155.175 -0.233 -0.233 -0.233 3.494 4.350 4.350 4.350 4.583 4.583 1.328 2.929 ms 3.903 7.99
Server Offset 169.229.128.134 0.572 0.572 0.963 2.240 4.504 4.783 4.783 3.541 4.211 0.897 2.281 ms 8.872 27.06
Server Offset 173.11.101.155 -5.160 -5.160 -1.947 0.394 3.344 3.994 3.994 5.291 9.155 1.858 0.308 ms -3.392 9.126
Server Offset 178.62.68.79 1.015 1.015 1.015 1.552 2.443 2.443 2.443 1.428 1.428 0.435 1.537 ms 24.43 87.93
Server Offset 216.218.254.202 1.786 1.786 1.874 2.990 4.664 4.742 4.742 2.790 2.956 0.718 3.178 ms 50.77 213.8
Server Offset 66.220.9.122 1.366 1.366 1.440 3.050 4.472 4.552 4.552 3.032 3.186 0.839 3.062 ms 26.45 92.4
Server Offset SHM(0) -100.154 -99.739 -99.355 -97.968 -96.373 -95.713 -94.926 2.982 4.026 0.950 -97.946 ms -1.129e+06 1.175e+08
Server Offset SHM(1) -1.384 -1.144 -0.834 0.000 0.897 1.330 1.761 1.731 2.474 0.537 0.011 µs -3.749 8.892
TDOP 0.610 0.610 0.680 0.910 1.190 1.580 1.640 0.510 0.970 0.172 0.902 89.85 451.3
Temp ZONE0 51.540 51.540 51.540 52.078 52.616 52.616 52.616 1.076 1.076 0.329 52.060 °C
nSats 8.000 8.000 9.000 10.000 11.000 11.000 11.000 2.000 3.000 0.721 9.989 nSat 2163 2.831e+04
Summary as CSV file


Glossary:

frequency offset:
The difference between the ntpd calculated frequency and the local system clock frequency (usually in parts per million, ppm)
jitter, dispersion:
The short term change in a value. NTP measures Local Time Jitter, Refclock Jitter, and Server Jitter in seconds. Local Frequency Jitter is in ppm or ppb.
kurtosis, Kurt:
The kurtosis of a random variable X is the fourth standardized moment and is a dimension-less ratio. ntpviz uses the Pearson's moment coefficient of kurtosis. A normal distribution has a kurtosis of three. NIST describes a kurtosis over three as "heavy tailed" and one under three as "light tailed".
ms, millisecond:
One thousandth of a second = 0.001 seconds, 1e-3 seconds
mu, mean:
The arithmetic mean: the sum of all the values divided by the number of values. The formula for mu is: "mu = (∑xi) / N". Where xi denotes the data points and N is the number of data points.
ns, nanosecond:
One billionth of a second, also one thousandth of a microsecond, 0.000000001 seconds and 1e-9 seconds.
percentile:
The value below which a given percentage of values fall.
ppb, parts per billion:
Ratio between two values. These following are all the same: 1 ppb, one in one billion, 1/1,000,000,000, 0.000,000,001, 1e-9 and 0.000,000,1%
ppm, parts per million:
Ratio between two values. These following are all the same: 1 ppm, one in one million, 1/1,000,000, 0.000,001, and 0.000,1%
‰, parts per thousand:
Ratio between two values. These following are all the same: 1 ‰. one in one thousand, 1/1,000, 0.001, and 0.1%
refclock:
Reference clock, a local GPS module or other local source of time.
remote clock:
Any clock reached over the network, LAN or WAN. Also called a peer or server.
time offset:
The difference between the ntpd calculated time and the local system clock's time. Also called phase offset.
σ, sigma:
Sigma denotes the standard deviation (SD) and is centered on the arithmetic mean of the data set. The SD is simply the square root of the variance of the data set. Two sigma is simply twice the standard deviation. Three sigma is three times sigma. Smaller is better.
The formula for sigma is: "σ = √[ ∑(xi-mu)^2 / N ]". Where xi denotes the data points and N is the number of data points.
skewness, Skew:
The skewness of a random variable X is the third standardized moment and is a dimension-less ratio. ntpviz uses the Pearson's moment coefficient of skewness. Wikipedia describes it best: "The qualitative interpretation of the skew is complicated and unintuitive."
A normal distribution has a skewness of zero.
upstream clock:
Any server or reference clock used as a source of time.
µs, us, microsecond:
One millionth of a second, also one thousandth of a millisecond, 0.000,001 seconds, and 1e-6 seconds.



This page autogenerated by ntpviz, part of the NTPsec project
html 5    Valid CSS!