Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens

Data - INSEE

Info

source dataset Title .html .rData
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2025-10-10 2025-10-09

Données sur l’inflation en France

source dataset Title .html .rData
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2025-10-10 2025-10-09
insee ILC-ILAT-ICC Indices pour la révision d’un bail commercial ou professionnel 2025-10-10 2025-10-09
insee INDICES_LOYERS Indices des loyers - Base 2019 2025-10-10 2025-10-09
insee IPC-1970-1980 Indice des prix à la consommation - Base 1970, 1980 2025-10-10 2025-10-09
insee IPC-1990 Indices des prix à la consommation - Base 1990 2025-10-10 2025-10-09
insee IPC-2015 Indice des prix à la consommation - Base 2015 2025-10-10 2025-10-10
insee IPC-PM-2015 Prix moyens de vente de détail 2025-10-10 2025-10-09
insee IPCH-2015 Indices des prix à la consommation harmonisés 2025-10-10 2025-10-09
insee IPCH-IPC-2015-ensemble Indices des prix à la consommation harmonisés 2025-10-10 2025-10-10
insee IPGD-2015 Indice des prix dans la grande distribution 2025-10-10 2025-05-24
insee IPPI-2015 Indices de prix de production et d'importation dans l'industrie 2025-10-10 2025-10-10
insee IRL Indice pour la révision d’un loyer d’habitation 2025-10-10 2025-10-09
insee SERIES_LOYERS Variation des loyers 2025-10-10 2025-10-10
insee T_CONSO_EFF_FONCTION Consommation effective des ménages par fonction 2025-10-10 2024-07-18
insee bdf2017 Budget de famille 2017 2025-10-10 2023-11-21
insee echantillon-agglomerations-IPC-2024 Échantillon d’agglomérations enquêtées de l’IPC en 2024 2025-10-10 2025-04-02
insee liste-varietes-IPC-2024 Liste des variétés pour la mesure de l'IPC en 2024 2025-10-10 2025-04-02
insee ponderations-elementaires-IPC-2024 Pondérations élémentaires 2024 intervenant dans le calcul de l’IPC 2025-10-10 2025-04-02

Données sur l’immobilier

source dataset Title .html .rData
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2025-10-10 2025-10-09
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-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-10-10 2025-10-09
insee ENQ-CONJ-ART-BAT Conjoncture dans l'artisanat du bâtiment 2025-10-10 2025-10-09
insee ENQ-CONJ-IND-BAT Conjoncture dans l'industrie du bâtiment - ENQ-CONJ-IND-BAT 2025-10-10 2025-10-09
insee ENQ-CONJ-PROMO-IMMO Conjoncture dans la promotion immobilière 2025-10-10 2025-10-09
insee ENQ-CONJ-TP Conjoncture dans les travaux publics 2025-10-10 2025-10-09
insee ILC-ILAT-ICC Indices pour la révision d’un bail commercial ou professionnel 2025-10-10 2025-10-09
insee INDICES_LOYERS Indices des loyers - Base 2019 2025-10-10 2025-10-09
insee IRL Indice pour la révision d’un loyer d’habitation 2025-10-10 2025-10-09
insee PARC-LOGEMENTS Estimations annuelles du parc de logements (EAPL) 2025-10-10 2023-12-03
insee SERIES_LOYERS Variation des loyers 2025-10-10 2025-10-10
insee t_dpe_val Dépenses de consommation des ménages pré-engagées 2025-10-10 2025-08-29
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 inflation

