Prestations sociales

Données - IPP

Liste

Code
i_g("bib/ipp/prestations-sociales.png")

Retenue Etat

Table

Code
ret_etat |>
  print_table_conditional()

Pensions civiles, militaires

Code
ret_etat |>
  select(date, 
         `Taux pensions civiles` = taux_employeur_explicite.pensions_civils,
         `Taux pensions militaires` = taux_employeur_explicite.pensions_militaires) |>
  mutate(date = as.Date(date)) |>
  add_row(date = as.Date("2022-09-05"),
          `Taux pensions civiles` = 0.7428,
          `Taux pensions militaires` = 1.2607) |>
  mutate(date = as.Date(date)) |>
  arrange(desc(date)) |>
  gather(variable, value, -date) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = variable)) + theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 5),
                     labels = percent_format(acc = 1)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme(legend.title = element_blank(),
        legend.position = c(0.7, 0.8)) +
  ylab("Taux employeur explicite") + xlab("")

Pensions civiles, militaires

Code
ret_etat |>
  select(date, 
         `Taux pensions civiles` = taux_employeur_explicite.pensions_civils,
         `Taux pensions militaires` = taux_employeur_explicite.pensions_militaires,
         `Taux implicite` = taux_implicite) |>
  mutate(date = as.Date(date)) |>
  add_row(date = as.Date("2022-09-05"),
          `Taux pensions civiles` = 0.7428,
          `Taux pensions militaires` = 1.2607,
          `Taux implicite` = NA) |>
  mutate(date = as.Date(date)) |>
  arrange(desc(date)) |>
  gather(variable, value, -date) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  na.omit() |>
  mutate(value = ifelse(variable == "Taux implicite" & date >= as.Date("2006-01-01"), NA, value)) |>
  ggplot() + geom_line(aes(x = date, y = value, color = variable)) + theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-200, 200, 5),
                     labels = percent_format(acc = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.title = element_blank(),
        legend.position = c(0.2, 0.8)) +
  ylab("Taux employeur explicite") + xlab("") + 
  geom_hline(yintercept = 0.15, linetype = "dashed")

RMI

Table

Code
rmi_m %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

All

Code
rmi_m |>
  select(date, montant_base_rmi) |>
  gather(variable, value, -date) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  ggplot() + geom_line(aes(x = date, y = value)) +
  scale_color_manual(values = viridis(8)[1:7]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(300, 700, 10),
                     labels = dollar_format(accuracy = 1, suffix = " €", prefix = "")) + 
  ylab("Montant du RMI en euros") + xlab("")

RSA

Table

Code
rsa_m %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

All

Code
rsa_m |>
  select(date, montant_base_rsa) |>
  gather(variable, value, -date) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  ggplot() + geom_line(aes(x = date, y = value)) +
  scale_color_manual(values = viridis(8)[1:7]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(300, 700, 10),
                     labels = dollar_format(accuracy = 1, suffix = " €", prefix = "")) + 
  ylab("Montant du RSA en euros") + xlab("")

RMI / RSA

Table

Code
rsa_m |>
  bind_rows(rmi_m) |>
  select(date, montant_base_rsa, 
         montant_base_rmi, date_parution_jo) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

All

Valeur

Code
rmi_m |>
  select(date, montant_base_rmi) |>
  gather(variable, value, -date) |>
  bind_rows(rsa_m |>
  select(date, montant_base_rsa) |>
  gather(variable, value, -date)) |>
  filter(!is.na(value)) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  mutate(Variable = ifelse(variable == "montant_base_rmi", "RMI (avant le 1er juin 2009)",
                           "RSA (après le 1er juin 2009)")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(300, 700, 10),
                     labels = dollar_format(accuracy = 1, suffix = " €", prefix = "")) + 
  ylab("Montant du RMI / RSA en euros") + xlab("")

Base 100

Code
rmi_m |>
  select(date, montant_base_rmi) |>
  gather(variable, value, -date) |>
  bind_rows(rsa_m |>
  select(date, montant_base_rsa) |>
  gather(variable, value, -date)) |>
  filter(!is.na(value)) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  mutate(Variable = ifelse(variable == "montant_base_rmi", "RMI (avant le 1er juin 2009)",
                           "RSA (après le 1er juin 2009)")) |>
  ungroup() |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 700, 10)) + 
  ylab("Montant du RMI / RSA (100 = 1992)") + xlab("")

1992

Valeur

Code
rmi_m |>
  select(date, montant_base_rmi) |>
  gather(variable, value, -date) |>
  bind_rows(rsa_m |>
  select(date, montant_base_rsa) |>
  gather(variable, value, -date)) |>
  filter(!is.na(value)) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  mutate(Variable = ifelse(variable == "montant_base_rmi", "RMI (avant le 1er juin 2009)",
                           "RSA (après le 1er juin 2009)")) |>
  filter(date >= as.Date("1992-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(300, 700, 10),
                     labels = dollar_format(accuracy = 1, suffix = " €", prefix = "")) + 
  ylab("Montant du RMI / RSA en euros") + xlab("")

Base 100

Code
rmi_m |>
  select(date, montant_base_rmi) |>
  gather(variable, value, -date) |>
  bind_rows(rsa_m |>
  select(date, montant_base_rsa) |>
  gather(variable, value, -date)) |>
  filter(!is.na(value)) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  mutate(Variable = ifelse(variable == "montant_base_rmi", "RMI (avant le 1er juin 2009)",
                           "RSA (après le 1er juin 2009)")) |>
  filter(date >= as.Date("1992-01-01")) |>
  ungroup() |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 700, 10)) + 
  ylab("Montant du RMI / RSA (100 = 1992)") + xlab("")

1996

Valeur

Code
rmi_m |>
  select(date, montant_base_rmi) |>
  gather(variable, value, -date) |>
  bind_rows(rsa_m |>
  select(date, montant_base_rsa) |>
  gather(variable, value, -date)) |>
  filter(!is.na(value)) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  mutate(Variable = ifelse(variable == "montant_base_rmi", "RMI (avant le 1er juin 2009)",
                           "RSA (après le 1er juin 2009)")) |>
  filter(date >= as.Date("1996-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(300, 700, 10),
                     labels = dollar_format(accuracy = 1, suffix = " €", prefix = "")) + 
  ylab("Montant du RMI / RSA en euros") + xlab("")

Base 100 (+53%)

Code
rmi_m |>
  select(date, montant_base_rmi) |>
  gather(variable, value, -date) |>
  bind_rows(rsa_m |>
  select(date, montant_base_rsa) |>
  gather(variable, value, -date)) |>
  filter(!is.na(value)) |>
  mutate(value = ifelse(value >= 2000, value/6.55957, value)) |>
  group_by(variable) |>
  complete(date = seq.Date(min(date), max(date), by = "day")) |>
  fill(value) |>
  mutate(Variable = ifelse(variable == "montant_base_rmi", "RMI (avant le 1er juin 2009)",
                           "RSA (après le 1er juin 2009)")) |>
  filter(date >= as.Date("1996-01-01")) |>
  ungroup() |>
  arrange(date) |>
  mutate(value = 100*value/value[1]) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 700, 10)) + 
  ylab("Montant du RMI / RSA (100 = 1996)") + xlab("")