Labour cost index by NACE Rev. 2 activity - nominal value, quarterly data

Data - Eurostat

Info

source dataset .html .RData
eurostat lc_lci_r2_q 2025-08-27 2025-08-24

Info

  • Annual increase in labour costs at 5.7% in euro area - Fourth quarter of 2022. pdf/html

  • Annual increase in labour costs at 2.9% in euro area - Third quarter of 2022. pdf

  • Annual increase in labour costs at 4.0% in euro area - Second quarter of 2022. pdf

Data on wages

Code
load_data("wages.RData")
wages %>%
  arrange(-(dataset == "lc_lci_r2_q")) %>%
  source_dataset_file_updates()
source dataset .html .RData
eurostat earn_mw_cur 2025-08-27 2025-08-24
eurostat ei_lmlc_q 2025-08-27 2025-08-24
eurostat lc_lci_lev 2025-08-27 2025-08-24
eurostat lc_lci_r2_q 2025-08-27 2025-08-24
eurostat nama_10_lp_ulc 2025-08-27 2025-08-24
eurostat namq_10_lp_ulc 2025-08-27 2025-08-24
eurostat tps00155 2025-08-27 2025-08-24
fred wage 2025-08-25 2025-08-24
ilo EAR_4MTH_SEX_ECO_CUR_NB_A 2024-06-20 2023-06-01
ilo EAR_XEES_SEX_ECO_NB_Q 2024-06-20 2023-06-01
oecd AV_AN_WAGE 2025-08-25 2025-08-24
oecd AWCOMP 2025-08-25 2023-09-09
oecd EAR_MEI 2024-04-16 2024-04-16
oecd HH_DASH 2025-08-25 2023-09-09
oecd MIN2AVE 2025-08-25 2023-09-09
oecd RMW 2025-08-25 2024-03-12
oecd ULC_EEQ 2025-08-25 2024-04-15

Last

Code
lc_lci_r2_q %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(2) %>%
  print_table_conditional()
time Nobs
2025Q2 936
2025Q1 27174

lcstruct

Code
lc_lci_r2_q %>%
  left_join(lcstruct, by = "lcstruct") %>%
  group_by(lcstruct, Lcstruct) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
lcstruct Lcstruct Nobs
D11 Wages and salaries (total) 985008
D12_D4_MD5 Labour costs other than wages and salaries 984992
D1_D4_MD5 Labour cost for LCI (compensation of employees plus taxes minus subsidies) 977332
D1_D4_MD5_XB Labour cost for LCI excluding bonuses 636068

nace_r2

Code
lc_lci_r2_q %>%
  left_join(nace_r2, by = "nace_r2") %>%
  group_by(nace_r2, Nace_r2) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
nace_r2 Nace_r2 Nobs
B Mining and quarrying 141880
C Manufacturing 141860
E Water supply; sewerage, waste management and remediation activities 141844
D Electricity, gas, steam and air conditioning supply 141840
F Construction 141776
K Financial and insurance activities 140754
B-E Industry (except construction) 140752
H Transportation and storage 140686
J Information and communication 140686
N Administrative and support service activities 140654
M Professional, scientific and technical activities 140650
B-F Industry and construction 140608
I Accommodation and food service activities 140590
G Wholesale and retail trade; repair of motor vehicles and motorcycles 140574
L Real estate activities 140142
B-N Business economy 139406
G-J Wholesale and retail trade; transport; accommodation and food service activities; information and communication 139198
G-N Services of the business economy 139006
K-N Financial and insurance activities; real estate activities; professional, scientific and technical activities; administrative and support service activities 138442
R Arts, entertainment and recreation 131760
S Other service activities 131740
P Education 130484
Q Human health and social work activities 130444
B-S Industry, construction and services (except activities of households as employers and extra-territorial organisations and bodies) 130076
O Public administration and defence; compulsory social security 129280
O-S Public administration and defence; compulsory social security; education; human health and social work activities; arts, entertainment and recreation; other service activities 128268

