The chain

  1. Open the hospital's official page with a browser user-agent, a zh-CN Accept-Language, and a www / bare / http variant ladder.
  2. Sniff the charset and decode GB2312/GBK/GB18030 properly. Skipping this step turns a Chinese page into mojibake, and a mojibake title check passes silently.
  3. Strip the site's own shared navigation, so a menu never counts as body evidence.
  4. Store the raw snapshot, and a CSS selector that re-finds the exact text.
  5. Record what was found — and, separately, what was searched for and not found.

“Not established” is the load-bearing word

A cell is marked not established when the hospital's public pages do not settle it. It never means “the hospital does not offer this”. Several hospital sites answer every path with an HTTP 200 and a soft-404 landing page, which is exactly why reaching a page is never treated as proof that it says what we needed.

0 of 351 cells across the index are in that state. That is a measurement of our search, published rather than hidden.

What this site refuses to do

Corrections

If a hospital page we cite has changed, the claim here is wrong and we want to know. The correction path is the source URL on the claim itself.

Addressing a claim by its id

Every claim on this site is a corpus fact with a stable id such as fact-imc-op-daily, and that id is the anchor on the page it is rendered on: hospitals/wch/index.html#fact-imc-op-daily. A fact that belongs to more than one topic is given the id once and carries a link back to that first occurrence everywhere else.

facts.json lists every fact this site renders, keyed by that id, with the URL that finds it, the topics it belongs to, its review state and the official pages behind it. It exists so that anything holding a fact id — including the App, which ships ids and nothing else — can reach the evidence without scraping. It is generated from the same corpus as the pages, so the two cannot disagree.