Balance of payments by country - annual data (BPM6)

Data - Eurostat

Info

source dataset Title .html .rData
eurostat bop_c6_a Balance of payments by country - annual data (BPM6) 2026-04-14 2026-04-14

DOWNLOAD_TIME

Code
tibble(DOWNLOAD_TIME = as.Date(file.info("~/iCloud/website/data/eurostat/bop_c6_a.RData")$mtime)) %>%
  print_table_conditional()
DOWNLOAD_TIME
2026-04-14

Last

Code
bop_c6_a %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2025 657708

bop_item

Code
bop_c6_a %>%
  left_join(bop_item, by = "bop_item") %>%
  group_by(bop_item, Bop_item) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()

sector10

Code
bop_c6_a %>%
  left_join(sector10, by = "sector10") %>%
  group_by(sector10, Sector10) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
sector10 Sector10 Nobs
S1 Total economy 9525784
S13 General Government 2193150
S1P Other sectors than MFIs and general government 1416374
S123 Money market funds 1207638
S121 Central Bank 1199788
S122 Deposit-taking corporations except the central bank 1172563
S12T Monetary Financial Institutions (MFI) other than central bank 1167589
S12M Financial corporations other than MFIs 1106239
S1V Non-financial corporations, households and non-profit institutions serving households 1104418
S1W Other sectors than General Government 1025352
S1Z Sectors other than deposit-taking corporations and general government 21579
S12R Other financial corporations 17601
S1X Monetary authorities 16158

sectpart

Code
bop_c6_a %>%
  left_join(sectpart, by = "sectpart") %>%
  group_by(sectpart, Sectpart) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
sectpart Sectpart Nobs
S1 Total economy 20369350
S12M Financial corporations other than MFIs 111551
S123 Money market funds 106979
S12T Monetary Financial Institutions (MFI) other than central bank 93849
S1P Other sectors than MFIs and general government 93295
S121 Central Bank 89782
S122 Deposit-taking corporations except the central bank 88756
S13 General Government 85886
S1V Non-financial corporations, households and non-profit institutions serving households 84606
S1N Not sectorised 47207
S12K Monetary financial institutions (MFI) 2910
S1Z Sectors other than deposit-taking corporations and general government 62

stk_flow

Code
bop_c6_a %>%
  left_join(stk_flow, by = "stk_flow") %>%
  group_by(stk_flow, Stk_flow) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
stk_flow Stk_flow Nobs
ASS Assets 4627947
CRE Credit 4275380
DEB Debit 3115829
NET Net 3092746
BAL Balance 3071581
LIAB Liabilities 2988158
NI Net FDI inward 650
NO Net FDI outward 650
II Net income on inward FDI 646
IO Net income on outward FDI 646

partner

Code
bop_c6_a %>%
  left_join(partner, by = "partner") %>%
  group_by(partner, Partner) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()

geo

Code
bop_c6_a %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

time

Code
bop_c6_a %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  print_table_conditional()

Denmark

Goods and Services

Code
bop_c6_a %>%
  filter(geo == "DK",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EA19", "EXT_EA19", "WRL_REST"),
         bop_item %in% c("GS")) %>%
  left_join(partner, by = "partner") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Partner)) +
 
  theme_minimal()  + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Netherlands

Goods and Services

Code
bop_c6_a %>%
  filter(geo == "NL",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EA19", "EXT_EA19", "WRL_REST"),
         bop_item %in% c("GS")) %>%
  left_join(partner, by = "partner") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Partner)) +
 
  theme_minimal()  + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

France

Goods and Services

Code
bop_c6_a %>%
  filter(geo == "FR",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EA19", "EXT_EA19", "WRL_REST"),
         bop_item %in% c("GS")) %>%
  left_join(partner, by = "partner") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Partner)) +
 
  theme_minimal()  + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

WRL_REST

Code
bop_c6_a %>%
  filter(geo == "FR",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("WRL_REST"),
         bop_item %in% c("CA", "GS", "G")) %>%
  left_join(bop_item, by = "bop_item") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Bop_item)) +
 
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

EA19

Code
bop_c6_a %>%
  filter(geo == "FR",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EA19"),
         bop_item %in% c("CA", "GS", "G")) %>%
  left_join(bop_item, by = "bop_item") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Bop_item)) +
 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 0.5),
                labels = percent_format(a = .1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

EXT_EA19

Code
bop_c6_a %>%
  filter(geo == "FR",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EXT_EA19"),
         bop_item %in% c("CA", "GS", "G")) %>%
  left_join(bop_item, by = "bop_item") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Bop_item)) +
 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, .5),
                labels = percent_format(a = .1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Germany

Goods and Services

Code
bop_c6_a %>%
  filter(geo == "DE",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EA19", "EXT_EA19", "WRL_REST"),
         bop_item %in% c("GS")) %>%
  left_join(partner, by = "partner") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Partner)) +
 
  theme_minimal()  + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

WRL_REST

Code
bop_c6_a %>%
  filter(geo == "DE",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("WRL_REST"),
         bop_item %in% c("CA", "GS", "G")) %>%
  left_join(bop_item, by = "bop_item") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Bop_item)) +
 
  theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 2),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

EA19

Code
bop_c6_a %>%
  filter(geo == "DE",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EA19"),
         bop_item %in% c("CA", "GS", "G")) %>%
  left_join(bop_item, by = "bop_item") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Bop_item)) +
 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

EXT_EA19

Code
bop_c6_a %>%
  filter(geo == "DE",
         stk_flow == "BAL",
         currency == "MIO_EUR",
         partner %in% c("EXT_EA19"),
         bop_item %in% c("CA", "GS", "G")) %>%
  left_join(bop_item, by = "bop_item") %>%
  left_join(B1GQ, by = c("geo", "time")) %>%
  mutate(values = values / B1GQ) %>%
  select(-B1GQ) %>%
  year_to_date %>%
  ggplot + geom_line(aes(x = date, y = values, color = Bop_item)) +
 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.8),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")