Terminal Weather Services SystemCurrent
UTC
Private technical preview

Collection · alignment · provenance

Methodology

How one current METAR or SPECI is selected, timed and compared across three public distribution paths—without treating those paths as independent observations.

Version
Public method 1.0
Last reviewed
Current scope
12 aerodromes · 3 paths
AWCJSON / report clock MET NorwayTAC / response clock NWS TGFTPTAC / file clock
  1. 01
    CollectFixed station scope
    source response
  2. 02
    ResolveStation + observed UTC
    DDHHMMZ → ISO
  3. 03
    PreserveSelected TAC + identity
    SHA-256
  4. 04
    CompareTime, then canonical content
    current snapshot
ClassificationALIGNED / CONTENT DIFFERENCE / SOURCE LAG / INCOMPLETE
01 / SCOPE

What the public comparison does today

The live network is a current-snapshot comparison of selected reports from fixed public distribution endpoints. It is evidence about those delivery paths at collection time—not a second source of official weather.

12European aerodromes
03Public distribution paths
01Latest selected report per path
00Claimed independent observations

Collection is limited to METAR and SPECI content for the following ICAO stations. The scope is coded as an allow-list; requests for arbitrary station identifiers are not made by the public network endpoint.

  • EFHKHelsinki
  • EPWAWarsaw
  • LFPBParis–Le Bourget
  • EHAMAmsterdam
  • EGLCLondon City
  • LEMDMadrid–Barajas
  • LTACAnkara
  • LIMCMilan Malpensa
  • ESSAStockholm Arlanda
  • EDDFFrankfurt
  • LOWWVienna
  • EIDWDublin
02 / COLLECTION

Fixed endpoints, scheduled background snapshots

The public collector runs independently of page visits. Each scheduled cycle fetches the three paths in parallel: AWC and MET Norway each use one request, while NWS TGFTP uses one station file per aerodrome with no more than four NWS requests active at once.

01

Aviation Weather Center Data API

One JSON request for the fixed station list. The six-hour response window permits source-provided AWC receipt-interval summaries; the newest record for each station is selected by observation time, then receipt time.

https://aviationweather.gov/api/data/metar
?ids=EFHK,EPWA,LFPB,EHAM,EGLC,LEMD,LTAC,LIMC,ESSA,EDDF,LOWW,EIDW
&format=json&hours=6
02

MET Norway Tafmetar

One extended TAC text request for the fixed station list. Non-empty lines are assigned to an allowed station; the latest resolvable observation time per station is retained.

https://api.met.no/weatherapi/tafmetar/1.0/metar.txt
?icao=EFHK,EPWA,LFPB,EHAM,EGLC,LEMD,LTAC,LIMC,ESSA,EDDF,LOWW,EIDW
&extended=true
03

NWS TGFTP station files

Twelve TAC file requests, one per allowed station. The leading file timestamp is separated from the report body and retained as station-file metadata.

https://tgftp.nws.noaa.gov/data/observations/metar/stations/{ICAO}.TXT
Collection triggerScheduled background

Collection runs at a configured preview cadence whether or not anyone is visiting the site. The cadence is an implementation setting for the private technical preview, not a service-level commitment.

Upstream timeout10 seconds

Each upstream request is aborted after ten seconds. A source or station failure is represented as unavailable rather than exposing upstream diagnostics.

Page deliveryLatest durable snapshot

Public pages read the latest successful snapshot from durable service storage and render its state, timestamp and evidence into the initial HTML. Browser JavaScript then checks for a newer view without withholding the server-rendered evidence.

Failure handlingPreserve and age

A usable partial cycle records unavailable paths explicitly. If a cycle produces no usable source data, it does not replace the last successful snapshot; that evidence remains available, continues to age and is presented as degraded rather than current.

Freshness signalling: responses distinguish the snapshot collection time from the time a response is served and expose the resulting age. The latest successful collection time remains visible when a later cycle fails. If no usable snapshot has ever been stored, the service presents a bounded unavailable state rather than an indefinite loading state.

03 / SOURCE CLOCKS

Every timestamp keeps its meaning

The comparison does not relabel every available time as “received.” Three clock families are exposed separately: report observation time, a source-supplied time, and Terminal Weather fetch completion.

PathObservation timeSource timeTerminal Weather time
AWCobsTimeReport-specific value supplied by AWC.receiptTimeReport-specific AWC receipt time.fetch completionRecorded after the AWC response is read.
MET NorwayDDHHMMZ → UTCDerived from the TAC day-time group.HTTP Last-ModifiedApplies to the response as a whole.fetch completionRecorded after the text response is read.
NWS TGFTPDDHHMMZ → UTCDerived from the TAC day-time group.HTTP Last-ModifiedApplies to that station file. Its leading file timestamp is retained separately.fetch completionRecorded after each station file is read.

These source clocks are not interchangeable latency measurements. AWC’s observation-to-receipt interval is calculated as receiptTime − obsTime and summarised for values in the six-hour AWC response. It is explicitly not presented as station-to-user or end-to-end delivery latency. HTTP Last-Modified values describe a response or file and may reflect different upstream processing stages.

04 / TAC INTEGRITY

Exact identity and semantic comparison are separate

The selected source representation is preserved for inspection and fingerprinting. A second, canonical representation removes known delivery wrappers so equivalent TAC can be compared without hiding operational tokens.

A / SELECTED REPRESENTATIONRaw TAC identity

The fingerprint input is the selected report string encoded as UTF-8. SHA-256 therefore detects changes in that string, including wrapper or terminator differences that canonical comparison may intentionally ignore.

