Data sources

Where every map and clock on this site comes from: each dataset’s source, license, precision and known limits, and how they are kept current.

A weathered stone sundial with Roman numerals and an iron gnomon
Before standard time, every town kept time by its own sun.

Zone geometry

DatasetSourceLicenseNotes
World time-zone polygons (65 zones, 1000×500)Timezone Boundary Builder, tzdb 2026e (public/data/tzmap.json)Public domainSimplified from OSM-derived boundaries at ε=0.15°, equirectangular. Used for live day/night shading, world & regional maps.
US state boundaries (50 + DC) — scheduling boardD3 us-atlas states-10m, Albers-USA composite (public/data/us-albers.json)Public domain (US government work)Pre-projected Albers-USA with AK/HI insets baked in (the D3 us-state-choropleth pattern); city markers re-projected through the same transform so dots land exactly on the fills. Scaled to fill the 1300×1005 board.
US state boundaries (equirect, 50 + DC + PR)US Census TIGER via PublicaMundi us-states GeoJSON (public/data/us-states.json)Public domain (US government work)Projected into the same 1000×500 equirectangular frame; used by the state crop map (StateGrid) and terrain generation. Far-western Aleutians (lon < −180°) omitted.
City markers (101 US, 65 world)Curated list — IANA tzid + WGS84 lat/lon (public/data/us-cities.json, world-cities.json)—Each city’s zone is its IANA identifier; a city’s marker never overrides its tzid, so the clock can’t disagree with the zone.
Live times & UTC offsetsThe visitor’s browser IANA/ICU time zone database (Intl.DateTimeFormat)Runtime — no dataset shippedZero server time. Offsets and DST are computed at render time from the installed tz database, so the map can never be a season stale.

Known limitations

Update procedure

  1. On each IANA tz database release (typically twice a year), regenerate public/data/tzmap.json via the sibling repo’s build-tzmap script and diff the zone offsets.
  2. Re-run node scripts/build-states.mjs (Census updates) and node scripts/build-cities.mjs (curated city list) when their upstreams change.
  3. The live clocks need no rebuild — they read the visitor’s installed database at runtime, so tz updates propagate to users automatically.
  4. Corrections are verified against these same sources and filed at Contact & Corrections.