Industry - monthly data - index (2015 = 100) (NACE Rev. 2) - ei_isin_m

Data - Eurostat

Info

Last observation: Monthly: 2026M07 (N = 45)

First observation: Monthly: 1980M01 (N = 84)

Last data update: 13 aoû 2026, 23:30. Last compile: 14 aoû 2026, 02:53

Structure

indic

French

Code
indic <- read_parquet("indic_fr.parquet")
ei_isin_m |>
  
  group_by(indic, Indic) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
indic Indic Nobs
IS-IP Production index 621010
IS-ITT Turnover index - total 588831
IS-ITD Turnover index - domestic market 577443
IS-ITND Turnover index - non-domestic market 373211
IS-PPI Output prices of the domestic market index (producer price index) (NSA) 268543
IS-WSI Gross wages and salaries index 138694
IS-IMPR Import price index (NSA) 113592
IS-EPI Number of persons employed index 112978
IS-HWI Hours worked index 111014
IS-IMPX Import price index - non euro area (NSA) 72267
IS-IMPZ Import price index - euro area (NSA) 66173

nace_r2

Code
indic <- read_parquet("indic.parquet")
ei_isin_m |>
  
  group_by(nace_r2, Nace_r2) |>
  summarise(Nobs = n()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

C - Manufacturing

IS-IP - Industrial Production

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-IP",
         geo %in% c("FR", "DE", "IT"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "1997M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  ggplot() + ylab("Industrial Production") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-60, 300, 10))

IS-ITT - Turnover index - total

  • INSEE Definition. html

Turnover indices serve to provide a monthly measurement of trends in the activity of companies in the industrial, construction, retail, personal services, wholesale and miscellaneous services to enterprises sectors. They are elaborated each month from the monthly declarations (CA3) made by enterprises falling within the normal tax arrangements for the payment of value added tax (VAT). These indices are determined at the finest level of the French classification of activities (that is, the sub-classes of NAF rev.2) then aggregated to provide indices for the different levels of the composite nomenclatures (NA, NACE). The resultant indices are in volume in the retail and personal services sectors, and in value in the other sectors. The series are disseminated raw or seasonally and calendar effect adjusted.

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITT",
         geo %in% c("FR", "DE", "IT"),
         s_adj == "SCA") |>
  filter(!is.na(values)) |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2005M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  ggplot() + ylab("Turnover index - total") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

IS-ITD - Indice du chiffre d’affaires - marché intérieur

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITD",
         geo %in% c("FR", "DE", "IT"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2005M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  ggplot() + ylab("Turnover index - domestic market") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

IS-ITND - Indice du chiffre d’affaires - marché extérieur

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITND",
         geo %in% c("FR", "DE", "IT"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2005M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  ggplot() + ylab("Turnover index - non-domestic market") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) +  add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

MIG_DCOG - Durable Goods

IS-IP - Industrial Production

Code
ei_isin_m |>
  filter(nace_r2 == "MIG_DCOG",
         indic == "IS-IP",
         geo %in% c("FR", "DE", "IT"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "1997M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  left_join(colors, by = c("Geo" = "country")) |>
  ggplot() + ylab("Durable Goods - Industrial Production") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = color)) + add_flags +
  scale_color_identity() +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

MIG_COG - Consumer Goods

IS-IP - Industrial Production

Code
ei_isin_m |>
  filter(nace_r2 == "MIG_COG",
         indic == "IS-IP",
         geo %in% c("FR", "DE", "IT"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "1997M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  ggplot() + ylab("Consumer Goods - Industrial Production") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

MIG_CAG - Capital Goods

IS-IP - Industrial Production

Code
ei_isin_m |>
  filter(nace_r2 == "MIG_CAG",
         indic == "IS-IP",
         geo %in% c("FR", "DE", "IT"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "1997M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  ggplot() + ylab("Capital Goods - Industrial Production") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

Covid-19 - Turnover index (Indice de CA)

Total

Dérivée

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITT",
         geo %in% c("FR", "DE", "IT", "ES"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2020M02"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  filter(date >= as.Date("2020-02-01")) |>
  ggplot() + ylab("Turnover index - all") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45", "#C60B1E")) +
  scale_x_date(breaks = "2 months",
               labels = date_format("%b %Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

Intégrale

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITT",
         geo %in% c("FR", "DE", "IT", "ES"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2020M02"]) |>
  
  month_to_date() |>
  filter(date >= as.Date("2020-02-01")) |>
  group_by(Geo) |>
  arrange(date) |>
  mutate(values = values-100,
         values = cumsum(values)) |>
  ggplot() + ylab("Turnover index - all (Cum. Sum)") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45", "#C60B1E")) +
  scale_x_date(breaks = "2 months",
               labels = date_format("%b %Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = seq(-300, 300, 10))

Marché Externe

Dérivée

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITND",
         geo %in% c("FR", "DE", "IT", "ES"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2020M02"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  filter(date >= as.Date("2020-02-01")) |>
  ggplot() + ylab("Turnover index - external market") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45", "#C60B1E")) +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

Intégrale

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITND",
         geo %in% c("FR", "DE", "IT", "ES"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2020M02"]) |>
  
  month_to_date() |>
  filter(date >= as.Date("2020-02-01")) |>
  group_by(Geo) |>
  arrange(date) |>
  mutate(values = values-100,
         values = cumsum(values)) |>
  ggplot() + ylab("Turnover index - external market (Cum. Sum)") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45", "#C60B1E")) +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %Y")) +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = seq(-300, 300, 10))

Marché Intérieur

Dérivée

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITD",
         geo %in% c("FR", "DE", "IT", "ES"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2020M02"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  filter(date >= as.Date("2020-02-01")) |>
  ggplot() + ylab("Turnover index - internal market") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) + add_flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45", "#C60B1E")) +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

Intégrale

Code
ei_isin_m |>
  filter(nace_r2 == "C",
         indic == "IS-ITD",
         geo %in% c("FR", "DE", "IT", "ES"),
         s_adj == "SCA") |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2020M02"]) |>
  
  month_to_date() |>
  filter(date >= as.Date("2020-02-01")) |>
  group_by(Geo) |>
  arrange(date) |>
  mutate(values = values-100,
         values = cumsum(values)) |>
  ggplot() + ylab("Turnover index - internal market (Cum. Sum)") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45", "#C60B1E")) +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %Y")) + add_flags +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = seq(-300, 300, 10))