Postal Codes Dataset for Belgium, BE

331
Updated:
Files:1
Size:230 kB
Rows:2,781
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Belgium, BE 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 →

Premium

You're viewing a free sample

Get the complete dataset — all rows and files — delivered instantly after checkout, with lifetime access to the latest version.

  • Secure checkout via Stripe
  • Instant download after payment
  • Lifetime access to the latest version
  • Creative Commons Attribution 4.0 International license
20% off
$49.90$39.92
one-time payment

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-be/
https://datahub.io/logistics/postal-codes-be/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-be/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-be/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-be/_r/-/README.md
https://datahub.io/logistics/postal-codes-be/_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-be/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-be/_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

postal-codes-be-sample

About

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

About this dataset

Belgium (BE): migration notes

Internal record of the P5 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 in the zip.

  • Issue: pc-28e.7.6 (closed 2026-10-02)
  • Commit: e7df6fb (worktree commit f1b4656, same content), landed in batch 1
  • Parity verdict: explained (row_order only); user signed off 2026-10-02
  • Producer: custom, refresh disabled

Sources

InputURLNotes
GeoNames postal exporthttps://download.geonames.org/export/zip/BE.zipThe only input

Parity against the live zip (2026-10-02)

Rows: 2,781 live and 2,781 fresh, none only on one side. 0 changed cells. One class: row_order ×1, about 885 rows moved (1,770 diff lines).

ChangeExampleCause
Rows reordered within postal codes2040 Zandvliet is line 29 in fresh, 31 in live; 2220 Hallaar and 2222 Itegem swapped neighboursAttributed to GeoNames reordering its export. Not traced to a specific earlier GeoNames file

The public sample at postal.datahub.io/be/be.csv came out unexplained (informational only); it is the old sample.

Decisions

DecisionByBasis
Accept row_orderUser, 2026-10-02 (session 2479b1c9)"I sign off on the row order"; recorded in the sign-off section of docs/parity/p5.md
New check: a province must belong to its regionAgentStructural check added while porting the asserts
Drop the exact EXPECTED_ROWS == 2781 assertOrchestrator instructionBatch brief
Remove row, distinct-code and "2726 distinct communes/localities" counts from README and descriptor; keep 3 / 11 / 43 admin-unit countsOrchestrator instruction; the agent judged 2726 volatile (it counts place names, not communes)README counts rule (user, 2026-10-02, session 068ca403)
README "0 collisions" → the producer checks the key is unique; accuracy description replaced with the shared GeoNames wordingOrchestrator, after the user's "fix the small doc problems" (session 2479b1c9)b7fb93b, 5311ad3

Transforms carried over

From build_postal_codes_product.py:

  • admin_code1 → ISO 3166-2:BE region code, admin_code2 → ISO province code, by adding BE- (checked against Wikipedia 2026-09-03). Brussels has no province, so its province code repeats the region: BE-BRU.
  • admin_code3 kept as GeoNames' 2-digit arrondissement code.
  • alternative_city_name empty.
  • Old asserts are ProducerErrors: unknown region or province, a province with no rows, duplicate (postal_code, place_name), literal "nan", float accuracy, malformed or non-BE row.

Open questions

  • ATTRIBUTION.txt still says "2,781 rows"; left for the end-of-epic sweep (pc-hfz).

Provenance

Reconstructed 2026-10-05 from the agent transcript 2479b1c9-c4dd-47e5-be82-34ccf8d49a80/subagents/agent-a5717e75363982765.jsonl, the orchestrator sessions 2479b1c9-… (batch 1, sign-off) and 068ca403-… (README counts rule), the commit message and the bd close reason.