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

Data - Eurostat

Info

DOWNLOAD_TIME

Code
tibble(DOWNLOAD_TIME = as.Date(file.info("~/iCloud/website/data/eurostat/ei_isin_m.RData")$mtime)) %>%
  print_table_conditional()
DOWNLOAD_TIME
2026-03-30

Last

Code
ei_isin_m %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2026M02 334

indic

French

Code
load_data("eurostat/indic_fr.RData")
ei_isin_m %>%
  left_join(indic, by = "indic") %>%
  group_by(indic, Indic) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
indic Indic Nobs
IS-IP Indice de production 613362
IS-ITT Indice du chiffre d'affaires - total 584140
IS-ITD Indice du chiffre d'affaires - marché intérieur 572911
IS-ITND Indice du chiffre d'affaires - marché extérieur 370264
IS-PPI Prix à la production de l'indice du marché intérieur (Indice des prix à la production) (NSA) 266693
IS-WSI Indice des salaires et traitements bruts 137114
IS-IMPR Indices des prix à l'importation (NSA) 112553
IS-EPI Indice du nombre de personnes occupées 112202
IS-HWI Indice des heures travaillées 110026
IS-IMPX Indices des prix à l'importation - hors zone euro (NSA) 71547
IS-IMPZ Indices des prix à l'importation - zone euro (NSA) 65510

English

Code
ei_isin_m %>%
  left_join(indic, by = "indic") %>%
  group_by(indic, Indic) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
indic Indic Nobs
IS-IP Indice de production 613362
IS-ITT Indice du chiffre d'affaires - total 584140
IS-ITD Indice du chiffre d'affaires - marché intérieur 572911
IS-ITND Indice du chiffre d'affaires - marché extérieur 370264
IS-PPI Prix à la production de l'indice du marché intérieur (Indice des prix à la production) (NSA) 266693
IS-WSI Indice des salaires et traitements bruts 137114
IS-IMPR Indices des prix à l'importation (NSA) 112553
IS-EPI Indice du nombre de personnes occupées 112202
IS-HWI Indice des heures travaillées 110026
IS-IMPX Indices des prix à l'importation - hors zone euro (NSA) 71547
IS-IMPZ Indices des prix à l'importation - zone euro (NSA) 65510

nace_r2

Code
load_data("eurostat/indic.RData")
ei_isin_m %>%
  left_join(nace_r2, by = "nace_r2") %>%
  group_by(nace_r2, Nace_r2) %>%
  summarise(Nobs = n()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

s_adj

Code
ei_isin_m %>%
  left_join(s_adj, by = "s_adj") %>%
  group_by(s_adj, S_adj) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
s_adj S_adj Nobs
NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 1228417
SCA Seasonally and calendar adjusted data 1080487
CA Calendar adjusted data, not seasonally adjusted data 707418

unit

Code
ei_isin_m %>%
  left_join(unit, by = "unit") %>%
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
unit Unit Nobs
I2021 NA 1551302
I2015 Index, 2015=100 1465020

geo

Code
ei_isin_m %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  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 .}

time

Code
ei_isin_m %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  {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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "1997M01"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2025, 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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2005M01"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2025, 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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2005M01"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2025, 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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2005M01"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2025, 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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "1997M01"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  scale_color_identity() +
  scale_x_date(breaks = seq(1920, 2025, 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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "1997M01"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2025, 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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "1997M01"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2025, 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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2020M02"]) %>%
  left_join(geo, by = "geo") %>%
  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_4flags +
  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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2020M02"]) %>%
  left_join(geo, by = "geo") %>%
  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_4flags +
  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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2020M02"]) %>%
  left_join(geo, by = "geo") %>%
  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_3flags +
  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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2020M02"]) %>%
  left_join(geo, by = "geo") %>%
  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_4flags +
  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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2020M02"]) %>%
  left_join(geo, by = "geo") %>%
  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_4flags +
  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, time, values) %>%
  group_by(geo) %>%
  mutate(values = 100*values/values[time == "2020M02"]) %>%
  left_join(geo, by = "geo") %>%
  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_4flags +
  theme(legend.position = "none") +
  scale_y_continuous(breaks = seq(-300, 300, 10))