Prix de l’immobilier
Data - BDF
Info
Données sur l’immobilier
| 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 |
| acpr | as160 | Enquête annuelle du SGACPR sur le financement de l'habitat 2023 | 2025-08-24 | 2024-09-26 |
| acpr | as174 | Enquête annuelle du SGACPR sur le financement de l'habitat 2024 | 2025-09-29 | 2025-09-29 |
| bdf | BSI1 | Agrégats monétaires - France | 2025-12-20 | 2025-12-20 |
| bdf | CPP | Prix immobilier commercial | 2025-12-20 | 2024-07-01 |
| bdf | FM | Marché financier, taux | 2025-12-20 | 2025-12-20 |
| bdf | MIR | Taux d'intérêt - Zone euro | 2025-12-20 | 2025-08-04 |
| bdf | MIR1 | Taux d'intérêt - France | 2025-12-20 | 2025-08-04 |
| bdf | RPP | Prix de l'immobilier | 2025-12-20 | 2025-12-20 |
| bdf | immobilier | Immobilier en France | 2025-12-20 | 2025-12-20 |
| 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-12-23 | 2025-12-23 |
| insee | ENQ-CONJ-ART-BAT | Conjoncture dans l'artisanat du bâtiment | 2025-12-23 | 2025-12-23 |
| insee | ENQ-CONJ-IND-BAT | Conjoncture dans l'industrie du bâtiment - ENQ-CONJ-IND-BAT | 2025-12-23 | 2025-12-23 |
| insee | ENQ-CONJ-PROMO-IMMO | Conjoncture dans la promotion immobilière | 2025-12-23 | 2025-12-23 |
| insee | ENQ-CONJ-TP | Conjoncture dans les travaux publics | 2025-12-23 | 2025-12-23 |
| insee | ILC-ILAT-ICC | Indices pour la révision d’un bail commercial ou professionnel | 2025-12-23 | 2025-12-23 |
| insee | INDICES_LOYERS | Indices des loyers - Base 2019 | 2025-12-23 | 2025-12-23 |
| insee | IPLA-IPLNA-2015 | Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens | 2025-12-23 | 2025-12-23 |
| insee | IRL | Indice pour la révision d’un loyer d’habitation | 2025-12-24 | 2025-12-23 |
| insee | PARC-LOGEMENTS | Estimations annuelles du parc de logements (EAPL) | 2025-12-23 | 2023-12-03 |
| insee | SERIES_LOYERS | Variation des loyers | 2025-12-23 | 2025-12-23 |
| insee | t_dpe_val | Dépenses de consommation des ménages pré-engagées | 2025-12-23 | 2025-12-23 |
| notaires | arrdt | Prix au m^2 par arrondissement - arrdt | 2025-09-29 | 2025-09-29 |
| notaires | dep | Prix au m^2 par département | 2025-09-29 | 2025-09-29 |
Data on housing
| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| bdf | RPP | Prix de l'immobilier | 2025-12-20 | 2025-12-20 |
| bis | LONG_PP | Residential property prices - detailed series | 2025-10-11 | 2024-05-10 |
| bis | SELECTED_PP | Property prices, selected series | 2025-12-23 | 2025-12-23 |
| ecb | RPP | Residential Property Price Index Statistics | 2025-12-19 | 2025-08-29 |
| eurostat | ei_hppi_q | House price index (2015 = 100) - quarterly data | 2025-12-23 | 2025-12-23 |
| eurostat | hbs_str_t223 | Mean consumption expenditure by income quintile | 2025-10-11 | 2025-12-23 |
| eurostat | prc_hicp_midx | HICP (2015 = 100) - monthly data (index) | 2025-12-22 | 2025-12-23 |
| eurostat | prc_hpi_q | House price index (2015 = 100) - quarterly data | 2025-12-23 | 2025-12-23 |
| fred | housing | House Prices | 2025-12-23 | 2025-12-23 |
| insee | IPLA-IPLNA-2015 | Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens | 2025-12-23 | 2025-12-23 |
| oecd | SNA_TABLE5 | Final consumption expenditure of households | 2025-11-17 | 2023-10-19 |
| oecd | housing | NA | NA | NA |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2025-12-24 |
Last
| date | Nobs |
|---|---|
| 2025-03-31 | 7 |
variable
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
group_by(variable, Variable) %>%
summarise(Nobs = n()) %>%
{if (is_html_output()) print_table(.) else .}| variable | Variable | Nobs |
|---|---|---|
| RPP.Q.FR.N.ED.00.1.00 | Indices des prix des logements anciens, Ensemble des logements, France métropolitaine | 117 |
| RPP.Q.FR.N.EF.CC.1.00 | Indices des prix des logements anciens, Appartements, Paris | 133 |
| RPP.Q.FR.N.EF.CS.1.00 | Indices des prix des logements anciens, Appartements, Ile de France Petite Couronne | 133 |
| RPP.Q.FR.N.NF.00.1.00 | Prix au mètre carré des appartements neufs, France entière | 121 |
| RPP.Q.FR.N.NF.CR.1.00 | Prix au mètre carré des appartements neufs, Ile de France | 81 |
| RPP.Q.FR.N.NH.00.1.00 | Prix de vente moyen d'une maison neuve, France entière | 121 |
| RPP.Q.FR.N.NH.CR.1.00 | Prix de vente moyen d'une maison neuve, Ile de France | 81 |
RPP_DWELLING
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
left_join(RPP_DWELLING, by = "RPP_DWELLING") %>%
group_by(RPP_DWELLING, Rpp_dwelling) %>%
summarise(Nobs = n()) %>%
{if (is_html_output()) print_table(.) else .}| RPP_DWELLING | Rpp_dwelling | Nobs |
|---|---|---|
| ED | Residential property prices, Existing dwellings | 117 |
| EF | Residential property prices, Existing flats | 266 |
| NF | Residential property prices, New flats | 202 |
| NH | Residential property prices, New houses | 202 |
RPP_GEO_COV
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
left_join(RPP_GEO_COV, by = "RPP_GEO_COV") %>%
group_by(RPP_GEO_COV, Rpp_geo_cov) %>%
summarise(Nobs = n()) %>%
{if (is_html_output()) print_table(.) else .}| RPP_GEO_COV | Rpp_geo_cov | Nobs |
|---|---|---|
| 00 | Whole country | 359 |
| CC | Capital city | 133 |
| CR | Capital Region | 162 |
| CS | Capital city and suburbs | 133 |
RPP_SOURCE
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
left_join(RPP_SOURCE, by = "RPP_SOURCE") %>%
group_by(RPP_SOURCE, Rpp_source) %>%
summarise(Nobs = n()) %>%
{if (is_html_output()) print_table(.) else .}| RPP_SOURCE | Rpp_source | Nobs |
|---|---|---|
| 1 | NSI | 787 |
Prix au mètre carré des appartements neufs
France entière, Ile de France
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING == "NF") %>%
mutate(Variable = gsub("Prix au mètre carré des appartements neufs, ", "", Variable)) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2020, 5), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.2, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Prix au mètre carré des appartements neufs") +
scale_y_log10(breaks = seq(0, 7000, 500),
labels = dollar_format(suffix = " €/m2", prefix = "", accuracy = 1))
Indices de prix des logements anciens
100 = 2009
Log
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
group_by(Variable) %>%
mutate(value = 100*value/value[date == as.Date("2007-12-31")]) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_log10(breaks = seq(0, 7000, 10))
Lineaire
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_continuous(breaks = seq(0, 7000, 10))
100 = 2015
Log
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_log10(breaks = seq(0, 7000, 10))
Lineaire
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_continuous(breaks = seq(0, 7000, 10))
100 = 2001
Log
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
group_by(Variable) %>%
filter(date >= as.Date("2000-12-31")) %>%
mutate(value = 100*value/value[date == as.Date("2000-12-31")]) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_log10(breaks = seq(0, 7000, 10))
Lineaire
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
group_by(Variable) %>%
filter(date >= as.Date("2000-12-31")) %>%
mutate(value = 100*value/value[date == as.Date("2000-12-31")]) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_continuous(breaks = seq(0, 7000, 10))
100 = 1998
Lineaire
Code
plot_lineaire <- RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
group_by(Variable) %>%
filter(date >= as.Date("1997-12-31")) %>%
mutate(value = 100*value/value[date == as.Date("1997-12-31")]) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 5), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_continuous(breaks = seq(0, 7000, 50))
plot_lineaire
Log
Code
plot_log <- plot_lineaire +
ylab("") + scale_y_log10(breaks = seq(0, 7000, 50))
plot_log
Bind
Code
ggpubr::ggarrange(plot_lineaire + ggtitle("Echelle linéaire"), plot_log + ggtitle("Echelle log"), common.legend = T)
100 = 1999
Lineaire
Code
plot_lineaire <- RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
group_by(Variable) %>%
filter(date >= as.Date("1998-12-31")) %>%
mutate(value = 100*value/value[date == as.Date("1998-12-31")]) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1999, 2030, 5), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_continuous(breaks = seq(0, 7000, 50))
plot_lineaire
Log
Code
plot_log <- plot_lineaire +
ylab("") + scale_y_log10(breaks = seq(0, 7000, 50))
plot_log
Bind
Code
ggpubr::ggarrange(plot_lineaire + ggtitle("Echelle linéaire"), plot_log + ggtitle("Echelle log"), common.legend = T)
100 = 2000
Paris, IDF, France
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF"),
date >= as.Date("1999-12-31")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
group_by(Variable) %>%
mutate(value = 100*value/value[date == as.Date("1999-12-31")]) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens") +
scale_y_log10(breaks = seq(0, 7000, 50))
Paris, France
Lineaire
Code
plot_lineaire <- RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF"),
date >= as.Date("1998-12-31"),
RPP_GEO_COV %in% c("CC", "00")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
group_by(Variable) %>%
mutate(value = 100*value/value[date == as.Date("1998-12-31")]) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() + xlab("") + ylab("Indice des prix des logements anciens") +
scale_x_date(breaks = seq(1999, 2030, 5) %>% paste0(., "-01-01") %>% as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(0, 7000, 50))
plot_lineaire
Log
Code
plot_log <- plot_lineaire +
scale_y_log10(breaks = seq(0, 7000, 50)) + ylab("")
plot_log
Bind
Code
ggpubr::ggarrange(plot_lineaire + ggtitle("Echelle linéaire"),
plot_log + ggtitle("Echelle log"), common.legend = T)
100 = 2007
Paris, IDF, France
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF"),
date >= as.Date("2007-12-31")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
group_by(Variable) %>%
mutate(value = 100*value/value[date == as.Date("2007-12-31")]) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 1), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens (2008 = 100") +
scale_y_log10(breaks = seq(0, 7000, 10))
Paris, France
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING %in% c("ED", "EF"),
date >= as.Date("2007-12-31"),
RPP_GEO_COV %in% c("CC", "00")) %>%
mutate(Variable = gsub("Indices des prix des logements anciens, ", "", Variable)) %>%
group_by(Variable) %>%
mutate(value = 100*value/value[date == as.Date("2007-12-31")]) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 1), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Indice des prix des logements anciens (2008 = 100") +
scale_y_log10(breaks = seq(0, 7000, 10))
Prix de vente moyen d’une maison neuve
Code
RPP %>%
left_join(RPP_var, by = "variable") %>%
filter(RPP_DWELLING == "NH") %>%
mutate(Variable = gsub("Prix de vente moyen d'une maison neuve, ","", Variable)) %>%
ggplot + geom_line(aes(x = date, y = value, color = Variable)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.15, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Prix de vente moyen d'une maison neuve") +
scale_y_log10(breaks = seq(0, 7000, 20))