European Union and euro area balance of payments - quarterly data (BPM6)

Data - Eurostat

Info

Last observation: Quarterly: 2026Q1 (N = 7,066) · Annual: 2025 (N = 7,180)

First observation: Quarterly: 1999Q1 (N = 1,092) · Annual: 1999 (N = 1,091)

Last data update: 11 aoû 2026, 19:28. Last compile: 11 aoû 2026, 23:10

Structure

EU27: Current Account Balance

vs. Extra-EU27 (seasonally adjusted)

Code
bop_eu6_q |>
  filter(freq == "Q",
         geo == "EU27_2020",
         bop_item == "CA",
         stk_flow == "BAL",
         partner == "EXT_EU27_2020",
         sector10 == "S1",
         sectpart == "S1",
         s_adj == "SCA") |>
  quarter_to_date() |>
  mutate(values = values/1000) |>
  ggplot() + geom_line(aes(x = date, y = values)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Current account balance, vs. Extra-EU27 (Bn€)") +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")

By Main Partner

Code
bop_eu6_q |>
  filter(freq == "Q",
         geo == "EU27_2020",
         bop_item == "CA",
         stk_flow == "BAL",
         partner %in% c("US", "UK", "CN_X_HK", "JP", "CH"),
         sector10 == "S1",
         sectpart == "S1",
         s_adj == "NSA") |>
  quarter_to_date() |>
  mutate(values = values/1000) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Partner)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(2015, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Current account balance (Bn€)") +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")

Latest Quarter by Partner

Code
latest_q <- bop_eu6_q |>
  filter(freq == "Q",
         geo == "EU27_2020",
         bop_item == "CA",
         stk_flow == "BAL",
         partner %in% c("US", "UK", "CN_X_HK", "JP", "CH", "RU"),
         sector10 == "S1",
         sectpart == "S1",
         s_adj == "NSA",
         !is.na(values)) |>
  summarise(m = max(time)) |>
  pull(m)

bop_eu6_q |>
  filter(freq == "Q",
         geo == "EU27_2020",
         bop_item %in% c("CA", "GS", "G", "S"),
         stk_flow == "BAL",
         partner %in% c("US", "UK", "CN_X_HK", "JP", "CH", "RU"),
         sector10 == "S1",
         sectpart == "S1",
         s_adj == "NSA",
         time == latest_q) |>
  mutate(values = values/1000) |>
  select(bop_item, Bop_item, Partner, values) |>
  spread(Partner, values) |>
  print_table_conditional()
bop_item Bop_item China except Hong Kong Japan Russia Switzerland United Kingdom United States
CA Current account -66.3147 3.1875 3.4981 38.7400 72.7953 -15.8349
G Goods -76.2604 2.1722 2.8130 13.3203 50.7963 41.1951
GS Goods and services -70.9009 8.2350 3.3044 29.9750 61.9453 -7.1806
S Services 5.3595 6.0629 0.4914 16.6546 11.1490 -48.3757