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-12-25 2025-12-27

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-12-27 2025-12-27
insee CNT-2014-CSI Comptes de secteurs institutionnels 2025-12-27 2025-12-27
insee T_7401 7.401 – Compte des ménages (S14) (En milliards d'euros) 2025-12-27 2025-12-14
insee conso-eff-fonction Consommation effective des ménages par fonction 2025-12-27 2022-06-14
insee econ-gen-revenu-dispo-pouv-achat-2 Revenu disponible brut et pouvoir d’achat - Données annuelles 2025-12-27 2025-12-27
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-12-27 2024-12-11
insee reve-niv-vie-individu-activite Niveau de vie selon l'activité - Données annuelles 2025-12-27 2025-12-22
insee reve-niv-vie-pouv-achat-trim Évolution du revenu disponible brut et du pouvoir d’achat - Données trimestrielles 2025-12-27 2025-12-27
insee t_men_val Revenu, pouvoir d'achat et comptes des ménages - Valeurs aux prix courants 2025-12-25 2025-12-27
insee t_pouvachat_val Pouvoir d'achat et ratios des comptes des ménages 2025-12-25 2025-12-27
insee t_recapAgent_val Récapitulatif des séries des comptes d'agents 2025-12-25 2025-12-27
insee t_salaire_val Salaire moyen par tête - SMPT (données CVS) 2025-12-25 2025-12-27
oecd HH_DASH Household Dashboard 2025-12-26 2023-09-09

Données sur l’épargne

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

LAST_COMPILE

LAST_COMPILE
2025-12-27

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]

Exemple

  • 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 307
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 307
B2_S14A Revenu mixte 307
B2_S14B Excédent brut d'exploitation des ménages purs 307
B6 Revenu disponible brut 307
B7 Revenu disponible brut ajusté 307
D11 Salaires et traitements bruts 307
D4 Intérêts et dividendes nets reçus 307
D5 Impôts sur le revenu et le patrimoine 307
D5 + D613 + D614 + D61SC NA 307
D613 + D614 + D61SC NA 307
D62 Prestations sociales en espèces 307
D63 Transferts sociaux en nature 307
D7 Autres ressources nettes 307

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-07-01 % change change (Mds€)
D4 Intérêts et dividendes nets reçus 20.692 37.372 80.61 16.68
B6 Revenu disponible brut 346.187 471.062 36.07 124.88
B7 Revenu disponible brut ajusté 447.967 606.732 35.44 158.76
B2_S14B Excédent brut d'exploitation des ménages purs 50.860 68.504 34.69 17.64
B2 + D11 + D4 + D62 + D7 Total des ressources 438.968 589.717 34.34 150.75
D63 Transferts sociaux en nature 101.780 135.670 33.30 33.89
D62 Prestations sociales en espèces 123.858 164.047 32.45 40.19
D5 Impôts sur le revenu et le patrimoine 56.209 74.180 31.97 17.97
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 77.744 102.263 31.54 24.52
D11 Salaires et traitements bruts 219.531 288.524 31.43 68.99
D5 + D613 + D614 + D61SC NA 92.781 118.655 27.89 25.87
B2_S14A Revenu mixte 26.884 33.759 25.57 6.88
D613 + D614 + D61SC NA 36.572 44.475 21.61 7.90
D7 Autres ressources nettes -2.857 -2.490 -12.85 0.37

