Last observation: 2026M07 (N = 12)
First observation: 1980M01 (N = 4)
Last data update: 15 aoû 2026, 23:13. Last compile: 18 aoû 2026, 04:03
Data - Eurostat
Last observation: 2026M07 (N = 12)
First observation: 1980M01 (N = 4)
Last data update: 15 aoû 2026, 23:13. Last compile: 18 aoû 2026, 04:03
sts_copi_m |>
filter(geo %in% c("ES", "AT", "PT", "NL"),
indic_bt == "COST",
unit == "I21") |>
month_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(1980, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
xlab("") + ylab("Construction cost, new residential buildings (2021 = 100)")
sts_copi_m |>
filter(geo == "ES",
unit == "PCH_SM") |>
month_to_date() |>
mutate(values = values/100) |>
ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1980, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.2, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Year-on-year change") +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black")
latest_m <- sts_copi_m |>
filter(geo == "ES",
indic_bt == "COST",
unit == "PCH_SM",
!is.na(values)) |>
summarise(m = max(time)) |>
pull(m)
sts_copi_m |>
filter(unit == "PCH_SM",
time == latest_m) |>
mutate(values = values/100) |>
select(Geo, Indic_bt, values) |>
spread(Indic_bt, values) |>
arrange(-Costs) |>
print_table_conditional()| Geo | Costs | Producer prices |
|---|---|---|
| Portugal | 0.072 | 0.072 |
| Austria | 0.054 | 0.054 |
| Netherlands | 0.050 | 0.050 |
| Norway | 0.041 | 0.041 |
| Lithuania | 0.039 | 0.039 |
| Spain | 0.028 | 0.028 |
| Finland | 0.027 | 0.027 |
| Ireland | NA | 0.032 |
| Italy | NA | 0.018 |