Postal Codes Dataset for Australia, AU

443
Updated:
Files:1
Size:416 kB
Rows:3,175
Formats:csv
License:CC-BY-4.0

Postal Codes Dataset for Australia, AU 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 (ABS Local Government Area component) 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-au/
https://datahub.io/logistics/postal-codes-au/_r/-/.licensing-notes.md
https://datahub.io/logistics/postal-codes-au/_r/-/.migration-notes.md
https://datahub.io/logistics/postal-codes-au/_r/-/ATTRIBUTION.txt
https://datahub.io/logistics/postal-codes-au/_r/-/README.md
https://datahub.io/logistics/postal-codes-au/_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-au/_r/-/datapackage.yaml
README.md— documentation
https://datahub.io/logistics/postal-codes-au/_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-au-sample


About this dataset

Australia (AU): migration notes

Internal record of the P5 migration. This is a dated record (2026-10-11) and is not shipped in the zip.

  • Issue: datopian/postal-codes#41
  • Producer: scripts/produce.py (+ test_produce.py), pipeline: producer: custom, refresh disabled
  • Parity: unexplained, by design. This is a rebuild from Proctor's current file, not a reproduction of the earlier published file: 3,175 rows each, same postcodes, 2,673 rows changed (place_name 1,521, alternative_city_name 1,948, coordinates 2,640, state 8, LGA 1)

Why this is a rebuild, not a port

The builder that made the earlier au.csv was never committed and its input snapshot is gone. The old scripts here (fetch_source.py, build_base.py) were a 2026-08-19 reconstruction, and measured on 2026-10-11 they differed from the published file in 84% of rows. No selection rule I tried recovers the old place names (first / last / lowest id / highest id / alphabetical / first "Delivery Area" = 29 / 19 / 32 / 16 / 29 / 29%), and the old coordinates equal a coordinate in Proctor's file exactly for only 532 of 3,172 postcodes; none of Proctor's 23 GitHub versions reproduces them either. The earlier claim in .licensing-notes.md that all coordinates match within 0.001° is withdrawn.

Owner decision 2026-10-11: publish a rebuild from Proctor's current file and accept the differences ("if upstream sources change then it's ok").

Verification before publishing (2026-10-11)

Random 100 postcodes (seed 20261011), each checked against the raw source independently of the producer: place_name is the title-cased first locality, state and LGA name/code equal that row, coordinates equal the source and lie in Australia, every alternative name is a locality of that postcode and none repeats: 100 of 100 pass. Against an independent file (GeoNames AU, used only to check), state agreed on all 100 and coordinates had median 2.8 km, p90 15.4 km; the three above 25 km are PO-Box postcodes 1215 and 3632 (same coordinates as the earlier file; the independent file's PO-Box points are approximate) and 2440 (a rural postcode whose first source locality, Aldavilla, sits at the edge).

Whole file: first-row coordinates are closer to the postcode's median than the earlier file's (median 0.0 vs 3.3 km; more than 25 km away: 44 vs 189 of 2,149 multi-locality postcodes).

Decisions

DecisionByBasis
Publish a rebuild from Proctor's current fileUser, 2026-10-11Source drift accepted; builder and snapshot unrecoverable
0,0 coordinates → blank (6947, 6958, 6965)AgentSource writes 0,0 for "none"; the earlier file also blank. No coordinate is taken from another row
2899, 6798, 6799 → "OT" / Other TerritoriesAgentExternal territories (Norfolk, Christmas, Cocos); the earlier file had them OT; the source labels them NSW/WA
yaml place_name description: "First locality listed for the postcode in the source"AgentThe earlier "most common in the postcode" was not what any builder did

Side effect worth knowing: 8 postcodes change state because the source is now right and the earlier file was not (4375, 4377, 4380, 4385 NSW → QLD; 3691, 3707 NSW → VIC; 4825 NT → QLD; 2611 ACT → NSW).

R2 (2026-10-11)

Two different live objects existed: au/consolidated/latest/au.zip (2026-07-30, the one premium_source_key points to) and au/au.zip (2026-08-24, same csv, adds ATTRIBUTION.txt). Only the first, and the public sample au/au.csv, were replaced. au/au.zip is untouched and now stale. Neither old object is regenerable, so both were saved locally before the write.

Other records, unchanged

  • Licence: CC-BY-4.0 for the ABS LGA component; ATTRIBUTION.txt credits Proctor (public domain) and ABS (pc-9qt, 2026-10-06).
  • Proctor's coordinates derive from Australia Post's database, whose own file is commercially licensed. Owner decision 2026-10-06 (pc-93s): accept Proctor's public-domain position.
  • Proctor's site answers intermittently (HTTP 522); rerun the producer if a fetch fails.