Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens - IPLA-IPLNA-2015
Données - INSEE
Last observation: Q1 2026 (N = 142)
First observation: Q1 1992 (N = 26)
Last data update: 17 août 2026, 00:39
Last compile: 02 sept. 2026, 23:50
Structure
Info
Méthodo. Les indices Notaires-Insee des prix des logements anciens Méthodologie v4 Insee Méthodes n° 132 - juin 2019. pdf
4ème trimestre 2021. html
Code
i_g("bib/insee/IR48_NotairesIPLA-v1640/figure.png")
Paris, France
All
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
1996-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
filter(date >= as.Date("1996-01-01")) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1996-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
1998-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
filter(date >= as.Date("1998-01-01")) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
1998-2021
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
filter(date >= as.Date("1998-01-01"),
date <= as.Date("2021-09-01")) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
scale_color_manual(values = viridis(3)[1:2]) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
2000-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
filter(date >= as.Date("2000-01-01")) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2000-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
2014-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
filter(date >= as.Date("2014-01-01")) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2014-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 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") +
scale_y_log10(breaks = seq(0, 7000, 5))
Paris, Lyon, Marseille, France
All
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
1996-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("1996-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1996-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
1998-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("1998-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
2000-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("2000-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2000-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
2008-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("2008-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2008-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
2014-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75", "FM")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("2014-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2014-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 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") +
scale_y_log10(breaks = seq(0, 7000, 10))
Paris, Lyon, Marseille
All
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
1998-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("1998-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
2000-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("2000-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2000-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 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))
2008-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("2008-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2008-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 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") +
scale_y_log10(breaks = seq(0, 7000, 10))
2010-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("2010-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2010-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 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") +
scale_y_log10(breaks = seq(0, 7000, 10))
2014-
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR == "IPLA_A",
REF_AREA %in% c("A_69123", "A_13055", "D75")) |>
quarter_to_date() |>
mutate(TITLE_FR = gsub("Indice des prix des logements anciens - ", "", TITLE_FR),
TITLE_FR = gsub(" - Appartements - Base 100 en moyenne annuelle 2015 - Série brute", "", TITLE_FR)) |>
filter(date >= as.Date("2014-01-01")) |>
group_by(REF_AREA) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2014-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 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") +
scale_y_log10(breaks = seq(0, 7000, 10))
Neuf vs. ancien
Indice = 2015
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR %in% c("IPLN", "IPLNA", "IPLA_E"),
REF_AREA == "FM") |>
quarter_to_date() |>
group_by(INDICATEUR) |>
#mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("1998-01-01")]) %>%
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = INDICATEUR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("") +
scale_y_log10(breaks = seq(0, 7000, 10))
Indice = 2000
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR %in% c("IPLN", "IPLNA", "IPLA_E"),
REF_AREA == "FM") |>
quarter_to_date() |>
group_by(INDICATEUR) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2000-01-01")]) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = INDICATEUR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("") +
scale_y_log10(breaks = seq(0, 7000, 10))
Indice = 2000, post - 2000
Code
`IPLA-IPLNA-2015` |>
filter(CORRECTION == "BRUT",
INDICATEUR %in% c("IPLN", "IPLNA", "IPLA_E"),
REF_AREA == "FM") |>
quarter_to_date() |>
group_by(INDICATEUR) |>
mutate(OBS_VALUE = 100*OBS_VALUE / OBS_VALUE[date == as.Date("2000-01-01")]) |>
filter(date >= as.Date("2000-01-01")) |>
ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = INDICATEUR)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2050, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank()) +
xlab("") + ylab("") +
scale_y_log10(breaks = seq(0, 7000, 10))











