Last observation: 2025 (N = 60)
First observation: 2000 (N = 23)
Last data update: 14 aoû 2026, 22:16. Last compile: 18 aoû 2026, 04:32
Data - Eurostat
Last observation: 2025 (N = 60)
First observation: 2000 (N = 23)
Last data update: 14 aoû 2026, 22:16. Last compile: 18 aoû 2026, 04:32
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_flags +
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")
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_flags +
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")
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_flags +
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_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 |