Last observation: 2026M07 (N = 360)
First observation: 1988M01 (N = 12)
Last data update: 14 aoû 2026, 22:00. Last compile: 18 aoû 2026, 00:31
Data - Eurostat
Last observation: 2026M07 (N = 360)
First observation: 1988M01 (N = 12)
Last data update: 14 aoû 2026, 22:00. Last compile: 18 aoû 2026, 00:31
indic <- read_parquet("indic_fr.parquet")
ei_bsse_m_r2 |>
group_by(indic, Indic) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
print_table_conditional()| indic | Indic | Nobs |
|---|---|---|
| BS-SARM | Evolution of demand over the past 3 months | 20381 |
| BS-SABC | Business situation development over the past 3 months | 20327 |
| BS-SAEM | Expectation of the demand over the next 3 months | 20316 |
| BS-SCI | Services confidence indicator | 20260 |
| BS-SEEM | Expectation of the employment over the next 3 months | 20075 |
| BS-PE3M | Expectations of the prices over the next 3 months | 17986 |
ei_bsse_m_r2 |>
filter(indic == "BS-SARM",
time %in% c("2019M09", "2020M03", "2020M04", "2020M09"),
s_adj == "NSA") |>
select(geo, Geo, time, values) |>
spread(time, values) |>
arrange(`2020M04`) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}ei_bsse_m_r2 |>
filter(indic == "BS-SARM",
geo %in% c("FR", "DE", "IT", "EU27_2020"),
s_adj == "NSA") |>
select(geo, Geo, time, values) |>
group_by(geo) |>
mutate(values = 100*values/values[time == "1997M01"]) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) |>
month_to_date() |>
filter(date >= as.Date("2020-01-01"),
date <= as.Date("2020-09-01")) |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + ylab("Construction Production") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = "1 month",
labels = date_format("%b %Y")) +
theme(legend.position = c(0.1, 0.2)) +
scale_y_continuous(breaks = seq(-3000, 2000, 100))
ei_bsse_m_r2 |>
filter(indic == "BS-SARM",
geo %in% c("FR", "DE", "IT", "EU27_2020"),
s_adj == "NSA") |>
select(geo, Geo, time, values) |>
group_by(geo) |>
mutate(values = 100*values/values[time == "1997M01"]) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) |>
month_to_date() |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + ylab("Evolution of demand") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = "5 years",
labels = date_format("%Y")) +
theme(legend.position = c(0.1, 0.2),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-3000, 2000, 100))
ei_bsse_m_r2 |>
filter(indic == "BS-SABC",
geo %in% c("FR", "DE", "IT", "EU27_2020"),
s_adj == "SA") |>
select(geo, Geo, time, values) |>
group_by(geo) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) |>
month_to_date() |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + ylab("Business situation development") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = "5 years",
labels = date_format("%Y")) +
theme(legend.position = c(0.1, 0.2),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-3000, 2000, 10))
ei_bsse_m_r2 |>
filter(indic == "BS-SAEM",
geo %in% c("FR", "DE", "IT", "EU27_2020"),
s_adj == "SA") |>
select(geo, Geo, time, values) |>
group_by(geo) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) |>
month_to_date() |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + ylab("Expectation of demand") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = "5 years",
labels = date_format("%Y")) +
theme(legend.position = c(0.1, 0.2),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-3000, 2000, 10))
ei_bsse_m_r2 |>
filter(indic == "BS-SEEM",
geo %in% c("FR", "DE", "IT", "EU27_2020"),
s_adj == "SA") |>
select(geo, Geo, time, values) |>
group_by(geo) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) |>
month_to_date() |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + ylab("Expectation of employment") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = "5 years",
labels = date_format("%Y")) +
theme(legend.position = c(0.1, 0.2),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-3000, 2000, 10))
ei_bsse_m_r2 |>
filter(indic == "BS-PE3M",
geo %in% c("FR", "DE", "IT", "EU27_2020"),
s_adj == "SA") |>
select(geo, Geo, time, values) |>
group_by(geo) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo),
Geo = ifelse(geo == "EU27_2020", "Europe", Geo)) |>
month_to_date() |>
left_join(colors, by = c("Geo" = "country")) |>
ggplot() + ylab("Expectations of the prices ") + xlab("") + theme_minimal() +
geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + add_flags +
scale_x_date(breaks = "5 years",
labels = date_format("%Y")) +
theme(legend.position = c(0.1, 0.2),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-3000, 2000, 10))