Precision Timing Reference · Patent Pending

Allan Deviation in Temporal Ensemble Weighting

OADEV · clock stability · NTS/NTP ensemble · BIPM weighting

Allan deviation (ADEV) is the IEEE standard metric for characterizing oscillator and clock stability. temporalBLOCK uses the overlapping variant (OADEV) to weight each time source in the live ensemble — producing a more stable anchor than round-trip-time weighting alone.

What Allan deviation measures

A round-trip-time (RTT) measurement tells you how long a single query took. It says nothing about whether the source is consistently stable — a source that is consistently 50 ms late is far more useful than one that swings between 1 ms and 200 ms on successive queries.

Allan deviation quantifies that stability. For a sequence of M phase measurements x₁, x₂, …, x_M taken at averaging interval τ, the overlapping ADEV is:

OADEV(τ) = √( 1 / (2(M−1)) · Σᵢ (x_{i+1} − xᵢ)² )

The averaging interval τ is the key parameter. Different noise processes dominate at different τ values, which is why a log-log plot of ADEV vs τ reveals the noise fingerprint of a clock:

τ regionDominant noise typeADEV slope
Short τWhite phase noise−1 (improves with averaging)
Mid τFlicker phase noiseflat
Long τRandom walk / drift+1 (degrades with averaging)

The minimum of the ADEV curve — the "noise floor" — identifies the optimal averaging interval and the best achievable stability for that source. temporalBLOCK evaluates each source at τ = 1 s, a practical choice that separates white-noise from drift behavior under typical internet timing conditions.

For a complete mathematical treatment, see the NIST Handbook of Frequency Analysis Techniques and IEEE Std 1139.

How temporalBLOCK uses it

The anchor loop runs a BIPM-style ensemble across all active time sources — NTS servers (e.g. Netnod), NTP pools, and optional PTP hardware. Each source contributes a weighted offset to the combined estimate.

Startup phase (RTT weighting): At startup, the loop does not yet have enough samples to compute a meaningful ADEV. During this phase, each source is weighted by the inverse of its round-trip time: a 10 ms RTT source gets roughly twice the weight of a 20 ms source. The anchor.ensemble.weightingBasis field reports "rtt" during this phase.

Steady-state phase (ADEV weighting): Once sufficient history has accumulated, the loop computes OADEV(τ=1 s) for each source and replaces RTT weights with stability weights. Each source's weight is proportional to 1 / OADEV². A source with OADEV = 2.5 ms outweighs one at 100 ms by approximately 40:1 in the ensemble. weightingBasis switches to "allanDev".

NTS servers (such as those running the Roughtime or NTS-KE protocol) typically produce OADEV values in the 0.5–5 ms range at τ = 1 s, while plain NTP over the public internet typically falls in the 20–200 ms range. This means a well-behaved NTS source dominates the ensemble by one to two orders of magnitude — producing a combined offset and dispersion that reflects the best available source rather than a naïve average.

The anchor.ensemble API field

Pro and Enterprise tiers receive an anchor.ensemble object on every /v1/full and /v1/spiral response. It exposes the live weighting state so you can observe exactly how much trust the anchor is placing in each source.

  • sources[] — per-source records, each with label, offsetMs, rttMs, allanDevMs (null during startup), and weight (normalized 0–1).
  • weightingBasis "allanDev" or "rtt" depending on whether enough ADEV history has accumulated.
  • combinedOffsetMs — the weighted mean offset applied to the anchor.
  • dispersionMs — the weighted ensemble dispersion, propagated into the Spiral confidence envelope.
// Example anchor.ensemble response (Pro/Enterprise tier)
{
  "weightingBasis": "allanDev",
  "combinedOffsetMs": 1.2,
  "dispersionMs": 0.8,
  "sources": [
    {
      "label": "nts:netnod-1",
      "offsetMs": 1.1,
      "rttMs": 18.4,
      "allanDevMs": 2.3,
      "weight": 0.924
    },
    {
      "label": "nts:netnod-2",
      "offsetMs": 1.4,
      "rttMs": 21.0,
      "allanDevMs": 2.7,
      "weight": 0.071
    },
    {
      "label": "ntp:pool",
      "offsetMs": 8.0,
      "rttMs": 44.2,
      "allanDevMs": 94.0,
      "weight": 0.005
    }
  ]
}

The dispersionMs value feeds directly into the Spiral confidence envelope — a smaller ensemble dispersion produces a tighter confidence band on the per-rung coordinates returned by /v1/spiral.

Why stability weighting outperforms RTT-only

RTT measures network latency — a proxy for offset uncertainty. But RTT is noisy: a single slow query due to a congested router can halve a source's weight even when that source is fundamentally stable. Worse, a consistently fast but jittery source (high ADEV) will be over-trusted.

ADEV weighting fixes this by measuring the source's long-run phase stability directly, averaged over many samples. It is immune to single-query outliers and directly penalizes jitter — the property that actually degrades offset estimates. This is why BIPM uses Allan variance (not RTT) as the foundation of international atomic time (TAI) ensemble algorithms.

For AI infrastructure, the practical consequence is a more consistent anchor.utcMs value across requests: the anchor does not jump when one NTP server responds slowly, because the ensemble is anchored to the historically stable NTS sources with very little weight given to noisier paths.

Related

The Temporal Spiral encoding is patent pending — U.S. Provisional Application No. 64/065,213 (filed 2026-05-14).