Skip to content
Official and academic sources Verified

Permanent resident population since 1860

bfs-population-historic

Publisher
OFS/BFS
Access method
pxweb
Table id
px-x-0102030000_101
Licence
opendata.swiss terms of use "terms_by": "Open use. Must provide the source."
Coverage
Geography national · referenceDay 31 December · from 1860 · to 2025
Gaps
One value per year, national only. Values for 1946–1959 are published as round hundreds (BFS estimates). No interpolation is applied anywhere.
Used on
STORY-01, home, STORY-04, STORY-07
Known limits
1860–1980 are annual BFS estimates based on the federal population censuses, not annual counts. Source changes between 1980/1981 (ESPOP) and 2010/2011 (STATPOP) are definition breaks; the chart marks them with the series column. The "permanent resident population" definition is BFS's, linked from the table note (https://www.bfs.admin.ch/bfs/de/home/grundlagen/definitionen.html).
Verification
verification date: 2026-10-31 · method: Fetched from the BFS PxWeb API (table px-x-0102030000_101) and compared the 2025 value with the BFS press release "Bestand und Entwicklung der Bevölkerung der Schweiz im Jahr 2025 — Definitive Ergebnisse" (embargo 20.8.2026), which gives 9 127 100 persons on 31 December 2025 (rounded to the hundred). · checkedValue: 2025: 9127125 persons (press release: 9 127 100) · checkedAgainst: https://dam-api.bfs.admin.ch/hub/api/dam/assets/36680491/master

How current is this data?

Freshness
Up to date

According to its update rhythm, no newer edition is expected yet.

Period covered
1860–2025
Last change of the data
Last check of the source
Update rhythm
Yearly

Ledger note (in English): Yearly. BFS publishes provisional results in spring and definitive results in late August (2025 data — press release of 20 Aug 2026; table LAST-UPDATED 2026-08-20).

Votara checks the source
Every week, and every day from 3 days before to 14 days after an announced publication date

The state is computed each time the site is built; this page shows it as of . Results of the accuracy checks

Transformations

  1. PxWeb POST with sex = "Sex - total" and age = "Age - total" (value code 0), all years, format json-stat2; a second identical request in "px" format provides the table note. Script: scripts/fetch/bfs-population-historic.ts
  2. The series column is taken from the table note "Data sources: 1860-1980 estimates based on federal population censuses FPC, 1981-2010 … ESPOP, since 2011 … STATPOP": census = 1860–1980, espop = 1981–2010, statpop = 2011–. The fetcher fails if the note changes.
  3. Values copied as published (persons, integers); one row per year; rows sorted by year.