AWC
rawOb as supplied in the selected JSON record
MET Norway
The selected TAC text line
NWS TGFTP
The trimmed report body; the complete response remains separately available as the source response field
SHA-25664 lowercase hexadecimal characters
B / COMPARISON REPRESENTATIONCanonical TAC

Canonicalisation uppercases tokens, collapses whitespace, removes trailing equals signs and ignores a delivery-level METAR wrapper. Report meaning remains in the comparison string.

  • SPECI remains an explicit report kind.
  • AUTO and COR are retained in stable positions.
  • NIL, the report body and remarks remain present.
  • Malformed input falls back to a conservative whitespace-and-case normalisation.
SourceMETAR EDDF 151350Z AUTO 04009KT CAVOK 31/12 Q1017CanonicalEDDF 151350Z AUTO 04009KT CAVOK 31/12 Q1017

Comparison basis: equality uses the complete canonical TAC string. When content differs, a token-level longest-common-subsequence comparison identifies tokens present only on one side. AWC is the display reference when available; otherwise the first available path is used. The token diff explains a classification—it does not alter it.

05 / CLASSIFICATION

A fixed precedence, applied per station

Classification is deterministic and uses only the records present in one Terminal Weather snapshot. The rules run in the order shown below.

  1. 01

    Incomplete

    At least one expected path has no selected report, or a selected report has no resolvable observation time.

    missing || undated
  2. 02

    Source lag

    All three paths have dated reports, but their resolved observation times are not identical. Paths not on the latest time are labelled lagging.

    unique(observed_at) > 1
  3. 03

    Content difference

    All observation times align, but more than one canonical TAC string is present.

    unique(canonical_tac) > 1
  4. 04

    Aligned

    Every expected path has a dated report, all observation times match, and all canonical TAC strings match.

    time = 1 · content = 1
ElementHandlingWhat is not inferred
CORRetained canonically and exposed as a correction-present flag.A current snapshot does not reconstruct the preceding revision.
AUTORetained canonically and exposed as an automatic-report flag.No judgement is made about sensor or station quality.
SPECIRetained as report kind and in the canonical representation.No scheduled-report cadence is assumed.
NILRetained in TAC and exposed as a NIL-present flag.NIL is not treated as a missing source response.
06 / OBSERVATION IDENTITY

Resolving a day-time group at month boundaries

TAC carries a day, hour and minute—not a month or year. The collector resolves that group before paths are aligned.

InputDDHHMMZ

A six-digit day-hour-minute group ending in Z must match the accepted syntax. Calendar validity is checked when timestamp candidates are created.

CandidatesM−1 · M · M+1

Valid UTC candidates are constructed for the previous, reference and following month.

Resolutionnearest(reference)

The valid candidate closest to the path’s reference time becomes the observation timestamp.

AWC reference

AWC obsTime is used directly when valid. TAC resolution is only a fallback, referenced to Terminal Weather fetch completion.

MET Norway reference

Response Last-Modified, falling back to Terminal Weather fetch completion.

NWS reference

Leading station-file timestamp, then file Last-Modified, then Terminal Weather fetch completion.

A malformed or calendar-impossible group resolves to no time and therefore makes the station comparison incomplete. In the current implementation, the effective comparison identity is the station being evaluated plus its resolved UTC observation time. No standalone permanent observation key or event identifier is emitted by the public endpoint.

07 / LIMITATIONS

What a snapshot can—and cannot—show

The public comparison is designed to expose investigatory signals. Its classifications require context and are not assertions of provider fault.

Shared origin

Paths are not independent observations

The three endpoints may carry the same underlying official report or depend on overlapping dissemination infrastructure. Agreement is distribution-path agreement, not independent meteorological corroboration.

Interval-based capture

Transitions can occur between snapshots

Scheduled collection is not a lossless record of every upstream transition. A transient difference may appear and disappear between collection cycles without being captured.

Clock semantics

Last-Modified is not receipt time

Response-wide and file-level modification times cannot be treated as equivalent to AWC’s report-specific receipt time or to first receipt at Terminal Weather.

Strict lag rule

Brief lag may be normal dissemination

Because the current rule has no grace period, a routine handover between observation cycles can produce a source-lag classification.

Canonicalisation

Known wrappers are intentionally ignored

Case, repeated whitespace, trailing equals signs and a delivery-level METAR token do not create a content difference. Their exact selected representations can still produce different fingerprints.

Availability

Incomplete is not a station-outage claim

The label can result from a path timeout, non-success response, unexpected response shape, missing station line or unresolvable timestamp.

08 / RETENTION

Durable latest snapshot, not an evidence archive

The public collector retains the latest successful usable network snapshot in durable service storage so the website and API can read it independently of visitor traffic. A newer usable cycle replaces that current snapshot; the public service does not expose queryable historical observations or correction chains.

Upstream pathsCurrent reports
Public previewDurable latest-good snapshotscheduled collection / explicit freshness
Not live todayQueryable evidence history

Event objects in the product preview are derived from the latest durable snapshot and are explicitly labelled current-snapshot; they are not proof that an event was observed and retained as part of a historical chain. Retained evidence history may be evaluated with future pilot partners only after storage duration, security controls, permitted data use and upstream licence terms are agreed. No public historical-retention commitment is currently made.

09 / SOURCES & SAFETY

Primary source documentation

The public paths remain attributed to their operators. Terminal Weather Services is an independent comparison service and is not affiliated with or endorsed by these organisations.

Method ownerTerminal Weather ServicesLast reviewed15 July 2026

Inspect the implementation

See the current method
applied to the network.

Request pilot access Open the live comparison Review the API preview