Revenu disponible brut et pouvoir d’achat - Données annuelles

Data - INSEE

Info

source dataset Title .html .rData
insee econ-gen-revenu-dispo-pouv-achat-2 Revenu disponible brut et pouvoir d’achat - Données annuelles 2026-01-15 2026-01-11

Source

  • Revenu disponible brut et pouvoir d’achat. xlsx

Bibliographie en lien

Français

« Mesurer “le” pouvoir d’achat », F. Geerolf, Document de travail, 9 juillet 2024. [ html] [ pdf] [ handouts] [ pdf] [ html] [ github]

« La taxe inflationniste, le pouvoir d’achat, le taux d’épargne et le déficit public », F. Geerolf, Document de travail, 9 juillet 2024. [ html] [ pdf] [ handouts] [ pdf] [ html] [ github]

« Inflation en France : IPC ou IPCH ? », F. Geerolf, Document de travail, 9 juillet 2024. [ html] [ pdf] [ handouts] [ pdf] [ html] [ github]

variable

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  group_by(Indicateur) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
Indicateur Nobs
Consommation finale effective des ménages 65
Dépense de consommation finale des ménages 65
Indice du prix de la dépense de consommation finale des ménages 65
Nombre d'unités de consommation 65
Nombre de ménages 65
Population moyenne 65
Pouvoir d'achat du revenu disponible brut des ménages1 65
Pouvoir d'achat par ménage 65
Pouvoir d'achat par personne 65
Pouvoir d'achat par unité de consommation 65
Revenu disponible brut 65
Taux d'épargne (en niveau) 65

date

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  group_by(year) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  arrange(desc(year)) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Pouvoir d’achat ménage /personne / unité de consommation

1959-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Pouvoir d'achat par ménage", "Pouvoir d'achat par personne",
                           "Pouvoir d'achat par unité de consommation", "Pouvoir d'achat du revenu disponible brut des ménages1")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Pouvoir d'achat par ménage", "1959", 0,
                    "Pouvoir d'achat par personne", "1959", 0,
                    "Pouvoir d'achat par unité de consommation", "1959", 0,
                    "Pouvoir d'achat du revenu disponible brut des ménages1", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 1000, 50)) +
  scale_x_date(breaks = c(seq(1959, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

1990-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Pouvoir d'achat par ménage", "Pouvoir d'achat par personne",
                           "Pouvoir d'achat par unité de consommation", "Pouvoir d'achat du revenu disponible brut des ménages1")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Pouvoir d'achat par ménage", "1959", 0,
                    "Pouvoir d'achat par personne", "1959", 0,
                    "Pouvoir d'achat par unité de consommation", "1959", 0,
                    "Pouvoir d'achat du revenu disponible brut des ménages1", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("1990-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 2)) +
  scale_x_date(breaks = c(seq(1990, 2100, 2)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

1999-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Pouvoir d'achat par ménage", "Pouvoir d'achat par personne",
                           "Pouvoir d'achat par unité de consommation", "Pouvoir d'achat du revenu disponible brut des ménages1")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Pouvoir d'achat par ménage", "1959", 0,
                    "Pouvoir d'achat par personne", "1959", 0,
                    "Pouvoir d'achat par unité de consommation", "1959", 0,
                    "Pouvoir d'achat du revenu disponible brut des ménages1", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 2)) +
  scale_x_date(breaks = c(seq(1959, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

2017-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Pouvoir d'achat par ménage", "Pouvoir d'achat par personne",
                           "Pouvoir d'achat par unité de consommation", "Pouvoir d'achat du revenu disponible brut des ménages1")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Pouvoir d'achat par ménage", "1959", 0,
                    "Pouvoir d'achat par personne", "1959", 0,
                    "Pouvoir d'achat par unité de consommation", "1959", 0,
                    "Pouvoir d'achat du revenu disponible brut des ménages1", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("2017-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 1)) +
  scale_x_date(breaks = c(seq(1959, 2100, 1)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

2019-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Pouvoir d'achat par ménage", "Pouvoir d'achat par personne",
                           "Pouvoir d'achat par unité de consommation", "Pouvoir d'achat du revenu disponible brut des ménages1")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Pouvoir d'achat par ménage", "1959", 0,
                    "Pouvoir d'achat par personne", "1959", 0,
                    "Pouvoir d'achat par unité de consommation", "1959", 0,
                    "Pouvoir d'achat du revenu disponible brut des ménages1", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("2019-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 1)) +
  scale_x_date(breaks = c(seq(1959, 2100, 1)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

2021-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Pouvoir d'achat par ménage", "Pouvoir d'achat par personne",
                           "Pouvoir d'achat par unité de consommation", "Pouvoir d'achat du revenu disponible brut des ménages1")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Pouvoir d'achat par ménage", "1959", 0,
                    "Pouvoir d'achat par personne", "1959", 0,
                    "Pouvoir d'achat par unité de consommation", "1959", 0,
                    "Pouvoir d'achat du revenu disponible brut des ménages1", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("2021-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 1)) +
  scale_x_date(breaks = c(seq(1959, 2100, 1)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

Démographie

1959-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Nombre de ménages", "Population moyenne", "Nombre d'unités de consommation")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Population moyenne", "1959", 0,
                    "Nombre de ménages", "1959", 0,
                    "Nombre d'unités de consommation", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 10)) +
  scale_x_date(breaks = c(seq(1959, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

1990-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Nombre de ménages", "Population moyenne", "Nombre d'unités de consommation")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Population moyenne", "1959", 0,
                    "Nombre de ménages", "1959", 0,
                    "Nombre d'unités de consommation", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("1990-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 2)) +
  scale_x_date(breaks = c(seq(1990, 2100, 2)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

1990-2020

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Nombre de ménages", "Population moyenne", "Nombre d'unités de consommation")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Population moyenne", "1959", 0,
                    "Nombre de ménages", "1959", 0,
                    "Nombre d'unités de consommation", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("1990-01-01"),
         date <= as.Date("2020-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 2)) +
  scale_x_date(breaks = c(seq(1990, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

1999-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Nombre de ménages", "Population moyenne", "Nombre d'unités de consommation")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Population moyenne", "1959", 0,
                    "Nombre de ménages", "1959", 0,
                    "Nombre d'unités de consommation", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 2)) +
  scale_x_date(breaks = c(seq(1959, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))

2017-

Code
`econ-gen-revenu-dispo-pouv-achat-2` %>%
  filter(Indicateur %in% c("Nombre de ménages", "Population moyenne", "Nombre d'unités de consommation")) %>%
  bind_rows(tribble(~ Indicateur, ~ year, ~ value,
                    "Population moyenne", "1959", 0,
                    "Nombre de ménages", "1959", 0,
                    "Nombre d'unités de consommation", "1959", 0)) %>%
  arrange(year, Indicateur) %>%
  group_by(Indicateur) %>%
  mutate(indice = 100*cumprod(1+value/100)) %>%
  year_to_date2 %>%
  filter(date >= as.Date("2017-01-01")) %>%
  group_by(Indicateur) %>%
  arrange(date) %>%
  mutate(indice = 100*indice/indice[1]) %>%
  ggplot + geom_line(aes(x = date, y = indice, color = Indicateur)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.26, 0.8),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(50, 500, 1)) +
  scale_x_date(breaks = c(seq(1959, 2100, 1)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = indice, label = round(indice, 1), color = Indicateur))