Quarterly compensation of employees by economic activity

Data - OECD

Info

source dataset .html .RData
oecd QNA_EXPENDITURE_CAPITA 2025-09-29 2025-09-28
oecd QNA_POP_EMPNC 2025-08-25 2025-09-28

Last

obsTime Nobs
2025-Q3 3

FREQ

Code
QNA_POP_EMPNC %>%
  left_join(FREQ, by = "FREQ") %>%
  group_by(FREQ, Freq) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
FREQ Freq Nobs
Q Quarterly 37255
A Annual 9306

REF_AREA

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

TRANSACTION

Code
QNA_POP_EMPNC %>%
  left_join(TRANSACTION, by = "TRANSACTION") %>%
  group_by(TRANSACTION, Transaction) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
TRANSACTION Transaction Nobs
POP Total population 14829
EMP Total employment 10704
SAL Employees 10514
SELF Self employed 10514

U.S., Europe, France, Germany

Population

1995-

Code
QNA_POP_EMPNC %>%
  filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "POP",
         ADJUSTMENT == "Y",
         SECTOR == "S1") %>%
  quarter_to_date %>%
  arrange(desc(date)) %>%
  rename(LOCATION = REF_AREA) %>%
  left_join(QNA_var$LOCATION, by = "LOCATION") %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) %>%
  group_by(Location) %>%
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("2007-04-01")]) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(color = ifelse(LOCATION != "DEU", color2, color)) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB par habitant (2007 = 100)") +
  geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
  scale_color_identity() +
  scale_x_date(breaks = c(seq(1995, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(50, 200, 5))

1999-

Tous

Code
QNA_POP_EMPNC %>%
  filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "POP",
         ADJUSTMENT == "Y",
         SECTOR == "S1") %>%
  quarter_to_date %>%
  rename(LOCATION = REF_AREA) %>%
  left_join(QNA_var$LOCATION, by = "LOCATION") %>%
  filter(date >= as.Date("1999-01-01")) %>%
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) %>%
  group_by(Location) %>%
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("2007-04-01")]) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(color = ifelse(LOCATION != "DEU", color2, color)) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB par habitant (2007 = 100)") +
  geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
  scale_color_identity() +
  scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(50, 200, 5))

Base 100 = 1999

Code
QNA_POP_EMPNC %>%
  filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "POP",
         ADJUSTMENT == "Y",
         SECTOR == "S1") %>%
  quarter_to_date %>%
  rename(LOCATION = REF_AREA) %>%
  left_join(QNA_var$LOCATION, by = "LOCATION") %>%
  filter(date >= as.Date("1999-01-01")) %>%
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) %>%
  group_by(Location) %>%
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("1999-01-01")]) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(color = ifelse(LOCATION != "DEU", color2, color)) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB par habitant (1999T1 = 100)") +
  geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
  scale_color_identity() +
  scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(50, 200, 5)) +
  geom_label(data = . %>% filter(date == max(date)), aes(x = date, y = obsValue, label = round(obsValue, 1), color = color))

Employment

1995-

Code
QNA_POP_EMPNC %>%
  filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "EMP",
         ADJUSTMENT == "Y",
         SECTOR == "S1") %>%
  quarter_to_date %>%
  arrange(desc(date)) %>%
  rename(LOCATION = REF_AREA) %>%
  left_join(QNA_var$LOCATION, by = "LOCATION") %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) %>%
  group_by(Location) %>%
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("2007-04-01")]) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(color = ifelse(LOCATION != "DEU", color2, color)) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB par habitant (2007 = 100)") +
  geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
  scale_color_identity() +
  scale_x_date(breaks = c(seq(1995, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(50, 200, 5))

1999-

Tous

Code
QNA_POP_EMPNC %>%
  filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "EMP",
         ADJUSTMENT == "Y",
         SECTOR == "S1") %>%
  quarter_to_date %>%
  rename(LOCATION = REF_AREA) %>%
  left_join(QNA_var$LOCATION, by = "LOCATION") %>%
  filter(date >= as.Date("1999-01-01")) %>%
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) %>%
  group_by(Location) %>%
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("2007-04-01")]) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(color = ifelse(LOCATION != "DEU", color2, color)) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB par habitant (2007 = 100)") +
  geom_line(aes(x = date, y = obsValue, color = color)) + add_4flags +
  scale_color_identity() +
  scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(50, 200, 5))

Base 100 = 1999

Code
QNA_POP_EMPNC %>%
  filter(REF_AREA %in% c("USA", "EA20", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "EMP",
         ADJUSTMENT == "Y",
         SECTOR == "S1") %>%
  quarter_to_date %>%
  rename(LOCATION = REF_AREA) %>%
  left_join(QNA_var$LOCATION, by = "LOCATION") %>%
  filter(date >= as.Date("1999-01-01")) %>%
  mutate(Location = ifelse(LOCATION == "EA20", "Europe", Location)) %>%
  group_by(Location) %>%
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("1999-01-01")]) %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(color = ifelse(LOCATION != "DEU", color2, color)) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("PIB par habitant (1999T1 = 100)") +
  geom_line(aes(x = date, y = obsValue, color = color)) + add_2flags +
  scale_color_identity() +
  scale_x_date(breaks = c(seq(1999, 2100, 5), seq(1997, 2100, 5)) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(50, 200, 5))