Labour cost index, nominal value - quarterly data

Data - Eurostat

Info

Data on wages

Code
load_data("wages.RData")
wages %>%
  arrange(-(dataset == "ei_lmlc_q")) %>%
  source_dataset_file_updates()
source dataset .html .RData
eurostat earn_mw_cur 2025-05-18 2025-05-18
eurostat ei_lmlc_q 2025-02-01 2025-05-18
eurostat lc_lci_lev 2025-02-01 2025-05-18
eurostat lc_lci_r2_q 2025-02-01 2025-05-18
eurostat nama_10_lp_ulc 2025-02-01 2025-05-18
eurostat namq_10_lp_ulc 2025-02-01 2025-05-18
eurostat tps00155 2025-01-26 2025-05-18
fred wage 2025-05-18 2025-05-18
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 2024-11-22 2024-11-22
oecd AWCOMP 2024-09-15 2023-09-09
oecd EAR_MEI 2024-04-16 2024-04-16
oecd HH_DASH 2024-09-15 2023-09-09
oecd MIN2AVE 2024-09-15 2023-09-09
oecd RMW 2024-09-15 2024-03-12
oecd ULC_EEQ 2024-09-15 2024-04-15

LAST_COMPILE

LAST_COMPILE
2025-05-18

Last

Code
ei_lmlc_q %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(3) %>%
  print_table_conditional()
time Nobs
2024Q4 22653
2024Q3 22653
2024Q2 22653

indic

Code
ei_lmlc_q %>%
  left_join(indic, by = "indic") %>%
  group_by(indic, Indic) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
indic Indic Nobs
LM-LCI-OTH Labour cost index - Labour costs other than wages and salaries 724452
LM-LCI-SAL Labour cost index - Wages and salaries 724452
LM-LCI-TOT Labour cost index - Total labour cost 719316

nace_r2

Code
ei_lmlc_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
K Financial and insurance activities 85675
B Mining and quarrying 85643
C Manufacturing 85643
H Transportation and storage 85639
E Water supply; sewerage, waste management and remediation activities 85623
J Information and communication 85619
N Administrative and support service activities 85611
D Electricity, gas, steam and air conditioning supply 85607
M Professional, scientific and technical activities 85599
I Accommodation and food service activities 85587
F Construction 85571
G Wholesale and retail trade; repair of motor vehicles and motorcycles 85559
L Real estate activities 85111
B-E Industry (except construction) 84927
B-F Industry and construction 84819
G-J Wholesale and retail trade; transport; accommodation and food service activities; information and communication 84639
B-N Business economy 83280
G-N Services of the business economy 83028
K-N Financial and insurance activities; real estate activities; professional, scientific and technical activities; administrative and support service activities 82848
R Arts, entertainment and recreation 79896
S Other service activities 79876
P Education 78944
Q Human health and social work activities 78896
B-S Industry, construction and services (except activities of households as employers and extra-territorial organisations and bodies) 78708
O Public administration and defence; compulsory social security 78244
O-S Public administration and defence; compulsory social security; education; human health and social work activities; arts, entertainment and recreation; other service activities 77628

s_adj

Code
ei_lmlc_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 769682
SCA Seasonally and calendar adjusted data 769058
NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 629480

unit

Code
ei_lmlc_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 734992
I20 Index, 2020=100 721600
PCH_SM Percentage change compared to same period in previous year 711628

geo

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

Germany, Italy, France, Spain

LM-LCI-SAL

B-N

All

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2000-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  filter(date >= as.Date("2000-01-01")) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2019-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2019-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))

October 2021-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2021-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))

B-S

All

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-S",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2000-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-S",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  filter(date >= as.Date("2000-01-01")) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2019-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-S",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2019-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))

October 2021-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-SAL",
         s_adj == "SCA",
         nace_r2 == "B-S",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2021-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))

LM-LCI-OTH

B-N

All

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-OTH",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2000-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-OTH",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  filter(date >= as.Date("2000-01-01")) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2019-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-OTH",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2019-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))

October 2021-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-OTH",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2021-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))

LM-LCI-TOT

B-N

All

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-TOT",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2000-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-TOT",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  filter(date >= as.Date("2000-01-01")) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2010-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-TOT",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  group_by(geo) %>%
  arrange(date) %>%
  filter(date >= as.Date("2010-01-01")) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2024, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 5))

2019-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-TOT",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2019-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))

October 2021-

Code
ei_lmlc_q %>%
  filter(indic == "LM-LCI-TOT",
         s_adj == "SCA",
         nace_r2 == "B-N",
         unit == "I20",
         geo %in% c("DE", "IT", "ES", "FR", "BE")) %>%
  quarter_to_date %>%
  filter(date >= as.Date("2021-10-01")) %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal() + xlab("") + ylab("") + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2019-10-01"), to = Sys.Date(), by = "3 months"),
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.35, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1))