House price index, deflated - annual data - tipsho10

Data - Eurostat

Info

Last observation: Annual: 2025 (N = 60)

First observation: Annual: 2000 (N = 23)

Last data update: 23 jul 2026, 22:28. Last compile: 24 jul 2026, 04:03

Structure

unit

Code
tipsho10 %>%
  select_if(~n_distinct(.) > 1) %>%
  
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
unit Unit Nobs
I15_A_AVG Annual average index, 2015=100 751
RCH_A_AVG Annual average rate of change 721

France, Germany, Italy, Spain, Netherlands

Percent

Code
tipsho10 %>%
  filter(geo %in% c("FR", "DE", "NL", "ES", "IT"),
         unit == "RCH_A_AVG") %>%
  year_to_date %>%
  
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  mutate(color = ifelse(geo == "NL", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("House price index, deflated - annual data") +
  scale_y_continuous(breaks = 0.01*seq(-300, 200, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0.06, linetype = "dashed")

Index Level (2015 = 100)

Code
tipsho10 %>%
  filter(geo %in% c("FR", "DE", "NL", "ES", "IT"),
         unit == "I15_A_AVG") %>%
  year_to_date %>%

  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(geo == "NL", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Deflated house price index (2015 = 100)") +
  geom_hline(yintercept = 100, linetype = "dashed", color = "black")

Portugal, Poland, Sweden

Code
tipsho10 %>%
  filter(geo %in% c("PT", "PL", "SE"),
         unit == "RCH_A_AVG") %>%
  year_to_date %>%

  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("House price index, deflated - annual rate of change") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")

Latest Year: Ranking by Country

Code
latest_y <- tipsho10 %>%
  filter(geo == "FR",
         unit == "RCH_A_AVG",
         !is.na(values)) %>%
  summarise(m = max(time)) %>%
  pull(m)

tipsho10 %>%
  filter(unit == "RCH_A_AVG",
         time == latest_y,
         !is.na(values)) %>%
  mutate(values = values/100) %>%
  select(Geo, values) %>%
  arrange(-values) %>%
  print_table_conditional()
Geo values
Portugal 0.147
Hungary 0.120
Croatia 0.098
Spain 0.097
Bulgaria 0.093
Slovakia 0.079
Czechia 0.072
Lithuania 0.061
Ireland 0.059
Netherlands 0.058
Slovenia 0.055
Denmark 0.049
Greece 0.045
Cyprus 0.041
Latvia 0.039
Malta 0.039
Euro area – 21 countries (from 2026) 0.031
Euro area – 20 countries (2023-2025) 0.030
European Union - 27 countries (from 2020) 0.029
Italy 0.025
Estonia 0.020
Poland 0.010
Belgium 0.009
Germany 0.006
Austria -0.001
France -0.002
Luxembourg -0.005
Sweden -0.016
Romania -0.017
Finland -0.035