Average annual wages

Data - OECD

Info

source dataset Title .html .rData
oecd AV_AN_WAGE Average annual wages 2026-01-11 2026-01-10

Data on wages

Code
load_data("wages.RData")
wages %>%
  arrange(-(dataset == "AV_AN_WAGE")) %>%
  source_dataset_file_updates()
source dataset Title .html .rData
oecd AV_AN_WAGE Average annual wages 2026-01-11 2026-01-10
eurostat earn_mw_cur Monthly minimum wages - bi-annual data 2026-01-11 2026-01-07
eurostat ei_lmlc_q Labour cost index, nominal value - quarterly data 2026-01-11 2026-01-07
eurostat lc_lci_lev Labour cost levels by NACE Rev. 2 activity 2026-01-09 2026-01-07
eurostat lc_lci_r2_q Labour cost index by NACE Rev. 2 activity - nominal value, quarterly data 2026-01-09 2026-01-07
eurostat nama_10_lp_ulc Labour productivity and unit labour costs 2026-01-09 2026-01-07
eurostat namq_10_lp_ulc Labour productivity and unit labour costs 2026-01-10 2026-01-07
eurostat tps00155 Minimum wages 2026-01-10 2026-01-07
fred wage Wage 2026-01-11 2026-01-07
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 AWCOMP Taxing Wages - Comparative tables 2026-01-11 2023-09-09
oecd EAR_MEI Hourly Earnings (MEI) 2024-04-16 2024-04-16
oecd HH_DASH Household Dashboard 2026-01-11 2023-09-09
oecd MIN2AVE Minimum relative to average wages of full-time workers - MIN2AVE 2026-01-11 2023-09-09
oecd RMW Real Minimum Wages - RMW 2026-01-11 2024-03-12
oecd ULC_EEQ Unit labour costs and labour productivity (employment based), Total economy 2026-01-11 2024-04-15

LAST_COMPILE

LAST_COMPILE
2026-01-15

Last

obsTime Nobs
2024 109

UNIT_MEASURE

Code
AV_AN_WAGE %>%
  left_join(UNIT_MEASURE, by = "UNIT_MEASURE") %>%
  group_by(UNIT_MEASURE, Unit_measure) %>%
  summarise(nobs = n()) %>%
  arrange(-nobs) %>%
  print_table_conditional()
UNIT_MEASURE Unit_measure nobs
USD_PPP US dollars, PPP converted 1281
EUR Euro 1171
AUD Australian dollar 70
CAD Canadian dollar 70
CHF Swiss franc 70
DKK Danish krone 70
GBP Pound sterling 70
ISK Iceland krona 70
JPY Yen 70
KRW Won 70
MXN Mexican peso 70
NOK Norwegian krone 70
NZD New Zealand dollar 70
SEK Swedish krona 70
USD US dollar 70
CRC Costa Rican colon 66
CZK Czech koruna 60
HUF Forint 60
ILS New Israeli sheqel 60
PLN Zloty 60
CLP Chilean peso 56
BGN Bulgarian lev 55
RON Romanian leu 55
TRY Turkish lira 52
COP Colombian peso 38

PRICE_BASE

Code
AV_AN_WAGE %>%
  left_join(PRICE_BASE, by = "PRICE_BASE") %>%
  group_by(PRICE_BASE, Price_base) %>%
  summarise(nobs = n()) %>%
  arrange(-nobs) %>%
  print_table_conditional()
PRICE_BASE Price_base nobs
Q Constant prices 2594
V Current prices 1330

REF_AREA

Code
AV_AN_WAGE %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  group_by(REF_AREA, Ref_area) %>%
  summarise(nobs = n()) %>%
  arrange(-nobs) %>%
  print_table_conditional()

USD_PPP - US dollars, PPP converted

France, Germany, Italy, Spain, USA

Tous

Code
AV_AN_WAGE %>%
  filter(PRICE_BASE == "Q",
         UNIT_MEASURE == "USD_PPP",
         REF_AREA %in% c("FRA", "DEU", "ITA", "ESP", "USA")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  year_to_date() %>%
  #filter(date >= as.Date("1996-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags + theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 500, 10)) +
  ylab("Current prices in NCU") + xlab("")

1996-

Code
AV_AN_WAGE %>%
  filter(PRICE_BASE == "Q",
         UNIT_MEASURE == "USD_PPP",
         REF_AREA %in% c("FRA", "DEU", "ITA", "ESP", "USA")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  year_to_date() %>%
  filter(date >= as.Date("1996-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags + theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 500, 10)) +
  ylab("Current prices in NCU") + xlab("")

Current Prices

France, Germany, Italy, Spain, USA

Tous

Code
AV_AN_WAGE %>%
  filter(PRICE_BASE == "V",
         REF_AREA %in% c("FRA", "DEU", "ITA", "ESP", "USA")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  year_to_date() %>%
  #filter(date >= as.Date("1996-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags + theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 500, 10)) +
  ylab("Current prices in NCU") + xlab("")

1992-

Code
AV_AN_WAGE %>%
  filter(PRICE_BASE == "V",
         REF_AREA %in% c("FRA", "DEU", "ITA", "ESP", "USA")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  year_to_date() %>%
  filter(date >= as.Date("1992-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags + theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 500, 10)) +
  ylab("Current prices in NCU") + xlab("")

1996-

Code
AV_AN_WAGE %>%
  filter(PRICE_BASE == "V",
         REF_AREA %in% c("FRA", "DEU", "ITA", "ESP", "USA")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  year_to_date() %>%
  filter(date >= as.Date("1996-01-01")) %>%
  group_by(Ref_area) %>%
  arrange(date) %>%
  mutate(obsValue = 100*obsValue/obsValue[1]) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags + theme_minimal() +
  scale_x_date(breaks = seq(1920, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(10, 500, 10)) +
  ylab("Current prices in NCU") + xlab("")