International investment position - quarterly and annual data (BPM6)

Data - Eurostat

Info

source dataset .html .RData
eurostat bop_iip6_q 2025-02-01 2025-05-18

Data on europe

source dataset .html .RData
eurostat bop_gdp6_q 2025-05-18 2025-05-18
eurostat nama_10_a10 2025-02-01 2025-05-18
eurostat nama_10_a10_e 2025-02-01 2025-05-18
eurostat nama_10_gdp 2025-02-01 2025-05-18
eurostat nama_10_lp_ulc 2025-02-01 2025-05-18
eurostat namq_10_a10 2025-03-04 2025-05-18
eurostat namq_10_a10_e 2025-03-13 2025-05-18
eurostat namq_10_gdp 2025-02-04 2025-05-18
eurostat namq_10_lp_ulc 2025-02-01 2025-05-18
eurostat namq_10_pc 2025-02-01 2025-05-18
eurostat nasa_10_nf_tr 2025-04-23 2025-05-18
eurostat nasq_10_nf_tr 2025-02-12 2025-05-18
eurostat tipsii40 2025-01-26 2025-05-18

Data on macro

source dataset .html .RData
eurostat nama_10_a10 2025-02-01 2025-05-18
eurostat nama_10_a10_e 2025-02-01 2025-05-18
eurostat nama_10_gdp 2025-02-01 2025-05-18
eurostat nama_10_lp_ulc 2025-02-01 2025-05-18
eurostat namq_10_a10 2025-03-04 2025-05-18
eurostat namq_10_a10_e 2025-03-13 2025-05-18
eurostat namq_10_gdp 2025-02-04 2025-05-18
eurostat namq_10_lp_ulc 2025-02-01 2025-05-18
eurostat namq_10_pc 2025-02-01 2025-05-18
eurostat nasa_10_nf_tr 2025-04-23 2025-05-18
eurostat nasq_10_nf_tr 2025-02-12 2025-05-18
fred gdp 2025-05-18 2025-05-18
oecd QNA 2024-06-06 2025-03-31
oecd SNA_TABLE1 2025-03-04 2025-03-04
oecd SNA_TABLE14A 2024-09-15 2024-06-30
oecd SNA_TABLE2 2024-07-01 2024-04-11
oecd SNA_TABLE6A 2024-07-01 2024-06-30
wdi NE.RSB.GNFS.ZS 2025-03-09 2025-03-09
wdi NY.GDP.MKTP.CD 2025-03-09 2025-03-09
wdi NY.GDP.MKTP.PP.CD 2025-03-09 2025-03-09
wdi NY.GDP.PCAP.CD 2025-03-31 2025-03-31
wdi NY.GDP.PCAP.KD 2025-03-09 2025-03-09
wdi NY.GDP.PCAP.PP.CD 2025-03-31 2025-03-31
wdi NY.GDP.PCAP.PP.KD 2025-03-09 2025-03-09

Last

Code
bop_iip6_q %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(3) %>%
  print_table_conditional()
time Nobs
2024Q4 477668
2024Q3 478156
2024Q2 464696

Info

Code
include_graphics("https://ec.europa.eu/eurostat/statistics-explained/images/b/be/Net_international_investment_position%2C_surplus_and_deficit%2C_Top_10_economies%2C_2022_%28€_billion%29.png")

currency

Code
bop_iip6_q %>%
  left_join(currency, by = "currency") %>%
  group_by(currency, Currency) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
currency Currency Nobs
MIO_EUR Million euro 28705456
MIO_NAC Million units of national currency 28607480

bop_item

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

sector10

Code
bop_iip6_q %>%
  left_join(sector10, by = "sector10") %>%
  group_by(sector10, Sector10) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
sector10 Sector10 Nobs
S1 Total economy 15469602
S13 General Government 4532729
S121 Central Bank 4451787
S123 Money market funds 4349450
S122 Deposit-taking corporations except the central bank 4175928
S12T Monetary Financial Institutions (MFI) other than central bank 3961655
S1P Other sectors than MFIs and general government 3929071
S12M Financial corporations other than MFIs 3876627
S1V Non-financial corporations, households and non-profit institutions serving households 3830770
S12O Other financial institutions 1691266
S11 Non-financial corporations 1689260
S12Q Insurance corporations and pension funds 1672390
S1M Households and non-profit institutions serving households 1658844
S124 Non-MMF investment funds 1552466
S1Z Sectors other than deposit-taking corporations and general government 168665
S12R Other financial corporations 133280
S1X Monetary authorities 118688
S12K Monetary financial institutions (MFI) 46588
S1A Affiliates 1290
S1N Not sectorised 1290
S1W Other sectors than General Government 1290

