Skip to content
Provenance

Where our data comes from

Every source we poll for Vietnam, its live status, and what each dataset is actually derived from. This page is generated from the same registry the ingest pipeline runs on, so a broken or stale feed shows up here as broken or stale. The gaps are listed too.

Live source registry

Read from the public source registry at render time. These are the only sources that feed this site — there are no others held back, and nothing on this list is aspirational.

8

Sources configured

3

Delivering

2

Enabled but not delivering

3

Configured, switched off

Official & government(1)

Government, meteorological, disaster-management, police or embassy feeds published by the body itself.

SourcePublisherStatusLast delivered
GDACS — Global Disaster Alert and Coordination Systemgdacs.orgDelivering24 Aug 2026, 21:15 UTC

News publishers(5)

Editorial outlets whose public RSS or Atom feeds we poll. We ingest their headline, summary and link; we do not republish their article text.

SourcePublisherStatusLast delivered
VnExpress Internationale.vnexpress.netDelivering24 Aug 2026, 21:15 UTC
VnExpress International — Travele.vnexpress.netDelivering24 Aug 2026, 21:15 UTC
Vietnam News (VNA) — Latestvietnamnews.vnPausedUnknown
Vietnam News (VNA) — Societyvietnamnews.vnPausedUnknown
Google News VietnamGoogle NewsSwitched offNever

Community & social platforms(2)

Platforms where content is written by members of the public. Anything sourced here is unverified by construction.

SourcePublisherStatusLast delivered
Reddit VietnamRedditSwitched offNever
X VietnamX (Twitter)Switched offNever

What the statuses mean:

Delivering — the last collection attempt succeeded, and the timestamp shown is that success.

Failing — recent attempts have failed. We do not retain the last successful timestamp, so we cannot tell you how stale it is.

Paused — failed three times in a row, so the poller now skips it entirely. No new data is arriving from this source until someone fixes it.

Never polled — enabled, but has never been polled successfully. It has contributed nothing so far.

Switched off — present in the registry but not enabled. It has never contributed anything and is not contributing now.

Registry read at 24 Aug 2026, 21:20 UTC. This page is regenerated on the same cycle as the poller, so these figures can be up to one cycle old.

What each dataset is derived from

Counts are read live from the API, or from the data file that renders the pages, at the moment this page is generated. "Live records" are rows in the database the API serves. "Curated records" are hand-maintained entries in a file in our codebase — a directory we wrote and check, not a measurement.

Safety alerts

1 live records

Derived from: Three things: safety-classified items from the news feeds listed above, weather warnings computed from Open-Meteo forecast data, and moderated community reports submitted by users. Every alert carries the source it came from.

Not derived from: Any official emergency broadcast, government warning system, or civil-defence feed. We are not connected to one. An absence of alerts here is not evidence that no warning has been issued.

News

1019 live records

Derived from: Headlines, summaries and links polled from the news publishers listed above, then classified for safety relevance and region by a language model. The classification is automated and not reviewed by a human before publication.

Not derived from: Original reporting. We do not have journalists. Coverage is limited to what the feeds above publish in English — an incident no listed outlet covers does not appear here.

Community reports

0 live records

Derived from: Submissions from site and app users, passed through automated content moderation before they appear.

Not derived from: Verified fact. Moderation screens for abuse and spam; it does not confirm that an incident happened. Treat every report as one person's unverified account.

Region safety scores

19 live records

Derived from: A composite computed from the volume and severity of active alerts, the volume of community reports, and curated road-risk data for the region, recomputed on every poll cycle. It is a relative index built from our own coverage.

Not derived from: Crime statistics, accident records, or any official measurement. A region with more reports can score lower than a genuinely more dangerous region with no coverage. The score measures what we can see, which is not the same as what is there.

Hospitals

123 live records

Derived from: A curated directory plus records imported from OpenStreetMap. Names, locations and phone numbers are point-in-time entries.

Not derived from: A live availability, capacity, or admissions feed. We do not know whether a hospital is open right now, whether it has beds, or whether it will accept your insurance. Phone numbers can go out of date without us knowing.

Beaches

80 live records

Derived from: A location directory: names, coordinates, and province, largely imported from OpenStreetMap.

Not derived from: Swim-safety monitoring of any kind. We do not measure flag status, current strength, or water quality, and we do not receive them from anyone who does. See the section below.

Scams

12 live records

Derived from: A curated catalogue of scam patterns compiled from reporting and community submissions, describing how each one works and how to avoid it.

Not derived from: A live incident feed or a police record. Entries describe recurring patterns, not events that happened today at a specific place. Report counts reflect how often something has been reported to us, not how often it occurs.

What we deliberately do not report

Our rule is that we do not report a value we did not measure. Where a measurement does not exist, the API omits the field entirely rather than returning a default that would read as a reading.

Beach safety is where this bites hardest. Every beach in our database is unmonitored: nobody sends us flag status, current strength, or water quality, and we do not measure them. So the API returns those beaches with monitoring explicitly marked false and the three condition fields removed from the response — not set to null, not defaulted to green, removed. A green flag is a claim that someone checked the water. We have not, so we do not make it. If you need beach conditions, read the physical flags on the beach and ask the lifeguards.

How often this updates

  • News feeds are polled every 15 minutes by a scheduled job. A feed that has failed three consecutive polls is skipped until it is fixed, so its data simply stops updating.
  • Region safety scores, alert expiry, and weather-derived alerts are recomputed on the same 15-minute cycle.
  • Once a day, at 03:00 UTC, old news articles are pruned and daily digests are generated.
  • Curated datasets — hospitals, beaches, scams, roads — do not update on a schedule at all. They change when we edit them, which may be months apart. The record counts above tell you the size of these files, not their freshness.

Gaps we have not closed

Stated plainly, because you cannot judge the data without them. These are generated from the live registry where possible, not written by hand.

Configured sources that are not running

3 sources are present in the registry but switched off, and have never contributed a single record. They are listed above as switched off rather than hidden, because a source we have configured but never run is not coverage.

Sources that are enabled but not delivering

2 enabled sources are currently failing, paused, or have never been polled successfully. While a source is in that state its coverage is simply missing, and because we do not retain a last-success timestamp we cannot tell you precisely how much is missing.

Community reports are unverified

Reports are submitted by the public and screened by automated moderation for abuse and spam. Nobody verifies that the incident described actually happened, and we have no mechanism to do so. They are useful as signal and should not be read as fact.

Tell us we are wrong

If a record here is wrong, stale, or missing — a hospital that has moved, a phone number that no longer answers, a scam that no longer runs, a source we should be polling — we want to know. Corrections are the cheapest way to improve this dataset and we would rather hear it from you than not know.

Licensing and reuse

VietnamSafe data is published under Creative Commons Attribution 4.0. You may use it commercially, redistribute it, and build on it, provided you credit the source and link back. If you republish a figure from this dataset, please also carry the caveats on this page — a number reused without its provenance is how misleading claims get made.

Related