Quarterly National Accounts, - QNA_INCOME

Data - OECD

Last observation: Q2 2026 (N = 293) · 2025 (N = 434)

First observation: 1947 (N = 6) · Q1 1947 (N = 5)

Last data update: 05 sept. 2026, 01:01

Last compile: 05 sept. 2026, 03:53

Structure

U.S., Europe, France, Germany

D1 - Compensation of employees

1995-

Code
QNA_INCOME |>
  filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "D1",
         ADJUSTMENT == "Y") |>
  quarter_to_date() |>
  arrange(desc(date)) |>
  rename(LOCATION = REF_AREA) |>
  filter(date >= as.Date("1995-01-01")) |>
  mutate(Ref_area = ifelse(LOCATION == "EA", "Europe", Ref_area)) |>
  group_by(Ref_area) |>
  arrange(date) |>
  mutate(obsValue = 100 * obsValue / obsValue[1]) |>
  add_flag_color("Ref_area") |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  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(100, 500, 20))

1999-

Code
QNA_INCOME |>
  filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "D1",
         ADJUSTMENT == "Y") |>
  quarter_to_date() |>
  rename(LOCATION = REF_AREA) |>
  
  filter(date >= as.Date("1999-01-01")) |>
  mutate(Ref_area = ifelse(LOCATION == "EA", "Europe", Ref_area)) |>
  group_by(Ref_area) |>
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("1999-01-01")]) |>
  add_flag_color("Ref_area") |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  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, 400, 10))

B1GQ - Gross domestic product

1995-

Code
QNA_INCOME |>
  filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "B1GQ",
         ADJUSTMENT == "Y") |>
  quarter_to_date() |>
  arrange(desc(date)) |>
  rename(LOCATION = REF_AREA) |>
  
  filter(date >= as.Date("1995-01-01")) |>
  mutate(Ref_area = ifelse(LOCATION == "EA", "Europe", Ref_area)) |>
  group_by(Ref_area) |>
  arrange(date) |>
  mutate(obsValue = 100 * obsValue / obsValue[1]) |>
  add_flag_color("Ref_area") |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  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(100, 500, 20))

1999-

Code
QNA_INCOME |>
  filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
         FREQ == "Q",
         TRANSACTION == "B1GQ",
         ADJUSTMENT == "Y") |>
  quarter_to_date() |>
  rename(LOCATION = REF_AREA) |>
  
  filter(date >= as.Date("1999-01-01")) |>
  mutate(Ref_area = ifelse(LOCATION == "EA", "Europe", Ref_area)) |>
  group_by(Ref_area) |>
  mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("1999-01-01")]) |>
  add_flag_color("Ref_area") |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  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, 400, 10))