3.217 – Principaux impôts par catégorie (En milliards d’euros)

Data - INSEE

Info

source dataset .html .RData
insee CNA-2020-PIB 2025-01-31 2024-09-11
insee T_3217 2025-02-04 2025-02-04

Données sur les finances publiques

source dataset .html .RData
insee t_3217 2025-02-04 2025-02-04
insee t_7301 2025-01-31 2024-10-17

Last

Code
T_3217 %>%
  group_by(year) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(year)) %>%
  head(1) %>%
  print_table_conditional()
year Nobs
2023 94

Principaux impots

Code
ig_b("insee", "TEF2020", "recette-administrations-publiques-bind")

Données

2019-2023 Bind

Code
ig_b("insee", "T_3217-table")

2015-2019 Bind

Code
ig_b("insee", "T_3217_bind")

Ordre Ligne

Code
T_3217 %>%
  filter(year == "2019") %>%
  left_join(gdp, by = "year") %>%
  select(-year) %>%
  mutate(`%` = round(100*value / gdp, 2)) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Ordre décroissant

Code
T_3217 %>%
  filter(year == "2019") %>%
  left_join(gdp, by = "year") %>%
  select(-year) %>%
  mutate(`%` = round(100*value / gdp, 2)) %>%
  arrange(-value) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Individuel

Ensemble des prélèvements obligatoires

Code
T_3217 %>%
  filter(line %in% c(102, 108)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Cotisations sociales effectives

Code
T_3217 %>%
  filter(line %in% c(96, 97)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Tabac

Code
T_3217 %>%
  filter(line %in% c(15)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 0.02),
                labels = percent_format(accuracy = .01)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

CSG (Santé), Tabac

Code
T_3217 %>%
  filter(line %in% c(71, 15)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Gros prélèvements

TVA, produits

Code
T_3217 %>%
  filter(line %in% c(5, 10, 40, 50)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.55, 0.55),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Impôt sur les sociétés

Code
T_3217 %>%
  filter(line %in% c(78)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.6, 0.9),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Impôt sur les sociétés, IR, TICPE

Code
T_3217 %>%
  filter(line %in% c(78, 75,11)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .2),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.55, 0.9),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Droits d’enregistrement, droits de mutation, habitation, foncière

Code
T_3217 %>%
  filter(line %in% c(7, 64, 58, 33)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .1),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank())

IR, TVA, CSG

Tous

Code
T_3217 %>%
  filter(line %in% c(5, 71, 75)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Court

Code
T_3217 %>%
  filter(line %in% c(5, 71, 75)) %>%
  left_join(tibble(line = c(5, 71, 75),
                   Variable = c("TVA", "Impôt sur le Revenu", "CSG"))) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Variable)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1)) +
  
  theme(legend.position = c(0.85, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Variable) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Variable))

IR, CSG (Santé), TVA, Impôts sur les produits

Code
T_3217 %>%
  filter(line %in% c(5, 71, 75, 10)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1),
                limits = c(0, 0.08)) +
  
  theme(legend.position = c(0.6, 0.15),
        legend.title = element_blank())

Taxe foncière, Impots divers sur la production, Impôts sur les salaires

Code
T_3217 %>%
  filter(line %in% c(51, 50, 39)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .5),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.3, 0.5),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Autres impots, Droit enregistrement, IS, TIPP

Code
T_3217 %>%
  filter(line %in% c(8, 9, 13, 6, 14)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .1),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.6, 0.9),
        legend.title = element_blank())

Autres impots, Droit enregistrement, IS, TIPP

All

Code
T_3217 %>%
  filter(line %in% c(8, 9, 13, 6, 14)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .1),
                labels = percent_format(accuracy = .1),
                limits = c(0, 0.008)) +
  theme(legend.position = c(0.3, 0.86),
        legend.title = element_blank())

2000-

Code
T_3217 %>%
  filter(line %in% c(8, 9, 13, 6, 14)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  filter(date >= as.Date("2000-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .1),
                labels = percent_format(accuracy = .1),
                limits = c(0, 0.008)) +
  theme(legend.position = c(0.3, 0.86),
        legend.title = element_blank())

2007-

Code
T_3217 %>%
  filter(line %in% c(8, 9, 13, 6, 14)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  filter(date >= as.Date("2007-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2027, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .1),
                labels = percent_format(accuracy = .1),
                limits = c(0, 0.008)) +
  theme(legend.position = c(0.3, 0.86),
        legend.title = element_blank())

Somme

Code
T_3217 %>%
  filter(line %in% c(8, 9, 13, 6, 14)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  filter(date >= as.Date("2007-01-01")) %>%
  group_by(date) %>%
  summarise(value = sum(value),
            gdp = gdp[1]) %>%
  ggplot + geom_line(aes(x = date, y = value / gdp)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2027, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .1),
                labels = percent_format(accuracy = .1)) +
  theme(legend.position = c(0.3, 0.86),
        legend.title = element_blank())

Petits impôts

Droits de mutation

Code
T_3217 %>%
  filter(line %in% c(91, 92, 93)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("% du PIB") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, .1),
                labels = percent_format(accuracy = .1)) +
  
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Droits d’enregistrement

Code
T_3217 %>%
  filter(line %in% c(17)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp)) +
  theme_minimal() + xlab("") + ylab("Droits d'enregistrement (% du PIB)") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 0.05),
                labels = percent_format(accuracy = .01)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Taxe intérieure de consommation sur les produits énergétiques

Code
T_3217 %>%
  filter(line %in% c(11)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  ggplot + geom_line(aes(x = date, y = value / gdp)) +
  theme_minimal() + xlab("") + ylab("Taxe intérieure de conso sur les produits énergétiques\n(% du PIB)") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 0.05),
                labels = percent_format(accuracy = .01)) +
  
  theme(legend.position = c(0.75, 0.15),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))

Taxe foncière

Code
T_3217 %>%
  filter(line %in% c(51, 52, 53)) %>%
  left_join(gdp, by = "year") %>%
  year_to_date2 %>%
  mutate(Line = gsub("Taxe foncière", " Taxe foncière", Line)) %>%
  ggplot + geom_line(aes(x = date, y = value / gdp, color = Line)) +
  theme_minimal() + xlab("") + ylab("Taxe foncière (% du PIB)") +
  scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 0.1),
                labels = percent_format(accuracy = .1)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank()) +
  geom_label(data = . %>%
               group_by(Line) %>%
               filter(date == max(date)), aes(x = date, y = value / gdp, label = paste0(round(value, 1), " Md"), color = Line))