Dépense de consommation finale pré-engagée détaillée des ménages (niveaux diffusables les plus fins) - T_DEP_PRE_ENG

Données - INSEE

Structure

Poids des dépenses pré-engagées

Environ un tiers du budget de consommation des ménages est pré-engagé, contre un cinquième dans les années 1960. La hausse tient pour l’essentiel au logement (loyers, y compris imputés aux propriétaires, et énergie).

Code
`T_DEP_PRE_ENG` |>
  filter(sheet == "M€cour", code %in% c("_DEP_CONSO", "_DEP_REVENU")) |>
  mutate(serie = recode(code,
    `_DEP_CONSO`  = "% de la consommation des ménages",
    `_DEP_REVENU` = "% du revenu disponible brut")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Part des dépenses pré-engagées") +
  geom_line(aes(x = year, y = value / 100, color = serie)) +
  scale_x_continuous(breaks = seq(1960, 2030, 10)) +
  scale_y_continuous(breaks = seq(0.1, 0.4, 0.05), labels = percent_format(accuracy = 1)) +
  theme(legend.title = element_blank(), legend.position = "bottom")

Décomposition (% du revenu disponible brut)

Code
`T_DEP_PRE_ENG` |>
  filter(sheet == "M€cour",
         code %in% c("_DEP_LOGT_REVENU", "_ASSUR_REVENU", "_TELE_REVENU", "_CANTINE_REVENU")) |>
  mutate(poste = recode(code,
    `_DEP_LOGT_REVENU` = "Logement (loyers, énergie, charges)",
    `_ASSUR_REVENU`    = "Assurances et services financiers",
    `_TELE_REVENU`     = "Télévision et télécommunications",
    `_CANTINE_REVENU`  = "Cantines"),
    poste = factor(poste, levels = c("Cantines", "Télévision et télécommunications",
                                     "Assurances et services financiers",
                                     "Logement (loyers, énergie, charges)"))) |>
  ggplot() + theme_minimal() + xlab("") + ylab("% du revenu disponible brut") +
  geom_area(aes(x = year, y = value / 100, fill = poste)) +
  scale_x_continuous(breaks = seq(1960, 2030, 10)) +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  scale_fill_manual(values = viridis(4)) +
  theme(legend.title = element_blank(), legend.position = "bottom") +
  guides(fill = guide_legend(nrow = 2))

Loyers effectifs et loyers imputés

Les loyers imputés (loyer que les propriétaires occupants se « versent » à eux-mêmes) pèsent près de trois fois plus que les loyers effectivement payés par les locataires.

Code
`T_DEP_PRE_ENG` |>
  filter(sheet == "M€cour", code %in% c("CP041", "CP042")) |>
  left_join(filter(`T_DEP_PRE_ENG`, sheet == "M€cour", code == "B6G") |>
              select(year, rdb = value), by = "year") |>
  ggplot() + theme_minimal() + xlab("") + ylab("% du revenu disponible brut") +
  geom_line(aes(x = year, y = value / rdb, color = label)) +
  scale_x_continuous(breaks = seq(1960, 2030, 10)) +
  scale_y_continuous(labels = percent_format(accuracy = 1)) +
  theme(legend.title = element_blank(), legend.position = "bottom") +
  guides(color = guide_legend(nrow = 2))

Prix des postes pré-engagés (base 100 en 2000)

Code
`T_DEP_PRE_ENG` |>
  filter(sheet == "Iprix2020", code %in% c("CP041", "CP042", "CP045", "CP083", "CP121P_122")) |>
  group_by(code) |>
  mutate(value = 100 * value / value[year == 2000]) |>
  ungroup() |>
  ggplot() + theme_minimal() + xlab("") + ylab("Prix (2000 = 100)") +
  geom_line(aes(x = year, y = value, color = label)) +
  scale_x_continuous(breaks = seq(1960, 2030, 10)) +
  theme(legend.title = element_blank(), legend.position = "bottom") +
  guides(color = guide_legend(nrow = 3))

Table (2025, Mds €)

Code
`T_DEP_PRE_ENG` |>
  filter(sheet == "M€cour", year == last_y, nchar(code) <= 6, !grepl("^_", code)) |>
  transmute(Poste = label, Code = code, `Mds €` = round(value / 1000, 1)) |>
  arrange(desc(`Mds €`)) |>
  print_table_conditional()

Version gt (export PDF)

Version “article” : sans titre interne (la légende vient du \caption{} LaTeX), style booktabs (filets horizontaux seulement, pas de zébrage), police serif, colonne Code en petit gris pour ne pas distraire de la lecture.

Code
gt_dep_pre_eng <- `T_DEP_PRE_ENG` |>
  filter(sheet == "M€cour", year == last_y, nchar(code) <= 6, !grepl("^_", code)) |>
  transmute(Poste = label, Code = code, `Mds €` = round(value / 1000, 1)) |>
  arrange(desc(`Mds €`)) |>
  gt::gt() |>
  gt::fmt_number(columns = `Mds €`, decimals = 1, sep_mark = " ") |>
  gt::cols_align(align = "left", columns = Poste) |>
  gt::cols_align(align = "right", columns = `Mds €`) |>
  gt::cols_align(align = "center", columns = Code) |>
  gt::cols_label(Poste = "", Code = "Code", `Mds €` = gt::md("**Mds €**")) |>
  gt::tab_style(
    style = gt::cell_text(color = "grey45", size = gt::px(9), font = "monospace"),
    locations = gt::cells_body(columns = Code)
  ) |>
  gt::tab_style(
    style = gt::cell_text(color = "grey45", size = gt::px(9), font = "monospace"),
    locations = gt::cells_column_labels(columns = Code)
  ) |>
  gt::tab_style(
    style = gt::cell_text(weight = "bold"),
    locations = gt::cells_column_labels(columns = c(Poste, `Mds €`))
  ) |>
  gt::tab_source_note(gt::md(paste0(
    "*Source : Insee, comptes nationaux (T_DEP_PRE_ENG), ", last_y, ".*"
  ))) |>
  gt::tab_options(
    table.font.names = c("Times New Roman", "Times", "serif"),
    table.font.size = gt::px(12),
    table.font.color = "black",
    table.border.top.style = "hidden",
    table.border.bottom.style = "hidden",
    heading.border.bottom.style = "hidden",
    column_labels.border.top.style = "solid",
    column_labels.border.top.width = gt::px(1.5),
    column_labels.border.top.color = "black",
    column_labels.border.bottom.style = "solid",
    column_labels.border.bottom.width = gt::px(1),
    column_labels.border.bottom.color = "black",
    table_body.border.bottom.style = "solid",
    table_body.border.bottom.width = gt::px(1.5),
    table_body.border.bottom.color = "black",
    table_body.hlines.style = "none",
    row.striping.include_table_body = FALSE,
    data_row.padding = gt::px(3),
    source_notes.font.size = gt::px(9),
    source_notes.border.lr.style = "hidden"
  )

gt_dep_pre_eng
Code Mds €
Revenu disponible brut B6G 1 876.9
Dépense de consommation individuelle des ménages P31 1 545.9
Dépense de consommation autre que pré-engagée CPHDPE 976.6
Dépense de consommation finale pré-engagée CPDPE 569.3
Logement, eau, gaz, électricité et autres combustibles CP04 433.0
Loyers d’habitation imputés CP042 226.8
Loyers imputés des propriétaires-occupants pour leur résidence principale (S) CP0421 199.4
Loyers d’habitation effectivement payés CP041 80.1
Loyers effectivement payés par les locataires pour des résidences principales (S) CP0411 79.3
Électricité, gaz et autres combustibles CP045 66.0
Services financiers CP122 41.6
Services d’information et de communication CP083 40.8
Électricité (ND) CP0451 39.0
Entretien, réparation et sécurité des logements CP043 33.5
Services concernant l’entretien, les réparations et la sécurité du logement (S) CP0432 30.8
Autres loyers imputés (S) CP0422 27.4
Alimentation en eau et services divers liés au logement CP044 26.6
Gaz (ND) CP0452 18.1
Assurance liée à la santé (S) CP1212 17.3
Cantines, cafétérias et réfectoires (S) CP1112 13.0
Assurance liée aux transports (S) CP1214 11.2
Assurance liée aux logements (S) CP1213 9.1
Reprise des eaux usées (S) CP0443 7.9
Services divers liés au logement (S) CP0444 7.0
Collecte des ordures ménagères (S) CP0442 6.1
Alimentation en eau (ND) CP0441 5.6
Autres assurances (S) CP1219 3.2
Combustibles solides (ND) CP0454 3.1
Autres sources d’énergie pour les systèmes de chauffage et de refroidissement (ND) CP0455 3.0
Équipement de sécurité et fournitures pour travaux d’entretien et de réparation des logements CP0431 2.8
Combustibles liquides (ND) CP0453 2.8
Autres loyers effectifs (S) CP0412 0.8
Source : Insee, comptes nationaux (T_DEP_PRE_ENG), 2025.
Code
gt::gtsave(gt_dep_pre_eng, here::here("data", "insee", "T_DEP_PRE_ENG_files", "figure-html", "T_DEP_PRE_ENG_table.png"))