Postal Codes Dataset for Austria, AT

380
Updated:
Files:1
Size:2.14 MB
Rows:19,225
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Austria, AT 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-at/
https://datahub.io/logistics/postal-codes-at/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-at/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-at/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-at/_r/-/README.md
https://datahub.io/logistics/postal-codes-at/_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-at/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-at/_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-at-sample

About

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

About this dataset

Austria (AT): 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.3 (closed 2026-10-02)
  • Commit: f3b577a (worktree commit 4eeae11, 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/AT.zipThe only input

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

Rows: 19,225 live and 19,225 fresh, none only on one side. 0 changed cells. One class: row_order ×1. The sorted lines are identical; 13,329 line positions differ. Live uses CRLF line endings, fresh LF.

ChangeExampleCause
Rows reordered within postal codes7522 (Güssing): Deutsch Ehrensdorf, Reinersdorf, Sumetendorf, Luising in a different order; also 7521 Kulm im Burgenland, 7540 MoschendorfAttributed to GeoNames reordering its export. Not traced to a specific earlier GeoNames file

The public sample check came out unexplained (informational only); not investigated.

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
Drop the exact EXPECTED_ROWS == 19225 assertOrchestrator instructionBatch brief
Remove row and distinct-code counts from README and descriptor; "124 rows have an empty district/municipality" → "A few rows …"; "224 border localities" → "border localities"; keep 9 / 94 / 2,120 admin-unit countsOrchestrator instruction; the wording is the agent'sREADME counts rule (user, 2026-10-02, session 068ca403). The agent checked the admin-unit counts still match the fresh data
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 01–09 → ISO 3166-2:AT AT-1..AT-9 (same order, checked against Wikipedia 2026-08-29).
  • admin_code3 kept as GeoNames' Gemeindekennziffer.
  • alternative_city_name empty. Empty district/municipality cells ship empty.
  • Old asserts are ProducerErrors: 12 columns and country AT, known Bundesland code, all 9 present, no literal "nan", no float accuracy, unique (postal_code, place_name, admin_code3).

Open questions

  • The descriptor description writes "2,120" and the field description "2120" (pre-existing, flagged by the agent, left alone).
  • ATTRIBUTION.txt still says "19,225 rows" and "124 of 19,225 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-ad3b600d8da44606b.jsonl, the orchestrator sessions 2479b1c9-… (batch 1, sign-off) and 068ca403-… (README counts rule), the commit message and the bd close reason.