Building permits - monthly data - sts_cobp_m

Data - Eurostat

Info

Last observation: Annual: 2026M06 (N = 92)

First observation: Annual: 1994M01 (N = 39)

Last data update: 23 jul 2026, 22:59. Last compile: 24 jul 2026, 03:50

Structure

Building Permits (Residential, m², SA)

France, Germany, Spain, Netherlands

Code
sts_cobp_m %>%
  filter(geo %in% c("FR", "DE", "ES", "NL"),
         indic_bt == "BPRM_SQM",
         cpa2_1 == "CPA_F41001",
         s_adj == "SCA",
         unit == "I21") %>%
  month_to_date %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Building permits, residential, m² (Index 2021 = 100)")

France: Residential vs. Non-Residential

Code
sts_cobp_m %>%
  filter(geo == "FR",
         indic_bt == "BPRM_SQM",
         cpa2_1 %in% c("CPA_F41001", "CPA_F41002"),
         s_adj == "SCA",
         unit == "I21") %>%
  month_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Cpa2_1)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Building permits, m² (Index 2021 = 100)")