Quarterly GDP and components - expenditure approach - QNA_EXPENDITURE_USD
Data - OECD
Last observation: Q2 2026 (N = 242) · 2025 (N = 656)
First observation: 1947 (N = 10) · Q1 1947 (N = 10)
Last data update: 05 sept. 2026, 01:01
Last compile: 05 sept. 2026, 03:53
Structure
U.S., Europe, France, Germany
All
Code
QNA_EXPENDITURE_USD |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "B1GQ",
PRICE_BASE == "LR",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
quarter_to_date() |>
arrange(desc(date)) |>
rename(LOCATION = REF_AREA) |>
mutate(Ref_area = ifelse(LOCATION == "EA", "Europe", Ref_area)) |>
group_by(Ref_area) |>
mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("2007-04-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(1900, 2100, 5)) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = "none") +
scale_y_log10(breaks = seq(5, 200, 5))
1995-
Code
QNA_EXPENDITURE_USD |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "B1GQ",
PRICE_BASE == "LR",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
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) |>
mutate(obsValue = 100 * obsValue / obsValue[date == as.Date("2007-04-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(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_EXPENDITURE_USD |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "B1GQ",
PRICE_BASE == "LR",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
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("2007-04-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, 200, 5))
Base 100 = 1999
Code
QNA_EXPENDITURE_USD |>
filter(REF_AREA %in% c("USA", "EA", "FRA", "DEU"),
FREQ == "Q",
TRANSACTION == "B1GQ",
PRICE_BASE == "LR",
ADJUSTMENT == "Y",
SECTOR == "S1") |>
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, 200, 5))