Enquête annuelle du SGACPR sur le financement de l’habitat 2024
Data - ACPR
Info
Données sur l’immobilier
Code
load_data("immobilier.RData")
%>%
immobilier source_dataset_file_updates()
source | dataset | Title | .html | .rData |
---|---|---|---|---|
acpr | as151 | Enquête annuelle du SGACPR sur le financement de l'habitat 2022 | 2025-08-24 | 2024-04-05 |
bdf | BSI1 | Agrégats monétaires - France | 2025-08-28 | 2025-08-24 |
bdf | CPP | Prix immobilier commercial | 2025-08-28 | 2024-07-01 |
bdf | FM | Marché financier, taux | 2025-08-28 | 2025-08-28 |
bdf | MIR | Taux d'intérêt - Zone euro | 2025-08-28 | 2025-08-04 |
bdf | MIR1 | Taux d'intérêt - France | 2025-08-28 | 2025-08-04 |
bdf | RPP | Prix de l'immobilier | 2025-08-28 | 2025-08-24 |
bdf | immobilier | Immobilier en France | 2025-08-28 | 2025-08-28 |
cgedd | nombre-vente-maison-appartement-ancien | Nombre de ventes de logements anciens cumulé sur 12 mois | 2024-09-26 | 2024-09-26 |
insee | CONSTRUCTION-LOGEMENTS | Construction de logements | 2025-09-26 | 2025-09-26 |
insee | ENQ-CONJ-ART-BAT | Conjoncture dans l'artisanat du bâtiment | 2025-09-26 | 2025-09-26 |
insee | ENQ-CONJ-IND-BAT | Conjoncture dans l'industrie du bâtiment - ENQ-CONJ-IND-BAT | 2025-09-26 | 2025-09-26 |
insee | ENQ-CONJ-PROMO-IMMO | Conjoncture dans la promotion immobilière | 2025-09-26 | 2025-09-26 |
insee | ENQ-CONJ-TP | Conjoncture dans les travaux publics | 2025-09-26 | 2025-09-26 |
insee | ILC-ILAT-ICC | Indices pour la révision d’un bail commercial ou professionnel | 2025-09-26 | 2025-09-26 |
insee | INDICES_LOYERS | Indices des loyers - Base 2019 | 2025-09-26 | 2025-09-26 |
insee | IPLA-IPLNA-2015 | Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens | 2025-09-26 | 2025-09-26 |
insee | IRL | Indice pour la révision d’un loyer d’habitation | 2025-09-26 | 2025-09-26 |
insee | PARC-LOGEMENTS | Estimations annuelles du parc de logements (EAPL) | 2025-09-26 | 2023-12-03 |
insee | SERIES_LOYERS | Variation des loyers | 2025-09-26 | 2025-09-26 |
insee | t_dpe_val | Dépenses de consommation des ménages pré-engagées | 2025-09-26 | 2025-08-29 |
notaires | arrdt | Prix au m^2 par arrondissement - arrdt | 2025-03-27 | 2025-03-27 |
notaires | dep | Prix au m^2 par département | 2025-03-27 | 2025-03-27 |
Liens
Production
Code
ig_b("acpr", "ACPR_production_2022")
Encours
Code
ig_b("acpr", "ACPR_encours_2022")
variable
Code
%>%
as174 group_by(Variable, Line) %>%
summarise(Nobs = n()) %>%
arrange(Line) %>%
print_table_conditional()
date
Code
%>%
as174 group_by(date) %>%
summarise(Nobs = n()) %>%
arrange(desc(date)) %>%
print_table_conditional()
date | Nobs |
---|---|
2024-12-31 | 76 |
2023-12-31 | 76 |
2022-12-31 | 76 |
2021-12-31 | 76 |
2020-12-31 | 76 |
2019-12-31 | 76 |
2018-12-31 | 76 |
2017-12-31 | 76 |
2016-12-31 | 76 |
2015-12-31 | 76 |
2014-12-31 | 76 |
2013-12-31 | 76 |
2012-12-31 | 76 |
2011-12-31 | 76 |
2010-12-31 | 76 |
2009-12-31 | 68 |
2008-12-31 | 68 |
2007-12-31 | 68 |
2006-12-31 | 68 |
2005-12-31 | 68 |
2004-12-31 | 68 |
2003-12-31 | 68 |
2002-12-31 | 68 |
2001-12-31 | 68 |
Tables
2001, 2010, 2016, 2022
Code
%>%
as174 mutate(year = year(date)) %>%
select(-date) %>%
filter(year %in% c("2001", "2010", "2016", "2022")) %>%
spread(year, value) %>%
print_table_conditional()
2023
Code
%>%
as174 mutate(year = year(date)) %>%
select(-date) %>%
filter(year %in% c("2022")) %>%
spread(year, value) %>%
print_table_conditional()
Données relatives à la production (lignes 2 à 42)
Production de prêts à l’habitat en Mds€, montant du prêt moyen (K€)
Code
%>%
as174 filter(Line %in% c(7, 12)) %>%
filter(value >0) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 1000*seq(0, 500, 20),
labels = dollar_format(acc = 1, pre = "")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank())
Production de prêts, type
Code
%>%
as174 filter(Line %in% 8:10) %>%
filter(value >0) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
labels = scales::percent_format(accuracy = 1)) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank())
Montant du pret moyen
Code
%>%
as174
filter(Line %in% 14:18) %>%
filter(value >0) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 1000*seq(0, 500, 20),
labels = dollar_format(acc = 1, pre = "", su = "€")) +
theme(legend.position = c(0.3, 0.8),
legend.title = element_blank())
Durée moyenne des prêts
Code
%>%
as174
filter(Line == 31) %>%
+ geom_line(aes(x = date, y = value)) +
ggplot xlab("") + ylab("Durée moyenne des prêts") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 100, 1),
labels = dollar_format(a = 1, su = " ans", pre = ""))
Taux variables vs fixes
Code
%>%
as174
filter(Line %in% c(24, 28)) %>%
filter(value >0) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 10),
labels = scales::percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.6),
legend.title = element_blank())
Taux d’endettement moyen des emprunteurs à l’octroi
Code
%>%
as174
filter(Line == 47) %>%
filter(value >0) %>%
+ geom_line(aes(x = date, y = value)) +
ggplot
xlab("") + ylab("Taux d'endettement moyen des emprunteurs à l'octroi") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 100, .2),
labels = dollar_format(a = .1, su = " ans", pre = ""))
Taux d’apport - Evolution
LTV moyenne à l’octroi
Code
%>%
as174
filter(Line == 41) %>%
+ geom_line(aes(x = date, y = value)) +
ggplot xlab("") + ylab("Taux d'effort moyen (%)") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = percent_format(a = 1))
Tranches
Classique
Code
%>%
as174
filter(Line %in% 42:45) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot theme_minimal() + xlab("") + ylab("Taux d'apport (%)") +
scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.8, 0.9),
legend.title = element_blank())
Joli
Code
%>%
as174
filter(Line %in% 42:45) %>%
+ geom_line(aes(x = date, y = value, color = paste0(Line))) +
ggplot annotate("text", x = as.Date("2006-12-31"), y = 0.55, label= "Apport > 15% ", color = viridis(5)[1]) +
annotate("text", x = as.Date("2016-12-31"), y = 0.17, label= "5% < Apport < 15%", color = viridis(5)[2]) +
annotate("text", x = as.Date("2015-12-31"), y = 0.27, label= "0% < Apport < 5%", color = viridis(5)[3]) +
annotate("text", x = as.Date("2017-12-31"), y = 0.08, label= "Apport < 0% ", color = viridis(5)[4]) +
theme_minimal() + xlab("") + ylab("Part des emprunteurs (%)") +
scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = "none")
Taux d’effort
Taux d’effort moyen
Code
%>%
as174
filter(Line == 34) %>%
+ geom_line(aes(x = date, y = value)) +
ggplot
xlab("") + ylab("Taux d'effort moyen (%)") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = percent_format(a = 1))
Tranches
Code
%>%
as174
filter(Line %in% c(35:38)) %>%
mutate(Variable = factor(Variable,
levels=c("Taux d'effort < 20%",
"20% < Taux d'effort < 30%",
"30% < Taux d'effort ≤ 35%",
"Taux d'effort > 35%"))) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot theme_minimal() + xlab("") + ylab("Part des emprunteurs (%)") +
scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.5, 0.9),
legend.title = element_blank())
Tranches
Code
%>%
as174
filter(Line %in% c(35:38)) %>%
mutate(Variable = factor(Variable,
levels=c("Taux d'effort < 20%",
"20% < Taux d'effort < 30%",
"30% < Taux d'effort ≤ 35%",
"Taux d'effort > 35%"))) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot theme_minimal() + xlab("") + ylab("Part des emprunteurs (%)") +
scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
labels = scales::percent_format(accuracy = 1)) +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.5, 0.9),
legend.title = element_blank())
Données relatives à la production (lignes 44 à 110)
Poids des douteux dans l’encours
Taux variables vs fixes
Code
%>%
as174
filter(Line %in% c(96, 97, 88)) %>%
filter(value >0) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = scales::percent_format(accuracy = 1)) +
theme(legend.position = c(0.2, 0.9),
legend.title = element_blank())
Production vs encours
Durée moyenne des prêts VS résiduelle moyenne
Code
%>%
as174
filter(date >= as.Date("2010-01-01")) %>%
filter(Line %in% c(31, 69)) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("Durée moyenne des prêts, maturité résiduelle") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 100, 1),
labels = dollar_format(a = 1, su = " ans", pre = "")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
LTV
Code
%>%
as174
filter(date >= as.Date("2010-01-01")) %>%
filter(Line %in% c(41,67)) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("LTV") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = percent_format(a = 1)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())
Prêts taux fixes
Code
%>%
as174
filter(date >= as.Date("2010-01-01")) %>%
filter(Line %in% c(28,64)) %>%
+ geom_line(aes(x = date, y = value, color = Variable)) +
ggplot xlab("") + ylab("Prêts à taux fixe (encours), produits à taux fixe (production)") + theme_minimal() +
scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
labels = percent_format(a = 1)) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank())