Turnover statistics for industry (NACE Rev. 2, B-E) - sbs_turn_ind_r2

Data - Eurostat

Info

Last observation: 2018 (N = 10306)

First observation: 2008 (N = 10125)

Last data update: 14 aoû 2026, 22:29. Last compile: 18 aoû 2026, 04:01

Structure

France, Germany, Italy, Spain, Netherlands

Total Industry Turnover (NACE B-E)

Code
sbs_turn_ind_r2 |>
  filter(geo %in% c("FR", "DE", "IT", "ES", "NL"),
         indic_sb == "V18120",
         nace_r2 %in% c("B", "C", "D", "E")) |>
  group_by(geo, Geo, time) |>
  summarise(values = sum(values, na.rm = TRUE), .groups = "drop") |>
  year_to_date() |>

  mutate(values = values/1000) |>
  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(2000, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Total industry turnover, NACE B-E (Bn€)")

France: Industrial, Service, Trading Turnover

Code
sbs_turn_ind_r2 |>
  filter(geo == "FR",
         nace_r2 %in% c("B", "C", "D", "E")) |>
  group_by(indic_sb, Indic_sb, time) |>
  summarise(values = sum(values, na.rm = TRUE), .groups = "drop") |>
  year_to_date() |>

  mutate(Indic_sb = gsub(" - million euro", "", Indic_sb)) |>
  ggplot() + geom_line(aes(x = date, y = values/1000, color = Indic_sb)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Turnover, NACE B-E (Bn€)")

Latest Year: Turnover by NACE Division

Code
latest_yr <- sbs_turn_ind_r2 |>
  filter(geo %in% c("FR", "DE", "IT", "ES", "NL"),
         indic_sb == "V18120",
         nace_r2 %in% c("B", "C", "D", "E"),
         !is.na(values)) |>
  summarise(m = max(time)) |>
  pull(m)

sbs_turn_ind_r2 |>
  filter(geo %in% c("FR", "DE", "IT", "ES", "NL"),
         indic_sb == "V18120",
         nace_r2 %in% c("B", "C", "D", "E"),
         time == latest_yr) |>
  mutate(values = values/1000) |>
  select(nace_r2, Nace_r2, Geo, values) |>
  spread(Geo, values) |>
  print_table_conditional()
nace_r2 Nace_r2 France Germany Italy Netherlands Spain
B Mining and quarrying 3.6430 16.9229 6.5720 9.5160 4.0082
C Manufacturing 770.6758 1841.4944 867.3247 320.5909 516.7678
D D Electricity, gas, steam and air conditioning supply 109.8556 587.5404 50.6673 12.3581 93.4638
E Water supply; sewerage, waste management and remediation activities 36.4398 60.6518 17.6644 4.3337 20.1109