Main aggregates - MNA

Data - ECB

Info

Last observation: Q: 2026-Q2 (N = 1944) · A: 2025 (N = 8028)

First observation: A: 1948 (N = 3) · Q: 1949-Q1 (N = 280)

Last data update: 17 aoû 2026, 01:49. Last compile: 18 aoû 2026, 01:13

Structure

MNA_B1GQ - GDP in Europe

Quarterly

All

Code
B1GQ |>
  ggplot() + geom_line(aes(x = date, y = B1GQ)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

1999-

Code
B1GQ |>
  filter(date >= as.Date("1999-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = B1GQ)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 1000),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

Monthly

All

Code
tibble(date = seq.Date(from = as.Date("1995-01-01"), to = Sys.Date(), "1 month")) |>
  left_join(B1GQ |> mutate(date = date + months(3)), by = "date") |>
  mutate(B1GQ_i = spline(x = date, y = B1GQ, xout = date)$y) |>
  gather(variable, value, -date) |>
  filter(!is.na(value)) |>
  ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

2010-

Code
tibble(date = seq.Date(from = as.Date("1995-01-01"), to = Sys.Date(), "1 month")) |>
  left_join(B1GQ |> mutate(date = date + months(3)), by = "date") |>
  mutate(B1GQ_i = spline(x = date, y = B1GQ, xout = date)$y) |>
  gather(variable, value, -date) |>
  filter(date >= as.Date("2010-01-01"),
         !is.na(value)) |>
  ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

2019-

Code
tibble(date = seq.Date(from = as.Date("1995-01-01"), to = Sys.Date(), "1 month")) |>
  left_join(B1GQ |> mutate(date = date + months(3)), by = "date") |>
  mutate(B1GQ_i = spline(x = date, y = B1GQ, xout = date)$y) |>
  gather(variable, value, -date) |>
  filter(date >= as.Date("2019-01-01"),
         !is.na(value)) |>
  ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 1), "-01-01")),
               labels = date_format("%Y"))

Import / Export Prices

All (1994-)

Code
MNA |>
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") |>
  quarter_to_date() |>
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 0.01*seq(0, 200, 5))

2000-

Code
MNA |>
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") |>
  quarter_to_date() |>
  filter(date >= as.Date("2000-01-01")) |>
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 0.01*seq(0, 200, 5))

2009-2015

Code
MNA |>
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") |>
  quarter_to_date() |>
  filter(date >= as.Date("2009-01-01"),
         date <= as.Date("2014-12-31")) |>
  group_by(TITLE) |>
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(0, 200, 5))

Import / Export Inflation

All (1994-)

Code
MNA |>
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") |>
  quarter_to_date() |>
  group_by(TITLE) |>
  mutate(OBS_VALUE = lead(log(OBS_VALUE), 4) - lag(log(OBS_VALUE), 4)) |>
  filter(date >= as.Date("1997-01-01")) |>
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 2),
                     labels = percent_format(acc = 1))

2000-

Code
MNA |>
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") |>
  quarter_to_date() |>
  group_by(TITLE) |>
  mutate(OBS_VALUE = lead(log(OBS_VALUE), 4) - lag(log(OBS_VALUE), 4)) |>
  filter(date >= as.Date("2000-01-01")) |>
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 1),
                     labels = percent_format(acc = 1))

2009-2015

Code
MNA |>
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") |>
  quarter_to_date() |>
  group_by(TITLE) |>
  mutate(OBS_VALUE = lead(log(OBS_VALUE), 4) - lag(log(OBS_VALUE), 4)) |>
  filter(date >= as.Date("2009-01-01"),
         date <= as.Date("2014-12-31")) |>
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 1),
                     labels = percent_format(acc = 1))