Revenu, pouvoir d’achat et comptes des ménages - Valeurs aux prix courants

Data - INSEE

Info

source dataset Title .html .rData
insee t_men_val Revenu, pouvoir d'achat et comptes des ménages - Valeurs aux prix courants 2025-10-10 2025-08-29

Données sur le pouvoir d’achat

source dataset Title .html .rData
insee CNA-2014-RDB Revenu et pouvoir d’achat des ménages 2025-10-10 2025-10-09
insee CNT-2014-CSI Comptes de secteurs institutionnels 2025-10-10 2025-10-09
insee T_7401 7.401 – Compte des ménages (S14) (En milliards d'euros) 2025-10-10 2025-09-29
insee conso-eff-fonction Consommation effective des ménages par fonction 2025-10-10 2022-06-14
insee econ-gen-revenu-dispo-pouv-achat-2 Revenu disponible brut et pouvoir d’achat - Données annuelles 2025-10-10 2024-07-05
insee reve-conso-evo-dep-pa Évolution de la dépense et du pouvoir d’achat des ménages - Données annuelles de 1960 à 2023 2025-10-10 2024-12-11
insee reve-niv-vie-individu-activite NA NA NA
insee reve-niv-vie-pouv-achat-trim Évolution du revenu disponible brut et du pouvoir d’achat - Données trimestrielles 2025-10-10 2024-12-11
insee t_men_val Revenu, pouvoir d'achat et comptes des ménages - Valeurs aux prix courants 2025-10-10 2025-08-29
insee t_pouvachat_val Pouvoir d'achat et ratios des comptes des ménages 2025-10-10 2025-08-29
insee t_recapAgent_val Récapitulatif des séries des comptes d'agents 2025-10-10 2025-09-29
insee t_salaire_val Salaire moyen par tête - SMPT (données CVS) 2025-10-10 2025-08-29
oecd HH_DASH Household Dashboard 2025-09-29 2023-09-09

Données sur l’épargne

source dataset Title .html .rData
bdf CFT Comptes Financiers Trimestriels 2025-08-28 2025-03-09
insee T_7401 7.401 – Compte des ménages (S14) (En milliards d'euros) 2025-10-10 2025-09-29
insee bdf2017 Budget de famille 2017 2025-10-10 2023-11-21
insee ip1815 Plus d’épargne chez les plus aisés, plus de dépenses contraintes chez les plus modestes - ip1815 2025-10-10 2023-10-05
insee t_men_val Revenu, pouvoir d'achat et comptes des ménages - Valeurs aux prix courants 2025-10-10 2025-08-29
insee t_pouvachat_val Pouvoir d'achat et ratios des comptes des ménages 2025-10-10 2025-08-29
insee t_recapAgent_val Récapitulatif des séries des comptes d'agents 2025-10-10 2025-09-29

LAST_COMPILE

LAST_COMPILE
2025-10-11

Bibliographie en lien

Français

  • “Mesurer le pouvoir d’achat”, F. Geerolf, Document de travail, Juillet 2024. [pdf]

  • “Inflation en France: IPC ou IPCH ?”, F. Geerolf, Document de travail, Juillet 2024. [pdf]

  • “La taxe inflationniste, le pouvoir d’achat, le taux d’épargne et le déficit public”, F. Geerolf, Document de travail, Juillet 2024. [pdf]

Example

  • 2023T2: consommation Totale = 356,6 Mds€; revenu disponible brut = 439,2 Mds€:
Code
scales::percent(1-356.6/439.2, acc = 0.01)
# [1] "18.81%"

Données

  • Comptes nationaux trimestriels au 3ème trimestre 2023. html / xls

  • Comptes nationaux trimestriels au 2ème trimestre 2023. html / xls

  • Comptes nationaux trimestriels au 4ème trimestre 2022. html / xls

  • Comptes nationaux trimestriels au 4ème trimestre 2021. html

Info

Revenu disponible brut. Il s’agit de la part du revenu qui reste à la disposition du ménage pour consommer et épargner, une fois déduits les prélèvements sociaux et les impôts.

Les ressources comprennent : - les revenus d’activité (salaires, revenus des entrepreneurs individuels…), - les revenus du patrimoine (dividendes, intérêts, loyers), - les prestations sociales (y compris les pensions de retraite et les indemnités de chômage), - les transferts courants (notamment les indemnités d’assurance nette des primes). Les charges comprennent notamment les impôts directs (impôt sur le revenu, taxe d’habitation, CSG…).

Revenu disponible brut ajusté. Il s’agit du RDB augmenté des transferts sociaux en nature, contrepartie des consommations individualisables incluses dans les dépenses des APU et des ISBLSM.

Excédent brut d’exploitation des ménages purs. L’EBE des ménages purs correspond aux revenus fonciers, issus des loyers réels ou des loyers imputés (au titre des services de logement que les ménages propriétaires se rendent à eux mêmes).

variable

Code
t_men_val %>%
  left_join(variable, by = "variable") %>%
  group_by(variable, Variable) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
variable Variable Nobs
B2 + D11 + D4 + D62 + D7 Total des ressources 306
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 306
B2_S14A Revenu mixte 306
B2_S14B Excédent brut d'exploitation des ménages purs 306
B6 Revenu disponible brut 306
B7 Revenu disponible brut ajusté 306
D11 Salaires et traitements bruts 306
D4 Intérêts et dividendes nets reçus 306
D5 Impôts sur le revenu et le patrimoine 306
D5 + D613 + D614 + D61SC NA 306
D613 + D614 + D61SC NA 306
D62 Prestations sociales en espèces 306
D63 Transferts sociaux en nature 306
D7 Autres ressources nettes 306

date

Code
t_men_val %>%
  group_by(date) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(date)) %>%
  print_table_conditional

Evolution

2017T2-

% change

Code
t_men_val %>%
  filter(date %in% c(max(date), as.Date("2017-04-01"))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`% change`) %>%
  print_table_conditional(.)
variable Variable 2017-04-01 2025-04-01 % change change (Mds€)
D4 Intérêts et dividendes nets reçus 20.692 38.130 84.27 17.44
B6 Revenu disponible brut 346.195 471.669 36.24 125.47
B7 Revenu disponible brut ajusté 447.971 606.194 35.32 158.22
B2_S14B Excédent brut d'exploitation des ménages purs 50.859 68.436 34.56 17.58
B2 + D11 + D4 + D62 + D7 Total des ressources 438.969 588.439 34.05 149.47
D63 Transferts sociaux en nature 101.776 134.525 32.18 32.75
D62 Prestations sociales en espèces 123.858 162.988 31.59 39.13
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 77.742 101.983 31.18 24.24
D11 Salaires et traitements bruts 219.533 287.736 31.07 68.20
D5 Impôts sur le revenu et le patrimoine 56.209 72.708 29.35 16.50
D5 + D613 + D614 + D61SC NA 92.773 116.770 25.87 24.00
B2_S14A Revenu mixte 26.883 33.547 24.79 6.66
D613 + D614 + D61SC NA 36.565 44.062 20.50 7.50
D7 Autres ressources nettes -2.857 -2.398 -16.07 0.46

€ change

Code
t_men_val %>%
  filter(date %in% c(max(date), as.Date("2017-04-01"))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`change (Mds€)`) %>%
  print_table_conditional(.)
variable Variable 2017-04-01 2025-04-01 % change change (Mds€)
B7 Revenu disponible brut ajusté 447.971 606.194 35.32 158.22
B2 + D11 + D4 + D62 + D7 Total des ressources 438.969 588.439 34.05 149.47
B6 Revenu disponible brut 346.195 471.669 36.24 125.47
D11 Salaires et traitements bruts 219.533 287.736 31.07 68.20
D62 Prestations sociales en espèces 123.858 162.988 31.59 39.13
D63 Transferts sociaux en nature 101.776 134.525 32.18 32.75
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 77.742 101.983 31.18 24.24
D5 + D613 + D614 + D61SC NA 92.773 116.770 25.87 24.00
B2_S14B Excédent brut d'exploitation des ménages purs 50.859 68.436 34.56 17.58
D4 Intérêts et dividendes nets reçus 20.692 38.130 84.27 17.44
D5 Impôts sur le revenu et le patrimoine 56.209 72.708 29.35 16.50
D613 + D614 + D61SC NA 36.565 44.062 20.50 7.50
B2_S14A Revenu mixte 26.883 33.547 24.79 6.66
D7 Autres ressources nettes -2.857 -2.398 -16.07 0.46

2017T2-

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2017-04-01")) %>%
  group_by(variable) %>%
  arrange(date) %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Index 100 = 2017T2") +
  scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 5)) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank())

