Launch release: 16.4M address points and derived postal code points, national coverage. See coverage

Data

Both downloadable layers are cut from one address base. This section documents what that base contains, where it comes from, and how it changes between releases.

The two grains at launch

Address points. One record per civic address, positioned where its source placed it. This is the grain you geocode against and the grain everything else is derived from.

Postal code points. One point per postal code, calculated here from the addresses carrying that code. Not a boundary, not a supplied centroid — a position derived from the addresses that actually exist under it, with the count of those addresses attached so you can tell a dense urban code from a rural route.

Parcels are shown on the catalogue map as context but are not downloadable at launch.

What a record is

An address record is an assertion that a civic address exists at a location, made by a source that had the authority to say so, on a date. It is not a claim that a building is occupied, that a dwelling unit is habitable, or that anyone lives there. Those are separate questions and the data does not answer them.

That distinction matters more than it sounds. A parcel with a permit and no structure has an address. A demolished house keeps its address until the municipality retires it. Counting addresses and counting households will give you different numbers, and the gap between them is not error.

How postal points are made

Every address in the National Address Register carries a postal code. The addresses are grouped by code, and a single representative position is calculated for each group.

What matters about that is not the arithmetic but where it comes from: the position is computed from address geometry in a federal government dataset.

What they are, and are not

They are a calculated position for the addresses sharing a code. That is a useful thing and a narrow one.

They are not a postal boundary. They are not a delivery route. The geometry is computed from address positions in the National Address Register.

They are not for mailing. These are analytical positions. They are not certified for address validation, mail preparation, or anything where delivery accuracy is the requirement. Canada Post publishes products for that; this is not a substitute for them.

Address Register is not affiliated with, endorsed by, or sponsored by Canada Post Corporation.

What they are good for

Two things beyond drawing dots on a map.

Zooming a map to a postal code. Six characters typed, one indexed lookup, no geocoding service and no per-call cost. Use spread_m to set the zoom, or a tight rural code will fill the screen with nothing.

Answering a service area question without an address. If every address under a code falls inside one catchment, the code alone answers it. If the code straddles a boundary, that is visible, and only then do you need the street address. Most codes resolve on six characters.

There is also a property worth knowing: within an urban postal code, civic numbers do not repeat, so civic number plus postal code identifies an address on its own — no street name, no city, and none of the matching failures those cause. The number_unique flag says where that holds. Geocoding with postal codes covers all three.

All of these run one way: postal code in, location out. Looking up the postal code for a given address is not something this data or the geocoder tools do.

What that method means in practice

A code with no matched addresses in the register produces no point at all. Nothing is interpolated from a neighbour and nothing is filled in. The gap is visible rather than guessed.

Coverage is inherited from the address base. Where addresses are thin, postal points are thin in the same places, and address_count on each record tells you which.

A single point is also a poor description of a code covering a long rural route — it lands between the addresses rather than on any of them. spread_m is how you detect that; see the schema reference.

Reading the rest of this section