You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every published address outside China and Hong Kong carries a postcode in its country's format. Imports store postcode-less rows unpublished; post-import inference publishes them once a postcode is found, so an interrupted sync never publishes an address without one.
Missing postcodes are filled from official sources when the match is unique: Chunghwa Post township codes (TW), Statistics Canada NAR (CA), IBGE CNEFE 2022 (BR), BANO (FR), PDOK BAG (NL) and OpenStreetMap postcode areas (DE). Register matches need the same house number within 60 m.
An inferred postcode re-checks the address's administrative names, correcting departments it disproves (for example Coinches, 88100, Vosges).
Rows retired for good (missing postcode, structure or administrative-name repairs) are deleted with their evidence once their country's sources have run. Rows imported in the last 24 hours and Korean rows waiting for postcode areas are kept.
Sync
Storage-limit failures are a resource wait, not a source fault: no job starts above the soft limit or below the free-disk reserve, and sources suspended only by storage resume once there is room.
Overture address files are mirrored locally once per release and exported from disk. DuckDB threads, memory and the storage budget are configurable.
Popular metro areas fill first, then popular regions, then the balanced remainder. Popular-city exports run before regional shards.
Country counts and coverage after an import read the generation index; the full projection reconciliation runs at most once a day.
Translation
English-first publication: an address publishes once its English variant is valid, and Chinese fields are translated later.
Phrase-like renderings are rejected (sentences, replies, times, missing street types), and Chinese street types are normalized.
Translation recovery queries walk their indexes per status, ending statement timeouts under load.
Index-Translate runs through OpenAI-compatible credentials, so self-hosted or proxied Index models work beside the official route.
Upgrade notes
The first start rescans each country once for postcodes and administrative names, then purges permanently retired rows. Allow several hours on a large pool.
New optional settings: ADDRESS_STORAGE_SOFT_LIMIT_BYTES, ADDRESS_STORAGE_HARD_LIMIT_BYTES and POSTGRES_SHM_SIZE.
Verification
1,720 JavaScript/TypeScript tests, Python tests, type checks, build and the public-release audit.
Live API validation, 500 live address-contract samples for each of 27 countries, and a full-pool quality audit with every blocking rule at zero.