Memo, inflation période. IPCH: +21.6%.

Code
ig_d("insee", "IPCH-IPC-2015-ensemble", "IPC-IPCH-trimestre-2017T2")

SMPT, rappel:

Code
ig_d("insee", "t_salaire_val", "TOTAL-AZ-C-2017T2")

2019T4-

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2019-10-01")) %>%
  group_by(variable) %>%
  arrange(date) %>%
  mutate(value = 100*value/value[1]) %>%
  mutate(date = zoo::as.yearqtr(paste(year(date), quarter(date), sep = "-"))) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Index 100 = 2019T4") +
  zoo::scale_x_yearqtr(labels = date_format("%YT%q"), n = 24) +
  scale_y_log10(breaks = seq(0, 1500, 5)) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  geom_text(data = . %>% 
              filter(date == max(date)),
            aes(x = date, y = value, color = Variable, label = round(value, 1)))

2021T2-

Code
t_men_val %>%
  filter(variable %in% c("B6", "D4", "D11")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2021-04-01")) %>%
  group_by(variable) %>%
  arrange(date) %>%
  mutate(value = 100*value/value[1]) %>%
  mutate(date = zoo::as.yearqtr(paste(year(date), quarter(date), sep = "-"))) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Indice 100 = 2021T2") +
  zoo::scale_x_yearqtr(labels = date_format("%YT%q"), n = 24) +
  scale_y_log10(breaks = seq(0, 1500, 5)) +
  theme(legend.position = c(0.3, 0.8),
        legend.title = element_blank(),
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  geom_text_repel(data = . %>% 
              filter(date == max(date)),
            aes(x = date, y = value,  color = Variable, label = round(value, 1)))

3 years

% change

Code
t_men_val %>%
  filter(date %in% c(max(date), max(date)-years(3))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`% change`) %>%
  print_table_conditional(.)
variable Variable 2022-04-01 2025-04-01 % change change (Mds€)
D4 Intérêts et dividendes nets reçus 28.492 38.130 33.83 9.64
B2_S14B Excédent brut d'exploitation des ménages purs 56.342 68.436 21.47 12.09
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 86.911 101.983 17.34 15.07
B6 Revenu disponible brut 402.770 471.669 17.11 68.90
D62 Prestations sociales en espèces 139.333 162.988 16.98 23.66
B7 Revenu disponible brut ajusté 521.282 606.194 16.29 84.91
B2 + D11 + D4 + D62 + D7 Total des ressources 508.261 588.439 15.77 80.18
D613 + D614 + D61SC NA 38.274 44.062 15.12 5.79
D63 Transferts sociaux en nature 118.513 134.525 13.51 16.01
D11 Salaires et traitements bruts 257.415 287.736 11.78 30.32
D5 + D613 + D614 + D61SC NA 105.492 116.770 10.69 11.28
B2_S14A Revenu mixte 30.568 33.547 9.75 2.98
D5 Impôts sur le revenu et le patrimoine 67.217 72.708 8.17 5.49
D7 Autres ressources nettes -3.890 -2.398 -38.35 1.49

€ change

Code
t_men_val %>%
  filter(date %in% c(max(date), max(date)-years(3))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`change (Mds€)`) %>%
  print_table_conditional(.)
variable Variable 2022-04-01 2025-04-01 % change change (Mds€)
B7 Revenu disponible brut ajusté 521.282 606.194 16.29 84.91
B2 + D11 + D4 + D62 + D7 Total des ressources 508.261 588.439 15.77 80.18
B6 Revenu disponible brut 402.770 471.669 17.11 68.90
D11 Salaires et traitements bruts 257.415 287.736 11.78 30.32
D62 Prestations sociales en espèces 139.333 162.988 16.98 23.66
D63 Transferts sociaux en nature 118.513 134.525 13.51 16.01
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 86.911 101.983 17.34 15.07
B2_S14B Excédent brut d'exploitation des ménages purs 56.342 68.436 21.47 12.09
D5 + D613 + D614 + D61SC NA 105.492 116.770 10.69 11.28
D4 Intérêts et dividendes nets reçus 28.492 38.130 33.83 9.64
D613 + D614 + D61SC NA 38.274 44.062 15.12 5.79
D5 Impôts sur le revenu et le patrimoine 67.217 72.708 8.17 5.49
B2_S14A Revenu mixte 30.568 33.547 9.75 2.98
D7 Autres ressources nettes -3.890 -2.398 -38.35 1.49

2 years

% change

Code
t_men_val %>%
  filter(date %in% c(max(date), max(date)-years(2))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`% change`) %>%
  print_table_conditional(.)
variable Variable 2023-04-01 2025-04-01 % change change (Mds€)
D4 Intérêts et dividendes nets reçus 33.005 38.130 15.53 5.12
D62 Prestations sociales en espèces 146.922 162.988 10.94 16.07
D613 + D614 + D61SC NA 39.831 44.062 10.62 4.23
D5 + D613 + D614 + D61SC NA 108.395 116.770 7.73 8.38
D63 Transferts sociaux en nature 125.264 134.525 7.39 9.26
B2 + D11 + D4 + D62 + D7 Total des ressources 549.139 588.439 7.16 39.30
B7 Revenu disponible brut ajusté 566.008 606.194 7.10 40.19
B6 Revenu disponible brut 440.744 471.669 7.02 30.92
D5 Impôts sur le revenu et le patrimoine 68.565 72.708 6.04 4.14
D11 Salaires et traitements bruts 272.824 287.736 5.47 14.91
B2_S14A Revenu mixte 31.954 33.547 4.99 1.59
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 99.143 101.983 2.86 2.84
B2_S14B Excédent brut d'exploitation des ménages purs 67.189 68.436 1.86 1.25
D7 Autres ressources nettes -2.754 -2.398 -12.93 0.36

€ change

Code
t_men_val %>%
  filter(date %in% c(max(date), max(date)-years(2))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`change (Mds€)`) %>%
  print_table_conditional(.)
variable Variable 2023-04-01 2025-04-01 % change change (Mds€)
B7 Revenu disponible brut ajusté 566.008 606.194 7.10 40.19
B2 + D11 + D4 + D62 + D7 Total des ressources 549.139 588.439 7.16 39.30
B6 Revenu disponible brut 440.744 471.669 7.02 30.92
D62 Prestations sociales en espèces 146.922 162.988 10.94 16.07
D11 Salaires et traitements bruts 272.824 287.736 5.47 14.91
D63 Transferts sociaux en nature 125.264 134.525 7.39 9.26
D5 + D613 + D614 + D61SC NA 108.395 116.770 7.73 8.38
D4 Intérêts et dividendes nets reçus 33.005 38.130 15.53 5.12
D613 + D614 + D61SC NA 39.831 44.062 10.62 4.23
D5 Impôts sur le revenu et le patrimoine 68.565 72.708 6.04 4.14
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 99.143 101.983 2.86 2.84
B2_S14A Revenu mixte 31.954 33.547 4.99 1.59
B2_S14B Excédent brut d'exploitation des ménages purs 67.189 68.436 1.86 1.25
D7 Autres ressources nettes -2.754 -2.398 -12.93 0.36

Last year

% change

Code
t_men_val %>%
  filter(date %in% c(max(date), max(date)-years(1))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`% change`) %>%
  print_table_conditional(.)
variable Variable 2024-04-01 2025-04-01 % change change (Mds€)
D613 + D614 + D61SC NA 42.056 44.062 4.77 2.01
D62 Prestations sociales en espèces 156.980 162.988 3.83 6.01
D5 + D613 + D614 + D61SC NA 112.891 116.770 3.44 3.88
D4 Intérêts et dividendes nets reçus 36.996 38.130 3.07 1.13
D63 Transferts sociaux en nature 130.562 134.525 3.04 3.96
B2_S14A Revenu mixte 32.669 33.547 2.69 0.88
D5 Impôts sur le revenu et le patrimoine 70.835 72.708 2.64 1.87
B2 + D11 + D4 + D62 + D7 Total des ressources 576.199 588.439 2.12 12.24
B7 Revenu disponible brut ajusté 593.870 606.194 2.08 12.32
B6 Revenu disponible brut 463.308 471.669 1.80 8.36
D11 Salaires et traitements bruts 283.093 287.736 1.64 4.64
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 101.659 101.983 0.32 0.32
B2_S14B Excédent brut d'exploitation des ménages purs 68.990 68.436 -0.80 -0.55
D7 Autres ressources nettes -2.529 -2.398 -5.18 0.13

€ change

Code
t_men_val %>%
  filter(date %in% c(max(date), max(date)-years(1))) %>%
  left_join(variable, by = "variable") %>%
  spread(date, value) %>%
  mutate(`% change` = round(100*(.[[4]]/.[[3]]-1), 2),
         `change (Mds€)` = round(.[[4]]-.[[3]], 2)) %>%
  arrange(-`change (Mds€)`) %>%
  print_table_conditional(.)
variable Variable 2024-04-01 2025-04-01 % change change (Mds€)
B7 Revenu disponible brut ajusté 593.870 606.194 2.08 12.32
B2 + D11 + D4 + D62 + D7 Total des ressources 576.199 588.439 2.12 12.24
B6 Revenu disponible brut 463.308 471.669 1.80 8.36
D62 Prestations sociales en espèces 156.980 162.988 3.83 6.01
D11 Salaires et traitements bruts 283.093 287.736 1.64 4.64
D63 Transferts sociaux en nature 130.562 134.525 3.04 3.96
D5 + D613 + D614 + D61SC NA 112.891 116.770 3.44 3.88
D613 + D614 + D61SC NA 42.056 44.062 4.77 2.01
D5 Impôts sur le revenu et le patrimoine 70.835 72.708 2.64 1.87
D4 Intérêts et dividendes nets reçus 36.996 38.130 3.07 1.13
B2_S14A Revenu mixte 32.669 33.547 2.69 0.88
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 101.659 101.983 0.32 0.32
D7 Autres ressources nettes -2.529 -2.398 -5.18 0.13
B2_S14B Excédent brut d'exploitation des ménages purs 68.990 68.436 -0.80 -0.55

Evolution RDB, RDB sans capital

1990-

Code
t_men_val %>%
  filter(variable %in% c("B6", "B2_S14B", "D4")) %>%
  spread(variable, value) %>%
  transmute(date, RDB = B6, `RDB - intérêts et dividendes` = B6-D4, `RDB - intérêts et dividendes - EBE` = B6-D4-B2_S14B) %>%
  gather(Variable, value, -date) %>%
  group_by(Variable) %>%
  arrange(date) %>%
  mutate(ga = value/lag(value, 4) - 1) %>%
  filter(date >= as.Date("1990-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = ga, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = seq.Date(from = as.Date("1900-01-01"), to = as.Date("2100-10-01"), by = "5 years"),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

D11, B6

Montant

All

Linear

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1,2,5,8,10,20, 50, 80, 100, 200, 500, 1000, 1200, 2000, 3000, 5000, 10000),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

1995-

Linear

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("1995-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("1995-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

1999-

Linear

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("1999-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Values
Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("1999-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Base 100
Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("1999-01-01")) %>%
  group_by(variable) %>%
  arrange(date) %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Base 100 = 1999") +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

2008-

Linear

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2008-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2008-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

2017-

Linear

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2017-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("D11", "B6")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2017-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(2008, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Revenus du capital

Montant

All

Linear

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1,2,5,8,10,20, 50, 80, 100, 200, 500, 1000, 1200, 2000, 3000, 5000, 10000),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

1995-

Linear

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("1995-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("1995-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

2008-

Linear

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2008-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2008-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

2017-

Linear

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2017-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

Log

Code
t_men_val %>%
  filter(variable %in% c("B2_S14", "B2_S14B", "D4")) %>%
  left_join(variable, by = "variable") %>%
  filter(date >= as.Date("2017-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
  theme_minimal() + xlab("") + ylab("Milliards d'€") +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1500, 10),
                     labels = dollar_format(accuracy = 1, pre = "", su ="Mds€")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())