€ 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-07-01 % change change (Mds€)
B7 Revenu disponible brut ajusté 447.967 606.732 35.44 158.76
B2 + D11 + D4 + D62 + D7 Total des ressources 438.968 589.717 34.34 150.75
B6 Revenu disponible brut 346.187 471.062 36.07 124.88
D11 Salaires et traitements bruts 219.531 288.524 31.43 68.99
D62 Prestations sociales en espèces 123.858 164.047 32.45 40.19
D63 Transferts sociaux en nature 101.780 135.670 33.30 33.89
D5 + D613 + D614 + D61SC NA 92.781 118.655 27.89 25.87
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 77.744 102.263 31.54 24.52
D5 Impôts sur le revenu et le patrimoine 56.209 74.180 31.97 17.97
B2_S14B Excédent brut d'exploitation des ménages purs 50.860 68.504 34.69 17.64
D4 Intérêts et dividendes nets reçus 20.692 37.372 80.61 16.68
D613 + D614 + D61SC NA 36.572 44.475 21.61 7.90
B2_S14A Revenu mixte 26.884 33.759 25.57 6.88
D7 Autres ressources nettes -2.857 -2.490 -12.85 0.37

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-07-01 2025-07-01 % change change (Mds€)
D4 Intérêts et dividendes nets reçus 29.292 37.372 27.58 8.08
B2_S14B Excédent brut d'exploitation des ménages purs 57.887 68.504 18.34 10.62
D613 + D614 + D61SC NA 38.908 44.475 14.31 5.57
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 89.482 102.263 14.28 12.78
D62 Prestations sociales en espèces 143.930 164.047 13.98 20.12
B6 Revenu disponible brut 415.457 471.062 13.38 55.61
B7 Revenu disponible brut ajusté 537.150 606.732 12.95 69.58
B2 + D11 + D4 + D62 + D7 Total des ressources 522.500 589.717 12.86 67.22
D63 Transferts sociaux en nature 121.694 135.670 11.48 13.98
D5 + D613 + D614 + D61SC NA 107.044 118.655 10.85 11.61
D11 Salaires et traitements bruts 263.420 288.524 9.53 25.10
D5 Impôts sur le revenu et le patrimoine 68.135 74.180 8.87 6.05
B2_S14A Revenu mixte 31.595 33.759 6.85 2.16
D7 Autres ressources nettes -3.624 -2.490 -31.29 1.13

€ 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-07-01 2025-07-01 % change change (Mds€)
B7 Revenu disponible brut ajusté 537.150 606.732 12.95 69.58
B2 + D11 + D4 + D62 + D7 Total des ressources 522.500 589.717 12.86 67.22
B6 Revenu disponible brut 415.457 471.062 13.38 55.61
D11 Salaires et traitements bruts 263.420 288.524 9.53 25.10
D62 Prestations sociales en espèces 143.930 164.047 13.98 20.12
D63 Transferts sociaux en nature 121.694 135.670 11.48 13.98
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 89.482 102.263 14.28 12.78
D5 + D613 + D614 + D61SC NA 107.044 118.655 10.85 11.61
B2_S14B Excédent brut d'exploitation des ménages purs 57.887 68.504 18.34 10.62
D4 Intérêts et dividendes nets reçus 29.292 37.372 27.58 8.08
D5 Impôts sur le revenu et le patrimoine 68.135 74.180 8.87 6.05
D613 + D614 + D61SC NA 38.908 44.475 14.31 5.57
B2_S14A Revenu mixte 31.595 33.759 6.85 2.16
D7 Autres ressources nettes -3.624 -2.490 -31.29 1.13

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-07-01 2025-07-01 % change change (Mds€)
D62 Prestations sociales en espèces 148.147 164.047 10.73 15.90
D613 + D614 + D61SC NA 40.216 44.475 10.59 4.26
D5 + D613 + D614 + D61SC NA 108.217 118.655 9.65 10.44
D4 Intérêts et dividendes nets reçus 34.185 37.372 9.32 3.19
D5 Impôts sur le revenu et le patrimoine 68.001 74.180 9.09 6.18
D63 Transferts sociaux en nature 127.208 135.670 6.65 8.46
B2 + D11 + D4 + D62 + D7 Total des ressources 555.668 589.717 6.13 34.05
B7 Revenu disponible brut ajusté 574.659 606.732 5.58 32.07
B2_S14A Revenu mixte 32.053 33.759 5.32 1.71
B6 Revenu disponible brut 447.451 471.062 5.28 23.61
D11 Salaires et traitements bruts 275.380 288.524 4.77 13.14
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 100.552 102.263 1.70 1.71
B2_S14B Excédent brut d'exploitation des ménages purs 68.498 68.504 0.01 0.01
D7 Autres ressources nettes -2.595 -2.490 -4.05 0.10

