Average annual wages

Data - OECD

Info

source dataset .html .RData
oecd AV_AN_WAGE 2025-08-25 2025-09-28

Data on wages

Code
load_data("wages.RData")
wages %>%
  arrange(-(dataset == "AV_AN_WAGE")) %>%
  source_dataset_file_updates()
source dataset .html .RData
eurostat earn_mw_cur 2025-09-26 2025-09-26
eurostat ei_lmlc_q 2025-09-26 2025-09-26
eurostat lc_lci_lev 2025-09-26 2025-09-26
eurostat lc_lci_r2_q 2025-09-26 2025-09-26
eurostat nama_10_lp_ulc 2025-09-26 2025-09-26
eurostat namq_10_lp_ulc 2025-09-26 2025-09-26
eurostat tps00155 2025-09-27 2025-09-26
fred wage 2025-09-27 2025-09-27
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-09-28
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_COMPILE

LAST_COMPILE
2025-09-29

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