Skip to main content
Language
Postcode and municipality

Postcode, Locality, and BFS Municipality: How the Layers Fit Together

Most people assume their postcode and their municipality are the same thing. In Switzerland, they aren't. A postcode is for the postman. A locality is the name on the town sign. A BFS municipality is where you pay taxes. Sometimes they match perfectly. Often, they don't.
Updated:
5 May 2026
Read time:
4 min
Share:XFacebookLinkedIn
Aerial view of Lucerne with lake, city fabric, and mountain backdrop

The three layers of a Swiss address

To understand Swiss addresses, you need to separate three concepts that usually get mashed together in everyday conversation.

The postcode is purely a logistical tool created by Swiss Post to deliver mail efficiently. The locality is the official name of the settlement—the name on the street signs. The BFS municipality (defined by the Federal Statistical Office) is the political and administrative reality. It is the entity that collects your taxes, organizes your schools, and counts your votes.

Layer diagram of postcode, locality, and BFS municipality
Graphic: PLZHub, the three address layers in the data model.

In a perfect world, they line up. In reality, especially outside of old city centers, they constantly overlap and diverge.

When everything lines up perfectly

3011 Bern is the textbook example of a clean address. It has one locality name, one postcode, and sits 100% inside a single municipality. This is how most people assume the system works everywhere.

1000 Lausanne 25 is slightly messier but still politically clean. The postcode carries multiple locality labels (like Lausanne 25, Lausanne 26, and Lausanne 27), but the municipality layer stays strictly at 100% Lausanne. The post office created subdivisions, but the political border didn't budge.

Diagram mapping postcode through locality to BFS municipality
Graphic: PLZHub, simplified mapping from postcode to BFS municipality.

When the post office and the politicians disagree

The real confusion starts when postcodes cross municipal lines.

Look at 1008 Prilly. You write "Prilly" on the envelope, but the postcode footprint is actually split 50/50 between the municipality of Prilly and the municipality of Jouxtens-Mézery. Depending on which side of the street you live on, your tax bill will be completely different, even though your postcode is identical.

1040 Echallens pushes this even further, covering three different municipalities roughly a third each. And then there are cases like 6052 Hergiswil NW. It is 99.8% Hergiswil, but a tiny 0.2% sliver bleeds into neighboring Horw.

This is why PLZHub exposes these splits. If you assume a postcode map is a political map, you are going to get an expensive surprise when the tax assessment arrives.

Which layer should you trust?

It depends entirely on what you are trying to do.

If you are setting your GPS, looking for an apartment on a real estate portal, or ordering a package, trust the postcode and locality.

If you are trying to figure out your tax rate, researching local schools, or looking at official census data, you must trust the BFS municipality. Never use a postcode to answer a municipal question.

Real examples of how the layers interact

Horizontal scroll to compare values

CasePostcode / localityMunicipality layerWhat it means
3011 Bern1 locality, 1 postcode1 municipality, 100% BernThe clean ideal. All three layers line up perfectly.
1008 PrillyPrilly locality2 municipalities, 50% / 50%One postcode is split cleanly across two different municipalities.
1040 Echallens3 localities3 municipalities, 33.3% eachA single postcode acting as an umbrella for a mixed cluster of towns.
1000 Lausanne 253 localities1 municipality, 100% LausanneMultiple postal names (Lausanne 25, 26, 27) all point to the exact same political municipality.
6052 Hergiswil NW1 locality2 municipalities, 99.8% / 0.2%A tiny sliver of land spills over the border. The place name does not guarantee the municipality.

Which layer to trust

  • Use the postcode and locality when you are setting up mail forwarding or searching for an address.
  • Use `municipalities.bfsId` when you need to know where you will pay taxes or vote.
  • Always check `weightedSharePct` before assuming a postcode belongs entirely to a 'cheap tax' municipality.
  • Do not treat a postcode map as a political map.
Blog

Selected articles from the PLZHub blog