Permanent foreign resident population by nationality
bfs-nationality-groups
- Publisher
- OFS/BFS
- Access method
api- Table id
su-d-01.05.01.01- Licence
- BFS terms of use OPEN-BY: "Open use. Must provide the source."
- Coverage
- Geography national · referenceDay 31 December · from 1980 · to 2025
- Gaps
- Foreign nationals only (Swiss citizens, incl. naturalised persons, are not in this table — see bfs-population-historic for the total and bfs-migration-status for migration background). States that did not exist in a year have no row for that year ("*" in the source); "…" (unknown) is left out too.
- Used on
- STORY-06
- Known limits
- Nationality is a legal status, not origin or ethnicity — Switzerland does not measure ethnicity. Naturalisations move people out of this table. Sources: PETRA register 1980–2009, STATPOP since 2010 — from 2010 the permanent resident population also includes persons in the asylum process with ≥ 12 months of residence (footnote 1), a break in the series. Historical states (Jugoslawien, Sowjetunion, Tschechoslowakei, Serbien und Montenegro) are kept under the names used by BFS; "Tibet" is included in China from 2010.
- Verification
- verification date: 2026-10-31 · method: Fetched from the BFS DAM; the hierarchy check (sub-regions + countries = foreign total, every year 1980–2025) passed. Compared with the BFS press release of 20.08.2026 "Bestand und Entwicklung der Bevölkerung der Schweiz im Jahr 2025" ("2 528 100 ausländische Staatsangehörige (28%)", increase "um 48 200 Personen") — identical after rounding to the hundred. · checkedValue: foreign_total 2025: 2528117 (press release 2 528 100); 2024→2025: +48 200 · checkedAgainst: https://dam-api.bfs.admin.ch/hub/api/dam/assets/36680491/master
- Processed file
- data/processed/bfs-nationality-groups.csv
How current is this data?
- Freshness
- Up to date
According to its update rhythm, no newer edition is expected yet.
- Period covered
- 1980–2025
- Last change of the data
- Last check of the source
- Update rhythm
- Yearly
Ledger note (in English): Yearly, with the definitive population results in late August (2025 data on 20.08.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 su-d-01.05.01.01 (current edition via the DAM orderNr URL), sheet "su-d-01.05.01.01": one row per group, one column per year (footnote markers such as "2010 1" stripped). Script: scripts/fetch/bfs-nationality-groups.ts
- Summary block mapped by exact label: foreign_total "Ausland"; continents europe "Europa", africa "Afrika", americas "Amerika", asia "Asien", oceania "Ozeanien"; subcontinents northern_america "Nordamerika", latin_america_caribbean "Lateinamerika und Karibik"; blocs eu "EU-Staaten" (EU27 as of 1.2.2020, applied to all years), efta "EFTA-Staaten", other_europe "Übriges Europa (Europa ohne EU und EFTA)", non_european "Aussereuropäische Staaten (ohne Staatenlos/nicht zuteilbar/ohne Angabe)"; other stateless_unassigned_unknown "Staatenlos/nicht zuteilbar/ohne Angabe". Unknown labels fail the fetch.
- Detail block: a row is a sub-region (group_type region, e.g. "Ostafrika", "Südasien") when it equals, in every year, the sum of the ≥ 2 rows that follow; those rows are countries (group_type country). The detail "Europa" and "Nordamerika" duplicate the summary rows and are not repeated. The fetcher fails unless the top-level units of the detail block add up to "Ausland" in every year. group = ASCII slug of the German label for regions and countries (e.g. vereinigtes-koenigreich); label_de keeps the label as published.
- Values copied as published (persons). Do not add rows of different group_type (they overlap).