Engagements des régimes de retraite en 2021

Données - INSEE

Contrairement aux Insee Première habituels, ce fichier des comptes nationaux ne comporte pas de figures numérotées : c’est un tableau de flux-stock des engagements de retraite pour l’année 2021, décliné sur 3 feuilles selon l’hypothèse de taux d’actualisation retenue (3 %, 2 %, 1 % réels). Les graphiques ci-dessous en tirent les analyses les plus naturelles : la sensibilité du montant total au taux d’actualisation, la décomposition du flux annuel (scénario central 3 %), et la répartition par régime.

Sensibilité des engagements au taux d’actualisation

Code
engagements |>
  filter(code_ligne == "10", regime_code %in% c("G", "H")) |>
  mutate(taux_actualisation = factor(taux_actualisation, levels = c(3, 2, 1))) |>
  ggplot(aes(x = taux_actualisation, y = montant_md_euros, fill = regime)) +
  geom_col() +
  geom_text(aes(label = round(montant_md_euros)),
            position = position_stack(vjust = 0.5), color = "white", size = 4) +
  scale_fill_manual(values = c(
    "Régime de la fonction publique d'État civile et militaire" = "#1B3F8B",
    "Autres régimes obligatoires de retraite" = "#E8737A"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = "Taux d'actualisation réel (%)", y = "Milliards d'euros",
       title = "Engagements de retraite en fin d'exercice 2021",
       subtitle = "selon l'hypothèse de taux d'actualisation retenue") +
  theme(legend.position = "bottom",
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

Décomposition du flux annuel (scénario central, 3 %)

Code
niveaux <- c("Engagements en début d'exercice (1er janvier)",
             "Accroissement des engagements imputable au versement de cotisations",
             "Autres modifications actuarielles des engagements",
             "Diminution des engagements imputable au paiement des pensions",
             "Modifications des engagements imputables à des réévaluations",
             "Engagements en fin d'exercice (31 décembre)")

engagements |>
  filter(taux_actualisation == 3, regime_code == "I", poste %in% niveaux) |>
  mutate(poste = str_wrap(poste, 28), poste = factor(poste, levels = str_wrap(niveaux, 28))) |>
  ggplot(aes(x = poste, y = montant_md_euros, fill = poste %in% str_wrap(niveaux[c(1, 6)], 28))) +
  geom_col(show.legend = FALSE) +
  geom_text(aes(label = round(montant_md_euros, 1)), vjust = -0.4, size = 3.5) +
  scale_fill_manual(values = c("TRUE" = "#1B3F8B", "FALSE" = "#8FB0DE")) +
  theme_minimal(base_size = 10) +
  labs(x = NULL, y = "Milliards d'euros",
       title = "Décomposition du flux annuel des engagements de retraite, 2021",
       subtitle = "ensemble des régimes obligatoires, scénario central (taux d'actualisation 3 %)") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

Composition de l’accroissement lié aux cotisations (scénario central, 3 %)

Code
engagements |>
  filter(taux_actualisation == 3, regime_code == "I",
         code_ligne %in% c("2.1", "2.2", "2.3", "2.4", "2.5")) |>
  mutate(poste = str_wrap(poste, 35), poste = fct_reorder(poste, montant_md_euros)) |>
  ggplot(aes(x = poste, y = montant_md_euros)) +
  geom_col(fill = "#1B3F8B") +
  geom_hline(yintercept = 0, color = "grey40", linewidth = 0.4) +
  geom_text(aes(label = round(montant_md_euros, 1)), hjust = ifelse(
    engagements |> filter(taux_actualisation == 3, regime_code == "I",
                           code_ligne %in% c("2.1", "2.2", "2.3", "2.4", "2.5")) |>
      pull(montant_md_euros) >= 0, -0.15, 1.1), size = 3.5) +
  coord_flip(clip = "off") +
  theme_minimal(base_size = 11) +
  labs(x = NULL, y = "Milliards d'euros",
       title = "Composantes de l'accroissement des engagements lié aux cotisations",
       subtitle = "ensemble des régimes obligatoires, 2021, scénario central (3 %)") +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major.y = element_blank())

Répartition par régime (scénario central, 3 %)

Code
engagements |>
  filter(taux_actualisation == 3, code_ligne == "10",
         regime_code %in% c("J", "K")) |>
  mutate(regime = recode(regime,
    "Dont engagements vis-à-vis de ménages résidents" = "Ménages résidents",
    "Dont engagements vis-à-vis de ménages non-résidents" = "Ménages non-résidents"
  )) |>
  ggplot(aes(x = "", y = montant_md_euros, fill = regime)) +
  geom_col(width = 1) +
  coord_polar(theta = "y") +
  scale_fill_manual(values = c("Ménages résidents" = "#1B3F8B", "Ménages non-résidents" = "#E8737A"), name = NULL) +
  theme_minimal(base_size = 13) +
  labs(x = NULL, y = NULL,
       title = "Engagements de retraite selon la résidence des ménages",
       subtitle = "ensemble des régimes obligatoires, fin 2021, scénario central (3 %)") +
  theme(legend.position = "bottom",
        panel.grid = element_blank(),
        axis.text = element_blank())

Tableau complet

Code
engagements |>
  filter(regime_code == "I") |>
  select(code_ligne, poste, taux_actualisation, montant_md_euros) |>
  pivot_wider(names_from = taux_actualisation, values_from = montant_md_euros,
              names_prefix = "Taux ") |>
  gt() |>
  tab_header(title = "Engagements de l'ensemble des régimes obligatoires de retraite, 2021",
             subtitle = "en milliards d'euros, selon le taux d'actualisation réel retenu") |>
  cols_label(code_ligne = "", poste = "") |>
  fmt_number(columns = starts_with("Taux"), decimals = 1)
Engagements de l'ensemble des régimes obligatoires de retraite, 2021
en milliards d'euros, selon le taux d'actualisation réel retenu
Taux 3 Taux 2 Taux 1
1 Engagements en début d'exercice (1er janvier) 8,434.0 10,114.0 12,376.0
2 Accroissement des engagements imputable au versement de cotisations 646.0 631.3 600.3
2.1 Cotisations sociales effectives à la charge des employeurs 121.0 122.0 121.0
2.2 Cotisations sociales imputées aux employeurs −2.4 −0.4 3.3
2.3 Cotisations sociales effectives à la charge des ménages 111.2 111.2 111.2
2.4 Suppléments de cotisations des ménages 422.2 404.5 370.8
2.5 Moins frais de gestion des régimes 6.0 6.0 6.0
3 Autres modifications actuarielles des engagements −144.4 −101.7 −31.0
4 Diminution des engagements imputable au paiement des pensions 341.5 341.5 341.5
5 Modifications des engagements imputables aux flux de cotisations et de prestations 160.1 188.1 227.8
6 Transferts d'engagements entre régimes 0.0 0.0 0.0
7 Modifications des engagements imputables à des réformes négociées des régimes 0.0 0.0 0.0
8 Modifications des engagements imputables à des réévaluations −270.2 −338.0 −430.8
9 Modifications des engagements imputables à d'autres changements de volume 0.0 0.0 0.0
10 Engagements en fin d'exercice (31 décembre) 8,323.9 9,964.1 12,173.0