sectpart

Code
bop_iip6_q %>%
  left_join(sectpart, by = "sectpart") %>%
  group_by(sectpart, Sectpart) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
sectpart Sectpart Nobs
S1 Total economy 54381757
S12M Financial corporations other than MFIs 366893
S123 Money market funds 356871
S121 Central Bank 355616
S122 Deposit-taking corporations except the central bank 344989
S13 General Government 327074
S1V Non-financial corporations, households and non-profit institutions serving households 318864
S12T Monetary Financial Institutions (MFI) other than central bank 227559
S12O Other financial institutions 116434
S11 Non-financial corporations 116388
S12Q Insurance corporations and pension funds 114002
S1M Households and non-profit institutions serving households 113274
S124 Non-MMF investment funds 80100
S1N Not sectorised 66990
S12K Monetary financial institutions (MFI) 26123
S1X Monetary authorities 2

stk_flow

Code
bop_iip6_q %>%
  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
A_LE Assets - positions at the end of period 22106475
L_LE Liabilities - positions at the end of period 14690750
N_LE Net positions at the end of period 14481700
A_K7A Assets - revaluations due to exchange rate changes 972992
A_K7B Assets - revaluations due to other price changes 911500
A_KA Assets - other changes in the volume of Assets/Liabilities 857432
L_K7A Liabilities - revaluations due to exchange rate changes 573833
L_KA Liabilities - other changes in the volume of Assets/Liabilities 542402
N_KA Net other changes in the volume of Assets/Liabilities 516162
L_K7B Liabilities - revaluations due to other price changes 514732
N_K7A Net revaluations due to exchange rate changes 503320
N_K7B Net revaluations due to other price changes 492028
NE_LE Net liabilities (liabilities minus assets) 148854
NI_LE Net FDI inward - positions at the end of period 378
NO_LE Net FDI outward - positions at the end of period 378

partner

Code
bop_iip6_q %>%
  left_join(partner, by = "partner") %>%
  group_by(partner, Partner) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Partner = ifelse(partner == "DE", "Germany", Partner)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Partner)),
         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 .}

geo

Code
bop_iip6_q %>%
  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 .}

Net International Investment Position

Table

Code
bop_iip6_q %>%
  filter(bop_item == "FA__NENDI",
         currency == "MIO_EUR",
         nchar(time) == 6) %>%
  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 .}

France, Germany, Spain, Netherlands, Italy

Code
bop_iip6_q %>%
  filter(bop_item == "FA__NENDI",
         currency == "MIO_EUR",
         geo %in% c("FR", "DE", "EA19", "ES", "NL", "IT"),
         nchar(time) == 6) %>%
  quarter_to_date %>%
  mutate(values = values/1000) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net international investment position") +
  scale_y_continuous(breaks = seq(-3000, 3000, 250),
                     labels = dollar_format(suffix = " Bn€", prefix = "", accuracy = 1))

France, Germany, Europe

Code
bop_iip6_q %>%
  filter(bop_item == "FA__NENDI",
         currency == "MIO_EUR",
         geo %in% c("FR", "DE", "EA20"),
         nchar(time) == 6) %>%
  quarter_to_date %>%
  mutate(values = values/1000) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net international investment position") +
  scale_y_continuous(breaks = seq(-3000, 3000, 250),
                     labels = dollar_format(suffix = " Bn€", prefix = "", accuracy = 1))

Spain, Netherlands, Italy

Code
bop_iip6_q %>%
  filter(bop_item == "FA__NENDI",
         currency == "MIO_EUR",
         geo %in% c("ES", "NL", "IT"),
         nchar(time) == 6) %>%
  quarter_to_date %>%
  mutate(values = values/1000) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) + theme_minimal() +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net international investment position") +
  scale_y_continuous(breaks = seq(-3000, 3000, 250),
                     labels = dollar_format(suffix = " Bn€", prefix = "", accuracy = 1))