Loading…
Loading…
What the numbers mean, what they don’t, and the design decisions that keep the map honest.
Every timestamp on this site is when LTA published the message, not when the accident happened. We keep report time, first and last observation, and clearance time distinct and never conflate them. Archive posts use their post time as a proxy for the accident, marked approximate to about an hour.
A single accident generates many update messages as it is reported and cleared. We deduplicate observations into one canonical event using the source id, the reported time, and a hash of the exact message. Coordinates are stored on every observation so a later audit can detect drift, but they are not part of the dedupe key.
Precision is encoded in the shape of the mark, so it survives greyscale and colour-blindness. A named road with no coordinate is drawn as the whole road, not a point along it.
Collector-observed periods get a real coverage percentage against expected five-minute slots. The provisional archive has no polls, so it is never given a percentage until an overlap audit measures it. Counts are always reported as a rate per observed day, so two unequal windows are never compared raw.
Provenance is derived, not assumed: an incident’s source is the set of sources across its observations. An accident seen by both the live API and the archive is evidence the backfill works — a two-value field would silently corrupt it.