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 |