How an incident becomes a point on the map

This service checks LTA’s Traffic Incidents feed every two minutes. It keeps the source response, records each observation, and groups observations that appear to describe one continuing incident.

This is a history of accidents observed through the LTA feed, not a complete record of every traffic accident in Singapore.

Collection and traceability

The collector requests every page of the Traffic Incidents endpoint. A poll is authoritative only when every required page is received and decoded. The exact response is preserved for diagnostics, while each valid record is stored as a separate observation linked to its poll.

Observations and incidents are different

An observation means one source record seen during one poll. An incident is our deterministic grouping of observations believed to describe one continuing event. The feed does not provide a documented stable incident identifier, so this grouping is necessarily an interpretation.

Time in source messages

LTA messages can begin with a day, month, and time but no year. The collector interprets this in Singapore time and chooses the nearest plausible year around the observation date. When a time cannot be parsed, the observation is retained and the map simply omits that field.

Matching and lifecycle

Matching algorithm deterministic-v1 compares incident type, exact source coordinates, normalised message text, parsed source time, and distance. It first looks for an exact continuing observation, then uses strict nearby time-and-distance rules. No LLM, embedding, or invented confidence score is used.

An incident is marked ended only after it is absent from three consecutive successful, authoritative polls. Failed or partial polls never advance that count. A strongly matching observation may reopen an incident that ended within the previous 15 minutes.

What the map cannot establish