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, 2100, 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, 2100, 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, 2100, 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, 2100, 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, 2100, 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, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 200, 10))