unit

Code
lc_lci_r2_q %>%
  left_join(unit, by = "unit") %>%
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
unit Unit Nobs
PCH_PRE Percentage change on previous period 945072
PCH_SM Percentage change compared to same period in previous year 914934
I20 Index, 2020=100 906242
I16 Index, 2016=100 817152

s_adj

Code
lc_lci_r2_q %>%
  left_join(s_adj, by = "s_adj") %>%
  group_by(s_adj, S_adj) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
s_adj S_adj Nobs
CA Calendar adjusted data, not seasonally adjusted data 1277930
SCA Seasonally and calendar adjusted data 1276802
NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 1028668

geo

Code
lc_lci_r2_q %>%
  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
lc_lci_r2_q %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  print_table_conditional()

Last

Europe

Code
lc_lci_r2_q %>%
  filter(geo == "EA20",
         unit != "I20") %>%
  filter(time == max(time)) %>%
  mutate(variable = paste0(s_adj, " - ", unit)) %>%
  select(-unit, -s_adj) %>%
  spread(variable, values) %>%
  select_if(~ n_distinct(.) > 1) %>%
  print_table_conditional()

France

Code
lc_lci_r2_q %>%
  filter(geo == "FR",
         unit != "I20") %>%
  filter(time == max(time)) %>%
  mutate(variable = paste0(s_adj, " - ", unit)) %>%
  select(-unit, -s_adj) %>%
  spread(variable, values) %>%
  select_if(~ n_distinct(.) > 1) %>%
  print_table_conditional()

Germany

Code
lc_lci_r2_q %>%
  filter(geo == "DE",
         unit != "I20") %>%
  filter(time == max(time)) %>%
  mutate(variable = paste0(s_adj, " - ", unit)) %>%
  select(-unit, -s_adj) %>%
  spread(variable, values) %>%
  select_if(~ n_distinct(.) > 1) %>%
  print_table_conditional()

Indices

France

All

Nominal

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("FR")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(80, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

2017T2-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("FR")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-04-01")) %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(80, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank()) +
  geom_text(data = . %>%
              filter(date %in% max(date)),
            aes(x = date, y = values, color = Lcstruct, label = round(values, 1)))

Business

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("FR")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(50, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

1999-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("FR")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(50, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

Public

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "O-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("FR")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(50, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

2017T2-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "O-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("FR")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-04-01")) %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(50, 200, 2)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank()) +
  geom_text(data = . %>%
              filter(date %in% max(date)),
            aes(x = date, y = values, color = Lcstruct, label = round(values, 1)))

Germany

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("DE")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(60, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

Italy

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("IT")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(60, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

Spain

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("ES")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(60, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

Euro Area

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("EA")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Lcstruct) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(60, 200, 5)) + 
  theme(legend.position = c(0.45, 0.90),
        legend.title = element_blank())

Netherlands

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         geo %in% c("NL")) %>%
  quarter_to_date %>%
  left_join(lcstruct, by = "lcstruct") %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Lcstruct)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(60, 200, 5)) + 
  theme(legend.position = c(0.45, 0.80),
        legend.title = element_blank())

Europe and Eurozone

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("EA19", "EU27_2020")) %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Geo)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.25, 0.90),
        legend.title = element_blank())

2017-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("EA19", "EU27_2020")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = Geo)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.25, 0.90),
        legend.title = element_blank())

2022Q1-Q2 - Tables

D11 - Wages and salaries (total)

%

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit %in% c("PCH_SM", "PCH_PRE"),
         lcstruct == "D11",
         time == max(time),
         s_adj == "CA") %>%
  left_join(geo, by = "geo") %>%
  left_join(unit, by = "unit") %>%
  select_if(~ n_distinct(.) > 1) %>%
  select(-unit) %>%
  spread(Unit, values) %>%
  print_table_conditional()