source dataset Title .html .rData
bis CPI Consumer Price Index 2025-10-10 2025-10-09
ecb CES Consumer Expectations Survey 2025-08-28 2025-05-24
eurostat nama_10_co3_p3 Final consumption expenditure of households by consumption purpose (COICOP 3 digit) 2025-10-10 2025-09-26
eurostat prc_hicp_cow HICP - country weights 2025-10-10 2025-10-10
eurostat prc_hicp_ctrb Contributions to euro area annual inflation (in percentage points) 2025-10-10 2025-10-10
eurostat prc_hicp_inw HICP - item weights 2025-10-10 2025-10-09
eurostat prc_hicp_manr HICP (2015 = 100) - monthly data (annual rate of change) 2025-10-10 2025-10-10
eurostat prc_hicp_midx HICP (2015 = 100) - monthly data (index) 2025-10-10 2025-10-09
eurostat prc_hicp_mmor HICP (2015 = 100) - monthly data (monthly rate of change) 2025-10-10 2025-10-09
eurostat prc_ppp_ind Purchasing power parities (PPPs), price level indices and real expenditures for ESA 2010 aggregates 2025-10-10 2025-10-10
eurostat sts_inpp_m Producer prices in industry, total - monthly data 2025-10-10 2025-10-09
eurostat sts_inppd_m Producer prices in industry, domestic market - monthly data 2025-10-10 2025-10-10
eurostat sts_inppnd_m Producer prices in industry, non domestic market - monthly data 2024-06-24 2025-10-10
fred cpi Consumer Price Index 2025-10-09 2025-10-09
fred inflation Inflation 2025-10-09 2025-10-09
imf CPI Consumer Price Index - CPI 2025-08-28 2020-03-13
oecd MEI_PRICES_PPI Producer Prices - MEI_PRICES_PPI 2025-09-29 2024-04-15
oecd PPP2017 2017 PPP Benchmark results 2024-04-16 2023-07-25
oecd PRICES_CPI Consumer price indices (CPIs) 2024-04-16 2024-04-15
wdi FP.CPI.TOTL.ZG Inflation, consumer prices (annual %) 2023-01-15 2025-09-27
wdi NY.GDP.DEFL.KD.ZG Inflation, GDP deflator (annual %) 2025-10-10 2025-09-27

Data on housing

source dataset Title .html .rData
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2025-10-10 2025-10-09
bdf RPP Prix de l'immobilier 2025-08-28 2025-08-24
bis LONG_PP Residential property prices - detailed series 2025-10-10 2024-05-10
bis SELECTED_PP Property prices, selected series 2025-10-10 2025-10-09
ecb RPP Residential Property Price Index Statistics 2025-10-09 2025-08-29
eurostat ei_hppi_q House price index (2015 = 100) - quarterly data 2025-10-10 2025-10-09
eurostat hbs_str_t223 Mean consumption expenditure by income quintile 2025-10-01 2025-10-09
eurostat prc_hicp_midx HICP (2015 = 100) - monthly data (index) 2025-10-10 2025-10-09
eurostat prc_hpi_q House price index (2015 = 100) - quarterly data 2025-10-10 2025-09-26
fred housing House Prices 2025-10-09 2025-10-09
oecd SNA_TABLE5 Final consumption expenditure of households 2025-09-29 2023-10-19
oecd housing NA NA NA

LAST_COMPILE

LAST_COMPILE
2025-10-11

LAST_UPDATE

Code
`IPLA-IPLNA-2015` %>%
  group_by(LAST_UPDATE) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
LAST_UPDATE Nobs
2025-09-09 14746
2025-09-19 408

Last

Code
`IPLA-IPLNA-2015` %>%
  group_by(TIME_PERIOD) %>%
  summarise(Nobs = n()) %>%
  filter(TIME_PERIOD == max(TIME_PERIOD)) %>%
  print_table_conditional()
TIME_PERIOD Nobs
2025-Q2 142

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")

TITLE_FR

Code
`IPLA-IPLNA-2015` %>%
  group_by(IDBANK, TITLE_FR) %>%
  summarise(Nobs = n(),
            date1 = first(TIME_PERIOD),
            date2 = last(TIME_PERIOD)) %>%
  arrange(-Nobs) %>%
  print_table_conditional()

INDICATEUR

Code
`IPLA-IPLNA-2015` %>%
  left_join(INDICATEUR, by = "INDICATEUR") %>%
  group_by(INDICATEUR, Indicateur) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
INDICATEUR Indicateur Nobs
IPLA_A Indice de prix des appartements (logements anciens) 5956
IPLA_E Indice de prix des logements anciens 4672
IPLA_M Indice de prix des maisons (logements anciens) 4118
IPLN Indice de prix des logements neufs 204
IPLNA Indice de prix des logements neufs et anciens 204

CORRECTION

Code
`IPLA-IPLNA-2015` %>%
  left_join(CORRECTION, by = "CORRECTION") %>%
  group_by(CORRECTION, Correction) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
CORRECTION Correction Nobs
BRUT Non corrigé 7577
CVS Corrigé des variations saisonnières 7577

REF_AREA

Code
`IPLA-IPLNA-2015` %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  group_by(REF_AREA, Ref_area) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()

TIME_PERIOD

Code
`IPLA-IPLNA-2015` %>%
  group_by(TIME_PERIOD) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(TIME_PERIOD)) %>%
  print_table_conditional()

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 %>%
  left_join(INDICATEUR, by = "INDICATEUR") %>%
  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 %>%
  left_join(INDICATEUR, by = "INDICATEUR") %>%
  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 %>%
  left_join(INDICATEUR, by = "INDICATEUR") %>%
  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))