# Hometown and ZIP reference points

Hometown search uses the U.S. Census Bureau's 2026 National Places Gazetteer, downloaded September 12, 2026. These are representative geographic points for incorporated places and census-designated places, not street addresses, historical population centers, or the visitor's location.

- [Census Gazetteer documentation](https://www.census.gov/geographies/reference-files/time-series/geo/gazetteer-files.html)
- [Source ZIP](https://www2.census.gov/geo/docs/maps-data/data/gazetteer/2026_Gazetteer/2026_Gaz_place_national.zip)

`scripts/build-soccer-story-towns.py` preserves Census GEOID, cleaned display name, USPS state code, longitude and latitude. The source is U.S. federal government geographic data. Names are simplified only by removing Census entity-type suffixes. Search returns state-qualified choices; it never guesses between same-name towns.

ZIP search uses the existing server-side Census ZCTA index in `lib/data/zip-centroids.ts`, directly, to keep the reference point stable and independent of SoccerMapd's changing listing inventory. A ZIP without a corresponding ZCTA returns no match.

Precise device location comes only from a visitor-triggered browser geolocation request. It is used locally for the calculator. A separate unchecked option allows remembering it on that device, with a Forget action. It is not submitted to the hometown endpoint or analytics. Sharing exact coordinates requires a separate explicit choice; ordinary public stories use the chosen hometown or ZIP center.