geo Geo Percentage change compared to same period in previous year Percentage change on previous period
EA20 Euro area – 20 countries (from 2023) 3.8 12.0
EU27_2020 European Union - 27 countries (from 2020) 4.3 10.6

Indice

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit %in% c("PCH_SM", "PCH_PRE"),
         lcstruct == "D11",
         time == max(time),
         s_adj == "CA") %>%
  left_join(geo, by = "geo") %>%
  left_join(unit, by = "unit") %>%
  select_if(~ n_distinct(.) > 1) %>%
  select(-unit) %>%
  spread(Unit, values) %>%
  print_table_conditional()
geo Geo Percentage change compared to same period in previous year Percentage change on previous period
EA20 Euro area – 20 countries (from 2023) 3.8 12.0
EU27_2020 European Union - 27 countries (from 2020) 4.3 10.6

D12_D4_MD5 - Labour costs other than wages and salaries

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D12_D4_MD5",
         time %in% c("2022Q2","2022Q1"),
         s_adj == "CA") %>%
  left_join(geo, by = "geo") %>%
  select_if(~ n_distinct(.) > 1) %>%
  spread(time, values) %>%
  arrange(`2022Q2`) %>%
  print_table_conditional()

D1_D4_MD5 - Labour cost for LCI (compensation of employees plus taxes minus subsidies)

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D12_D4_MD5",
         time %in% c("2022Q2","2022Q1"),
         s_adj == "CA") %>%
  left_join(geo, by = "geo") %>%
  select_if(~ n_distinct(.) > 1) %>%
  spread(time, values) %>%
  arrange(`2022Q2`) %>%
  print_table_conditional()

D11 - Wages and salaries

France, Germany

Indice

Tous

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         lcstruct == "D11",
         geo %in% c("FR", "DE")) %>%
  quarter_to_date %>%
  #filter(date >= as.Date("1998-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = c(seq(1998, 2100, 2)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(90, 200, 5)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1999-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         lcstruct == "D11",
         geo %in% c("FR", "DE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(90, 200, 5)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1998-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         lcstruct == "D11",
         geo %in% c("FR", "DE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("1998-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = c(seq(1998, 2100, 2)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(90, 200, 5)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

France, Germany, Italy, Spain, Europe

Indice

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         lcstruct == "D11",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(90, 200, 5)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2001-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         lcstruct == "D11",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2001-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(90, 200, 5)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2017T2-

B-N
Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-N",
         unit == "I20",
         s_adj == "SCA",
         lcstruct == "D11",
         geo %in% c("FR", "DE", "ES", "IT", "EA20")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-04-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(90, 200, 5)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

B-S
Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "I20",
         s_adj == "SCA",
         lcstruct == "D11",
         geo %in% c("FR", "DE", "ES", "IT", "EA20")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-04-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(90, 200, 5)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

Change

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2017-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2020-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = "6 months",
               labels = date_format("%Y %b")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

3 years

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= Sys.Date() - years(3)) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%Y %b")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2 years

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= Sys.Date() - years(2)) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%Y %b")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

Netherlands, Portugal, Hungary, Italy

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("NL", "PT", "HU", "IT")) %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2017-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D11",
         s_adj == "CA",
         geo %in% c("NL", "PT", "HU", "IT")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

D12_D4_MD5 - Labour costs other than wages and salaries

France, Germany, Italy, Spain, Europe

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D12_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2017-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D12_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D12_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2020-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = "6 months",
               labels = date_format("%Y %b")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

3 years

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D12_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= Sys.Date() - years(3)) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%Y %b")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2 years

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D12_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= Sys.Date() - years(2)) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%Y %b")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) +
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

D1_D4_MD5 - Labour cost for LCI

France, Germany, Italy, Spain

All

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D1_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2017-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D1_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
lc_lci_r2_q %>%
  filter(nace_r2 == "B-S",
         unit == "PCH_SM",
         lcstruct == "D1_D4_MD5",
         s_adj == "CA",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2020-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(values = values/100,
         Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = "6 months",
               labels = date_format("%Y %b")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 20, 1),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())