Permanent resident population aged 15 and over by nationality category and migration status (structural survey)
bfs-population-composition
- Publisher
- OFS/BFS
- Access method
api- Table id
su-d-40.02.01.05.01-2024- Licence
- BFS terms of use OPEN-BY: "Open use. Must provide the source."
- Coverage
- Geography national · population permanent resident population aged 15 and over living in private households (structural survey) · referenceDay 31 December · categories nationality total / swiss / foreign × status total, without_migration_background, with_migration_background, first_generation, second_generation, unknown · from 2024 · to 2024
- Gaps
- Latest survey year only (one table per year; the fetcher takes the newest edition). No age, canton or language-region breakdown kept (the table has them). Children under 15 and people in collective households are not covered.
- Used on
- STORY-06
- Known limits
- Sample survey: estimates with a 95 % confidence interval. Switzerland does not measure ethnicity; the migration status is defined by nationality (at birth and today), country of birth and the parents' country of birth (BFS typology). Cross-checks (2026-11-02): (1) the Swiss total of this table (5 497 429 aged 15+, 2024) equals the total of bfs-dual-citizenship (same survey); (2) the structural survey gives 3 171 390 persons with a migration background in 2024, the labour force survey SAKE (bfs-migration-status) 3 086 020: two surveys with different samples, weights and population bases (SE: private households, end of year; SAKE: annual average) — do not mix them; (3) survey vs registers, aged 15+, 2024: total 7 507 509 vs 7 707 853, Swiss 5 497 429 vs 5 603 084, foreign 2 010 080 vs 2 104 769 — the survey leaves out people in collective households (care homes, institutions …), diplomats and international officials (footnote of the table), so it is lower by 200 344 (2.6 %).
- Processed file
- data/processed/bfs-population-composition.csv
How current is this data?
- Freshness
- Up to date
According to its update rhythm, no newer edition is expected yet.
- Period covered
- 2024
- Last change of the data
- Last check of the source
- Update rhythm
- Yearly
Ledger note (in English): Yearly, in January (the 2024 survey was published on 29.01.2026).
- 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
- XLSX table T 40.02.01.05.01 (order number su-d-40.02.01.05.01-<year>, newest of the current year and the four before it), sheet "Total"; rows "Total", "Schweizer", "Ausländer" (Staatsangehörigkeitskategorie); columns located by their labels: Total · Bevölkerung ohne Migrationshintergrund · Bevölkerung mit Migrationshintergrund (Total, 1. Generation, 2. Generation) · Migrationshintergrund unbekannt, each "Anzahl Personen" with its "Vertrauensintervall ± (in %)". Script: scripts/fetch/bfs-population-composition.ts
- Weighted estimates are rounded half-up to whole persons; the confidence interval to 2 decimals. "X" (4 or fewer observations) → empty; values in brackets (49 or fewer observations) → low_reliability = 1.
- The fetcher checks without + with + unknown = total, 1st + 2nd generation = with, and Swiss + foreign = total for every status (± 3 persons, rounding).
- Reference rows (source statpop, status total): the permanent resident population aged 15 and over on 31 December of the same year from the registers (STATPOP), BFS STAT-TAB px-x-0102010000_101 (Schweiz, ständige Wohnbevölkerung, Geschlecht total, single years of age 15 … "100 Jahre und mehr" summed by Votara), for the survey-vs-register comparison. Same licence (OPEN-BY).
- Official category labels (this table, DE): "Bevölkerung ohne Migrationshintergrund", "Bevölkerung mit Migrationshintergrund", "1. Generation", "2. Generation", "Migrationshintergrund unbekannt"; "Schweizer", "Ausländer". FR/IT/EN as in the bfs-migration-status entry (same typology).