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

Data - Eurostat

Info

source dataset Title .html .rData
eurostat lc_lci_r2_q Labour cost index by NACE Rev. 2 activity - nominal value, quarterly data 2025-12-25 2025-12-27

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 Title .html .rData
eurostat lc_lci_r2_q Labour cost index by NACE Rev. 2 activity - nominal value, quarterly data 2025-12-25 2025-12-27
eurostat earn_mw_cur Monthly minimum wages - bi-annual data 2025-12-27 2025-12-27
eurostat ei_lmlc_q Labour cost index, nominal value - quarterly data 2025-12-27 2025-12-27
eurostat lc_lci_lev Labour cost levels by NACE Rev. 2 activity 2025-12-25 2025-12-27
eurostat nama_10_lp_ulc Labour productivity and unit labour costs 2025-12-25 2025-12-27
eurostat namq_10_lp_ulc Labour productivity and unit labour costs 2025-12-25 2025-12-27
eurostat tps00155 Minimum wages 2025-12-25 2025-12-27
fred wage Wage 2025-12-25 2025-12-25
ilo EAR_4MTH_SEX_ECO_CUR_NB_A Mean nominal monthly earnings of employees by sex and economic activity -- Harmonized series 2024-06-20 2023-06-01
ilo EAR_XEES_SEX_ECO_NB_Q Mean nominal monthly earnings of employees by sex and economic activity -- Harmonized series 2024-06-20 2023-06-01
oecd AV_AN_WAGE Average annual wages 2025-12-26 2025-12-26
oecd AWCOMP Taxing Wages - Comparative tables 2025-12-26 2023-09-09
oecd EAR_MEI Hourly Earnings (MEI) 2024-04-16 2024-04-16
oecd HH_DASH Household Dashboard 2025-12-26 2023-09-09
oecd MIN2AVE Minimum relative to average wages of full-time workers - MIN2AVE 2025-12-26 2023-09-09
oecd RMW Real Minimum Wages - RMW 2025-12-26 2024-03-12
oecd ULC_EEQ Unit labour costs and labour productivity (employment based), Total economy 2025-12-26 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
2025Q3 26862
2025Q2 27798

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) 775636
D12_D4_MD5 Labour costs other than wages and salaries 775620
D1_D4_MD5 Labour cost for LCI (compensation of employees plus taxes minus subsidies) 770672
D1_D4_MD5_XB Labour cost for LCI excluding bonuses 499316

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 111726
C Manufacturing 111722
E Water supply; sewerage, waste management and remediation activities 111702
D Electricity, gas, steam and air conditioning supply 111690
F Construction 111654
K Financial and insurance activities 110858
B-E Industry (except construction) 110814
H Transportation and storage 110806
J Information and communication 110790
N Administrative and support service activities 110778
M Professional, scientific and technical activities 110770
I Accommodation and food service activities 110754
G Wholesale and retail trade; repair of motor vehicles and motorcycles 110726
B-F Industry and construction 110706
L Real estate activities 110518
B-N Business economy 110202
G-N Services of the business economy 109902
G-J Wholesale and retail trade; transport; accommodation and food service activities; information and communication 109590
K-N Financial and insurance activities; real estate activities; professional, scientific and technical activities; administrative and support service activities 109374
R Arts, entertainment and recreation 103426
S Other service activities 103406
P Education 102474
Q Human health and social work activities 102422
B-S Industry, construction and services (except activities of households as employers and extra-territorial organisations and bodies) 102130
O Public administration and defence; compulsory social security 101558
O-S Public administration and defence; compulsory social security; education; human health and social work activities; arts, entertainment and recreation; other service activities 100746

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 963296
PCH_SM Percentage change compared to same period in previous year 933158
I20 Index, 2020=100 924790

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 1007514
SCA Seasonally and calendar adjusted data 1006826
NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 806904

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()

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()

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())