€ 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-07-01 2025-07-01 % change change (Mds€)
B2 + D11 + D4 + D62 + D7 Total des ressources 555.668 589.717 6.13 34.05
B7 Revenu disponible brut ajusté 574.659 606.732 5.58 32.07
B6 Revenu disponible brut 447.451 471.062 5.28 23.61
D62 Prestations sociales en espèces 148.147 164.047 10.73 15.90
D11 Salaires et traitements bruts 275.380 288.524 4.77 13.14
D5 + D613 + D614 + D61SC NA 108.217 118.655 9.65 10.44
D63 Transferts sociaux en nature 127.208 135.670 6.65 8.46
D5 Impôts sur le revenu et le patrimoine 68.001 74.180 9.09 6.18
D613 + D614 + D61SC NA 40.216 44.475 10.59 4.26
D4 Intérêts et dividendes nets reçus 34.185 37.372 9.32 3.19
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 100.552 102.263 1.70 1.71
B2_S14A Revenu mixte 32.053 33.759 5.32 1.71
D7 Autres ressources nettes -2.595 -2.490 -4.05 0.10
B2_S14B Excédent brut d'exploitation des ménages purs 68.498 68.504 0.01 0.01

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-07-01 2025-07-01 % change change (Mds€)
D5 Impôts sur le revenu et le patrimoine 69.795 74.180 6.28 4.39
D5 + D613 + D614 + D61SC NA 112.526 118.655 5.45 6.13
D613 + D614 + D61SC NA 42.731 44.475 4.08 1.74
D62 Prestations sociales en espèces 158.847 164.047 3.27 5.20
D63 Transferts sociaux en nature 131.684 135.670 3.03 3.99
B2_S14A Revenu mixte 32.924 33.759 2.54 0.84
B2 + D11 + D4 + D62 + D7 Total des ressources 581.502 589.717 1.41 8.22
D11 Salaires et traitements bruts 284.650 288.524 1.36 3.87
B7 Revenu disponible brut ajusté 600.660 606.732 1.01 6.07
B6 Revenu disponible brut 468.976 471.062 0.44 2.09
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 102.691 102.263 -0.42 -0.43
D7 Autres ressources nettes -2.513 -2.490 -0.92 0.02
D4 Intérêts et dividendes nets reçus 37.827 37.372 -1.20 -0.45
B2_S14B Excédent brut d'exploitation des ménages purs 69.767 68.504 -1.81 -1.26

€ 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-07-01 2025-07-01 % change change (Mds€)
B2 + D11 + D4 + D62 + D7 Total des ressources 581.502 589.717 1.41 8.22
D5 + D613 + D614 + D61SC NA 112.526 118.655 5.45 6.13
B7 Revenu disponible brut ajusté 600.660 606.732 1.01 6.07
D62 Prestations sociales en espèces 158.847 164.047 3.27 5.20
D5 Impôts sur le revenu et le patrimoine 69.795 74.180 6.28 4.39
D63 Transferts sociaux en nature 131.684 135.670 3.03 3.99
D11 Salaires et traitements bruts 284.650 288.524 1.36 3.87
B6 Revenu disponible brut 468.976 471.062 0.44 2.09
D613 + D614 + D61SC NA 42.731 44.475 4.08 1.74
B2_S14A Revenu mixte 32.924 33.759 2.54 0.84
D7 Autres ressources nettes -2.513 -2.490 -0.92 0.02
B2_S14 Excédent brut d'exploitation (y compris revenu mixte) 102.691 102.263 -0.42 -0.43
D4 Intérêts et dividendes nets reçus 37.827 37.372 -1.20 -0.45
B2_S14B Excédent brut d'exploitation des ménages purs 69.767 68.504 -1.81 -1.26

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())