Postal Codes Dataset for Curaçao, CW

366
Updated:
Files:1
Size:4.14 kB
Rows:100
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Curaçao, CW including name of the city, town, or place, various administrative divisions and alternative city names.

Part of a Data Solution

  • Postal Codes Solution

    Every worldwide postal-code dataset in one bundle — the ultimate global reference for precise postal codes.

    Explore →

API Access

Access dataset files directly from scripts, code, or AI agents.

Browse dataset files
Dataset Files

Each file has a stable URL (r-link) that you can use directly in scripts, apps, or AI agents. These URLs are permanent and safe to hardcode.

/logistics/postal-codes-cw/
https://datahub.io/logistics/postal-codes-cw/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-cw/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-cw/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-cw/_r/-/README.md
https://datahub.io/logistics/postal-codes-cw/_r/-/datapackage.yaml
Key Files

Start with these files — they give you everything you need to understand and access the dataset.

datapackage.yaml— metadata & schema
https://datahub.io/logistics/postal-codes-cw/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-cw/_r/-/README.md
Typical Usage
  1. 1. Fetch datapackage.yaml to inspect schema and resources
  2. 2. Download data resources listed in datapackage.yaml
  3. 3. Read README.md for full context

Data Files

Explore with AI

postal-codes-cw

Download

Download CSV

About

Last updated
6 October 2026
Total rows
100
Format
CSV
File size
4.14 kB

About this dataset

Curaçao (CW): migration notes

Internal record of the P6 migration from the old scripts to the producer: the discrepancies found, their causes, and who decided what. This is a dated record, so the numbers are as of the migration and not kept current. It is not shipped.

  • Issue: pc-28e.8.7
  • Commit: see the P6 cw: commit on feat/single-source-of-truth
  • Parity verdict: format-only (gate: pass, exit 0) against the live public CSV
  • Producer: custom, refresh disabled, postal_code_required: false

Sources

InputURLNotes
GeoNames gazetteer dumphttps://download.geonames.org/export/dump/CW.zipMember CW.txt. Stable, unversioned URL; the old builder read a local copy of it (sources/CW_dump.txt)
  • There is no GeoNames postal export for Curaçao (export/zip/CW.zip is a 404) and no postal code system; see .licensing-notes.md.

Parity against the live public CSV (2026-10-05)

Rows: 100 live and 100 fresh, none only on one side, 0 changed cells, no cell classes. The bytes differ only in line endings: live is CRLF, the producer writes LF. Row order is identical.

No discrepancies to explain.

Decisions

DecisionByBasis
pipeline.postal_code_required: falsePlan (SST plan, P6: "covers the directories with no postcode system")build.py otherwise rejects the intentionally empty postal_code
primaryKey: [place_name, latitude, longitude]Agent, from the old builder's uniqueness assertplace_name alone repeats (e.g. Bandabou, San Pedro); the triple is unique in the produced CSV, and postal_code can't be in a key since it is always empty
latitude/longitude typed number; accuracy stays stringStanding rule (real types, as in ad)accuracy is always empty here, not numeric; its description now says so (the old builder's own description said the dump has no accuracy scale). The GeoNames accuracy wording doesn't apply: this dataset has no GeoNames accuracy values
Drop the "at least 90 places" assertBrief (no hardcoded row counts)Replaced by "at least one populated place" plus the structural checks
CRLF → LFStanding sign-off (format-only)Pre-approved

Transforms carried over

From build_postal_codes_product.py (2026-09-04):

  • Keep feature class P (populated places) only.
  • place_name = the dump's name; latitude/longitude verbatim.
  • postal_code, all admin_*, accuracy, alternative_city_name empty.
  • Sort by place_name, ties in dump order (stable sort).
  • Asserts are now ProducerErrors: every row is CW, no literal nan, unique (place_name, latitude, longitude). Added: 19-column rows, non-empty name, numeric coordinates.

Not ported

  • The old builder's own datapackage.json, README.md, ATTRIBUTION.txt and zip output: those are build.py's and the descriptor's job now, and free datasets get no zip.
  • publish_r2.py: removed, publishing is handled centrally.

Open questions

  • None for parity. .licensing-notes.md still records "Final rows | 100"; that historical count is left for the pc-hfz sweep.