The corpus
- Cities launched
- 104
- Published pages
- 4602
- Curated lists
- 714
- Upcoming events
- 101992
- Tour products mirrored
- 497669
- counted 2026-08-30 by the catalog ingest
- … of which bookable now
- 462901
Live data, and how fresh it is
594 live facts are on the site right now, each stamped with when it was last verified against its source.
| Stream | Cities covered | Newest verification | Oldest verification |
|---|---|---|---|
| Air quality | 142 | ||
| Exchange rates | 106 | ||
| events_this_week | 62 | ||
| Sunrise & sunset | 142 | ||
| Current weather | 142 |
Where the content comes from
4602 of 4602 published pages carry a named reviewer attribution: the publish transaction refuses the rest.
| Method | Published pages |
|---|---|
| Generated from verified data, gate-audited | 4602 |
Quality gates
Every draft passes an audit of structural, factual, and voice gates before it can publish. 6982 of 7388 audit verdicts on record are passes (94.5%): the failures are the system working: those drafts were regenerated or rejected, never published as-is. Most recent audit: .
Caught: defects our own checks found
Trust that can't survive a defect log isn't trust. These are real problems in our own data and pages, caught by our own checks, and what now prevents each from recurring.
-
A partner feed silently omitted six products
Caught: Six tour products existed in a partner's catalog but were never delivered by its ingestion feed in any status.
How: A full independent re-enumeration of the feed (464,029 product codes, kept as raw evidence) diffed against our mirror, then confirmed by fetching the six codes directly.
Now prevented by: The mirror now reconciles known gaps through a sanctioned bulk endpoint, and the ingestion ledger is re-verified against fresh enumerations after partner-side anomalies.
-
A ranking headline misrepresented a tie
Caught: The family-friendliness index had two cities sharing first place, but every headline surface said one city “leads” while the table beside it honestly showed “=1”.
How: An adversarial read of the leader phrasing against the live edition data during a routine review pass.
Now prevented by: All leader phrasing routes through one rank-group helper that renders ties as ties; exact-value tests pin the tied and untied wordings on every surface.
-
22 monthly guides silently hid two sections
Caught: Monthly guides generated before two schema fields existed shipped with empty packing checklists and insider tips — the components self-hide on empty data, so no error was visible anywhere.
How: A corpus-wide audit query counting published monthly pages with both fields empty.
Now prevented by: A production-data invariant keeps that count at zero (with a floor guard so an empty sweep can never pass vacuously); all 22 pages were regenerated through the audited pipeline.
-
A partner API renamed a field; half a million rows aged silently
Caught: The tour-catalog ingestion read lastUpdatedDate where the wire sends lastUpdatedAt, so 467k mirrored products carried no modification timestamp.
How: A completeness investigation diffing the mirror against a fresh full enumeration noticed every row had a NULL timestamp.
Now prevented by: A fixture test pins the exact wire keys; 463,747 rows were backfilled from raw feed archives.
-
173 pages carried internally contradictory scores
Caught: Published pages whose prose named a score different from the database's ground-truth value for the same city.
How: A corpus-wide consistency gate comparing every numeric claim in published prose against the scores table.
Now prevented by: The gate runs on every draft before publish, a production-data invariant keeps the published corpus at zero contradictions, and all 173 pages were regenerated.
-
The content judge punished complete articles
Caught: Quality judges scored well-formed articles as broken because the sample sent to them was byte-truncated mid-word, making endings look mangled.
How: Root-cause analysis of judge verdicts that disagreed with human reads of the same pages.
Now prevented by: Samples truncate at sentence boundaries; a regression test pins the boundary behavior.
The pledge
Rankings are never sold: the code that ranks never sees who pays us (how that's enforced). Research index data is published for reuse under CC BY-SA 4.0 at /research/, and the measured tables behind our surfaces are downloadable as CSV/JSON with citation lines at /data/downloads/. Found a number that looks wrong? We treat corrections as contributions: the corrections process is on the standards page.