Quarterly benchmarked Unit Labour Cost indicators – By economic activity - ULC_QUA

Data - OECD


Nobs - Javascript

Code
ULC_QUA %>%
  left_join(ULC_QUA_var$SUBJECT %>%
              setNames(c("SUBJECT", "Subject")), by = "SUBJECT") %>%
  left_join(ULC_QUA_var$SECTOR %>%
              setNames(c("SECTOR", "Sector")), by = "SECTOR") %>%
  group_by(SUBJECT, Subject, SECTOR, Sector, MEASURE, FREQUENCY) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SUBJECT

Code
ULC_QUA %>%
  left_join(ULC_QUA_var$SUBJECT %>%
              setNames(c("SUBJECT", "Subject")), by = "SUBJECT") %>%
  group_by(SUBJECT, Subject) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

SECTOR

Code
ULC_QUA %>%
  left_join(ULC_QUA_var$SECTOR %>%
              setNames(c("SECTOR", "Sector")), by = "SECTOR") %>%
  group_by(SECTOR, Sector) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

FREQUENCY

Code
ULC_QUA %>%
  left_join(ULC_QUA_var$FREQUENCY %>%
              setNames(c("FREQUENCY", "Frequency")), by = "FREQUENCY") %>%
  group_by(FREQUENCY, Frequency) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

MEASURE

Code
ULC_QUA %>%
  left_join(ULC_QUA_var$MEASURE %>%
              setNames(c("MEASURE", "Measure")), by = "MEASURE") %>%
  group_by(MEASURE, Measure) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Labour Income Share (Real ULC) (Total Economy)

Germany

Code
ULC_QUA %>%
  filter(MEASURE == "IXOBTE",
         SUBJECT == "ULQBBU99",
         LOCATION == "DEU") %>%
  left_join(ULC_QUA_var$SECTOR, by = c("SECTOR" = "id")) %>%
  rename(SECTOR_desc = label) %>%
  year_to_date %>%
  arrange(SECTOR_desc) %>%
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = SECTOR_desc, linetype = SECTOR_desc)) +
  scale_color_manual(values = viridis(9)[1:8]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  theme(legend.position = c(0.8, 0.3),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 10)) +
  ylab("Labour Income Share (Real ULC) (Total Economy)") + xlab("")

France

Code
ULC_QUA %>%
  filter(MEASURE == "IXOBTE",
         SUBJECT == "ULQBBU99",
         LOCATION == "FRA") %>%
  left_join(ULC_QUA_var$SECTOR, by = c("SECTOR" = "id")) %>%
  rename(SECTOR_desc = label) %>%
  year_to_date %>%
  arrange(SECTOR_desc) %>%
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = SECTOR_desc, linetype = SECTOR_desc)) +
  scale_color_manual(values = viridis(9)[1:8]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  theme(legend.position = c(0.8, 0.3),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 10)) +
  ylab("Labour Income Share (Real ULC) (Total Economy)") + xlab("")

United States

Code
ULC_QUA %>%
  filter(MEASURE == "IXOBTE",
         SUBJECT == "ULQBBU99",
         LOCATION == "USA") %>%
  left_join(ULC_QUA_var$SECTOR, by = c("SECTOR" = "id")) %>%
  rename(SECTOR_desc = label) %>%
  year_to_date %>%
  arrange(SECTOR_desc) %>%
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = SECTOR_desc, linetype = SECTOR_desc)) +
  scale_color_manual(values = viridis(9)[1:8]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  theme(legend.position = c(0.25, 0.7),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 10)) +
  ylab("Labour Income Share (Real ULC) (Total Economy)") + xlab("")

Labour Income Share (Real ULC) (Total Economy)

Manufacturing

Code
ULC_QUA %>%
  filter(MEASURE == "IXOBTE",
         SUBJECT == "ULQBBU99",
         SECTOR == "02",
         LOCATION %in% c("FRA", "DEU", "USA")) %>%
  left_join(ULC_QUA_var$LOCATION, by = c("LOCATION" = "id")) %>%
  rename(LOCATION_desc = label) %>%
  year_to_date %>%
  arrange(LOCATION_desc) %>%
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = LOCATION_desc, linetype = LOCATION_desc)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  theme(legend.position = c(0.8, 0.2),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 200, 10)) +
  ylab("Labour Income Share (Real ULC) (Total Economy)") + xlab("")

Unit Labour Cost

2000-

Code
ULC_QUA %>%
  filter(SUBJECT == "ULQBBU99",
         SECTOR == "01",
         MEASURE == "IXOB",
         LOCATION %in% c("FRA", "DEU", "ITA", "GRC", "ESP")) %>%
  left_join(ULC_QUA_var$LOCATION %>%
              setNames(c("LOCATION", "Location")), by = "LOCATION") %>%
  year_to_date %>%
  filter(date >= as.Date("2000-01-01")) %>%
  group_by(Location) %>%
  mutate(obsValue = 100*obsValue / obsValue[date == as.Date("2000-01-01")]) %>%
  ggplot() + theme_minimal() + ylab("Unit Labour Costs") + xlab("") +
  geom_line(aes(x = date, y = obsValue, color = Location)) +
  scale_color_manual(values = viridis(6)[1:5]) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  scale_y_log10(breaks = seq(0, 200, 10))

1995-

Code
ULC_QUA %>%
  filter(SUBJECT == "ULQBBU99",
         SECTOR == "01",
         MEASURE == "IXOBTE",
         FREQUENCY == "Q",
         LOCATION %in% c("FRA", "DEU", "ITA", "GRC", "ESP")) %>%
  left_join(ULC_QUA_var$LOCATION %>%
              setNames(c("LOCATION", "Location")), by = "LOCATION") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1995-01-01")) %>%
  group_by(Location) %>%
  mutate(obsValue = 100*obsValue / obsValue[date == as.Date("2000-01-01")]) %>%
  ggplot() + theme_minimal() + ylab("Unit Labour Costs") + xlab("") +
  geom_line(aes(x = date, y = obsValue, color = Location)) +
  scale_color_manual(values = viridis(6)[1:5]) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%y")) +
  scale_y_log10(breaks = seq(0, 200, 10))