source | dataset | .html | .RData |
---|---|---|---|
insee | t_txmargesnf_val | 2025-05-18 | 2025-02-28 |
Décomposition du taux de marge des sociétés non financières
Data - Insee
Info
Info
Définition
Le taux de marge rapporte l’excédent brut d’exploitation (EBE, B2) à la valeur ajoutée brute en valeur (B1).
\[TM = EBE/VA = B2/B1\]
Partant de l’égalité comptable :
$$B2 = B1-D1-D29+D39$$
On peut donc décomposer le taux de marge comme :
\[TM = 1 - D1/B1 -(D29-D39)/B1\]
Le terme D1/B1 peut se récrire de la façon suivante :
\[D1/B1 = D1/D11 * D11/(Emploi salarié) * Emploi salarié/B1 \]
On a :
\[
D1/D11 = (1+D12/D11) = (1+ \text{taux de cotisation employeur apparent})
\]
\[D11/(Emploi salarié) = Salaire moyen par tête nominal = Salaire par tête réel * Prix de la consommation finale \] \[ Emploi salarié/B1 = Emploi salarié / (valeur ajoutée brute en volume * prix de la valeur ajoutée brute) = 1 / (productivité apparente du travail * prix de la valeur ajoutée brute) \]
Donc on peut réécrire le terme D1/B1 :
\[ D1/B1 = (1+ taux de cotisation apparent) * Salaire par tête réel * (1/ Productivité du travail) * Prix de la consommation finale/Prix de la valeur ajoutée brute \]
Ce qui permet au total de décomposer les variations du taux de marge qui dépendent :
- positivement des gains de productivité apparente du travail
- négativement des hausses de salaires par tête réels
- négativement des hausses de cotisations sociales
- positivement des hausses du ratio rapportant le prix de la valeur ajoutée brute à celui de la consommation finale - d’autres éléments de moindre importance (comprenant les impôts nets des subventions et le taux de cotisations sociales apparent)
variable
Code
%>%
t_txmargesnf_val group_by(variable) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional
variable | Nobs |
---|---|
taux_marge | 304 |
variation_taux_marge | 303 |
Cotisations sociales | 187 |
Salaires réels | 187 |
Autres éléments | 99 |
Productivité | 99 |
Ratio du prix de la VA et du prix de la conso | 99 |
date
Code
%>%
t_txmargesnf_val group_by(date) %>%
summarise(Nobs = n()) %>%
arrange(desc(date)) %>%
print_table_conditional()
2021
Trimestre 1
Code
%>%
t_txmargesnf_val filter(date == as.Date("2021-01-01")) %>%
select(-date) %>%
print_table_conditional()
variable | value |
---|---|
taux_marge | 35.6914382 |
variation_taux_marge | 1.8800860 |
Productivité | -0.0982806 |
Salaires réels | 0.3354760 |
Cotisations sociales | 0.1007229 |
Ratio du prix de la VA et du prix de la conso | -0.3639148 |
Autres éléments | 1.9060825 |
Trimestre 2
Code
%>%
t_txmargesnf_val filter(date == as.Date("2021-04-01")) %>%
select(-date) %>%
print_table_conditional()
variable | value |
---|---|
taux_marge | 34.5675875 |
variation_taux_marge | -1.1238506 |
Productivité | 0.4973534 |
Salaires réels | -0.7402631 |
Cotisations sociales | 0.0695362 |
Ratio du prix de la VA et du prix de la conso | 0.2025686 |
Autres éléments | -1.1530457 |
Trimestre 3
Code
%>%
t_txmargesnf_val filter(date == as.Date("2022-04-01")) %>%
select(-date) %>%
print_table_conditional()
variable | value |
---|---|
taux_marge | 30.7236793 |
variation_taux_marge | -0.4442341 |
Productivité | 0.0606035 |
Salaires réels | 0.1640985 |
Cotisations sociales | -0.0013895 |
Ratio du prix de la VA et du prix de la conso | -0.0700408 |
Autres éléments | -0.5975058 |
Décomposition
2020-
Code
%>%
t_txmargesnf_val filter(variable %in% c("variation_taux_marge",
"Ratio du prix de la VA et du prix de la conso",
"Salaires réels", "Productivité")) %>%
filter(date >=as.Date("2021-01-01")) %>%
+ geom_line(aes(x = date, y = value / 100, color = variable)) +
ggplot xlab("") + ylab("Evolution (%)") +
theme_minimal() +
theme(legend.title = element_blank(),
legend.position = c(0.4, 0.92)) +
scale_x_date(breaks = "3 months",
labels = date_format("%Y %b")) +
scale_y_continuous(breaks = 0.01*seq(-40, 40, 1),
labels = scales::percent_format(accuracy = 1))
Taux de marge des sociétés non financières
Tous
Code
%>%
t_txmargesnf_val filter(variable == "taux_marge") %>%
+ geom_line(aes(x = date, y = value / 100)) +
ggplot xlab("") + ylab("Taux de marge des sociétés non financières (%)") +
theme_minimal() +
scale_x_date(breaks = seq(1945, 2025, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-2, 40, 1),
labels = scales::percent_format(accuracy = 1)) +
geom_hline(yintercept = 0.349, color = "red", linetype = "dashed")
1990-
Code
%>%
t_txmargesnf_val filter(variable == "taux_marge",
>= as.Date("1990-01-01")) %>%
date + geom_line(aes(x = date, y = value / 100)) +
ggplot xlab("") + ylab("Taux de marge des sociétés non financières (%)") +
theme_minimal() +
scale_x_date(breaks = seq(1870, 2025, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%y")) +
scale_y_continuous(breaks = 0.01*seq(-2, 40, 1),
labels = scales::percent_format(accuracy = 1)) +
geom_hline(yintercept = 0.349, color = "red", linetype = "dashed")
2006-
Code
%>%
t_txmargesnf_val filter(variable == "taux_marge",
>= as.Date("2006-01-01")) %>%
date + geom_line(aes(x = date, y = value / 100)) +
ggplot xlab("") + ylab("Taux de marge des sociétés non financières (%)") +
theme_minimal() +
scale_x_date(breaks = seq(1870, 2025, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-2, 40, 1),
labels = scales::percent_format(accuracy = 1)) +
geom_hline(yintercept = 0.349, color = "red", linetype = "dashed")
Décomposition du taux de marge des sociétés non financières
Code
%>%
t_txmargesnf_val filter(variable == "taux_marge") %>%
mutate(version = "Estimation INSEE, 28 Juillet 2021") %>%
bind_rows(t_txmargesnf_val_May28 %>%
filter(variable == "taux_marge") %>%
mutate(version = "Estimation INSEE, 28 Mai 2021")) %>%
+ geom_line(aes(x = date, y = value / 100, color = version)) +
ggplot xlab("") + ylab("Taux de marge des sociétés non financières (%)") +
theme_minimal() +
scale_x_date(breaks = seq(1870, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%y")) +
theme(legend.title = element_blank(),
legend.position = c(0.3, 0.9)) +
scale_y_continuous(breaks = 0.01*seq(-2, 40, 1),
labels = scales::percent_format(accuracy = 1))
Quelques taux de marge
Par secteur
Code
ig_b("insee", "ENTFRA23", "F9", "table1")
Distribution
Code
ig_b("insee", "ENTFRA23", "F9", "figure3")
Théorème de Schmidt ?
All
Code
ig_d("insee", "t_pib_val", "investissement-taux-marge")
1980-
Code
ig_d("insee", "t_pib_val", "investissement-taux-marge-1980")