Project the development of the population at different spatial levels (e.g., cantons, districts, municipalities) using the cohort component method, broken down by 101 one-year age classes, gender, and nationality (see e.g. Preston et al. (2000, ISBN: 978-1-557-86451-2)). Includes helper functions to download required population data and projection parameters as open data for Switzerland, plus tools for model evaluation against benchmarks such as population records or a base model.

The goal of 'propop' is to create population projections using the cohort component method (see e.g., Preston, Guillot, and Heuveline, 2000; Statistik Aargau, 2025a; Statistik Aargau, 2025b). For a breakdown of the components, see this vignette.
The package was developed for use with projection scenarios from the Swiss Federal Statistical Office (FSO). The current scenarios are available for the years 2025-2055. As starting population, you can either use population data from the FSO or your own population data.
'propop' uses the same calculation method as the FSO (2020; only available in French) and therefore reveals almost identical results (see vignette Evaluate projections). The package can be used to project the development of different demographic groups for different scenarios and at different spatial levels (e.g., single canton or municipalities within a canton).
While the package was primarily designed for use with FSO input data (e.g., mortality rates), it should in principle also work for other contexts (e.g., custom input data). However, it is important to provide the required input data in the specified form.
To install the current github version of the package, make sure you have devtools installed and type:
devtools::install_github("statistik-aargau/propop")
The package includes four vignettes.
propop::propop() works with either two nationalities (usually Swiss vs.
non-Swiss nationals) or without distinguishing between nationalities.propop::propop() currently requires 1-year age classes (0-100+)
and two genders.propopbirth.propop::propop()offers the possibility to account for varying
subregional migration patterns and migration between subregions. However, before
using this feature, users must adjust or calculate the required parameters
(see this vignette).parameters object to propop::propop().If you are interested in contributing to these or other developments, please get in touch with the package maintainer.
To run propop::propop() with the example data included in the package
(canton of Aargau), use the following code:
library(propop)
projection_canton_2030 <- propop(
parameters = fso_parameters,
year_first = 2026,
year_last = 2030,
population = fso_population,
subregional = FALSE,
binational = TRUE)