Revenu et pouvoir d’achat des ménages

Données - INSEE

Info

Last observation: 2022

First observation: 1959

Number of observations: 758

Last data update: 23 jul 2026, 22:45. Last compile: 24 jul 2026, 05:30

Structure

RDB arbitrable, RDB

Linear

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_B6", "CNA_B6ARBITR")) %>%
  
  year_to_date %>%
  select(INDICATEUR, Indicateur, date,  OBS_VALUE) %>%
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = Indicateur)) + 
  theme_minimal() +  xlab("") + ylab("") +
  
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2020, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 7000, 100),
                     labels = dollar_format(suffix = " Mds€", prefix = "", accuracy = 1))

Log

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_B6", "CNA_B6ARBITR")) %>%
  
  year_to_date %>%
  select(INDICATEUR, Indicateur, date,  OBS_VALUE) %>%
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = Indicateur)) + 
  theme_minimal() +  xlab("") + ylab("") +
  
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2020, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(0, 7000, 100),
                     labels = dollar_format(suffix = " Mds€", prefix = "", accuracy = 1))

Index

1990-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_B6", "CNA_B6ARBITR")) %>%
  
  year_to_date %>%
  filter(date >= as.Date("1990-01-01")) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = 100*OBS_VALUE/OBS_VALUE[1]) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1990, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 300, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))

1999-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_B6", "CNA_B6ARBITR")) %>%
  
  year_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = 100*OBS_VALUE/OBS_VALUE[1]) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 300, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))

Evolution du pouvoir d’achat

Nominal VS Réel

Evolution

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_B6EVOL", "CNA_B6ARBITREVOL",
                           "CNA_EVOPA", "CNA_EVOPAAR")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = Indicateur)) +
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2020, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-2, 90, 2),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

Pouvoir d’achat - Par ménage, par personne, par unité de consommation

Evolution

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPAMEN", "CNA_EVOPAPP",
                           "CNA_EVOPAUC")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2020, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-5, 90, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

Pouvoir d’achat arbitrable - Par ménage, par personne, par unité de consommation

Evolution

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPAARMEN", "CNA_EVOPAARPP",
                           "CNA_EVOPAARUC")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat arbitrable (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2020, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-5, 90, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed")

1990-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPAARMEN", "CNA_EVOPAARPP",
                           "CNA_EVOPAARUC")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  filter(date >= as.Date("1990-01-01")) %>%
  select(date, INDICATEUR, Indicateur, OBS_VALUE) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = c(100, 100*cumprod(1+OBS_VALUE[-1]))) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat arbitrable (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2020, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 150, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))

1996-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPAARMEN", "CNA_EVOPAARPP",
                           "CNA_EVOPAARUC")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  filter(date >= as.Date("1996-01-01")) %>%
  select(date, INDICATEUR, Indicateur, OBS_VALUE) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = c(100, 100*cumprod(1+OBS_VALUE[-1]))) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat arbitrable (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1996, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 150, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))

1999-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPAARMEN", "CNA_EVOPAARPP",
                           "CNA_EVOPAARUC")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  filter(date >= as.Date("1999-01-01")) %>%
  select(date, INDICATEUR, Indicateur, OBS_VALUE) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = c(100, 100*cumprod(1 + OBS_VALUE[-1]))) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat arbitrable (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 150, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))

Revenu disponible brut nominal

1990-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPA", "CNA_EVOPAMEN",
                           "CNA_EVOPAUC", "CNA_EVOPAPP")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  filter(date >= as.Date("1990-01-01")) %>%
  select(date, INDICATEUR, Indicateur, OBS_VALUE) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = c(100, 100*cumprod(1+OBS_VALUE[-1]))) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat arbitrable (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2020, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 300, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))

1996-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPA", "CNA_EVOPAMEN",
                           "CNA_EVOPAUC", "CNA_EVOPAPP")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  filter(date >= as.Date("1996-01-01")) %>%
  select(date, INDICATEUR, Indicateur, OBS_VALUE) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = c(100, 100*cumprod(1+OBS_VALUE[-1]))) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat arbitrable (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1996, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 150, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))

1999-

Code
`CNA-2014-RDB` %>%
  filter(INDICATEUR %in% c("CNA_EVOPA", "CNA_EVOPAMEN",
                           "CNA_EVOPAUC", "CNA_EVOPAPP")) %>%
  
  year_to_date %>%
  mutate(OBS_VALUE = OBS_VALUE / 100) %>%
  filter(date >= as.Date("1999-01-01")) %>%
  select(date, INDICATEUR, Indicateur, OBS_VALUE) %>%
  group_by(INDICATEUR) %>%
  arrange(date) %>%
  mutate(index = c(100, 100*cumprod(1 + OBS_VALUE[-1]))) %>%
  ggplot() + geom_line(aes(x = date, y = index, color = Indicateur)) +
  xlab("") + ylab("Evolution du pouvoir d'achat arbitrable (%)") + theme_minimal() +
  
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(100, 150, 5)) +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = index, color = Indicateur, label = round(index, 1)))