International investment position - quarterly and annual data (BPM6)

Data - Eurostat

Info

source dataset Title .html .rData
eurostat bop_iip6_q International investment position - quarterly and annual data (BPM6) 2025-10-10 2025-10-10

Data on europe

source dataset Title .html .rData
eurostat bop_gdp6_q Main Balance of Payments and International Investment Position items as share of GDP (BPM6) 2025-10-10 2025-10-10
eurostat nama_10_a10 Gross value added and income by A*10 industry breakdowns 2025-10-10 2025-10-10
eurostat nama_10_a10_e Employment by A*10 industry breakdowns 2025-10-10 2025-10-09
eurostat nama_10_gdp GDP and main components (output, expenditure and income) 2025-10-10 2025-10-09
eurostat nama_10_lp_ulc Labour productivity and unit labour costs 2025-10-10 2025-10-10
eurostat namq_10_a10 Gross value added and income A*10 industry breakdowns 2025-10-10 2025-10-09
eurostat namq_10_a10_e Employment A*10 industry breakdowns 2025-05-24 2025-10-10
eurostat namq_10_gdp GDP and main components (output, expenditure and income) 2025-10-10 2025-10-10
eurostat namq_10_lp_ulc Labour productivity and unit labour costs 2025-10-10 2025-09-26
eurostat namq_10_pc Main GDP aggregates per capita 2025-10-10 2025-10-09
eurostat nasa_10_nf_tr Non-financial transactions 2025-10-10 2025-10-10
eurostat nasq_10_nf_tr Non-financial transactions 2025-10-10 2025-09-26
eurostat tipsii40 Net international investment position - quarterly data, % of GDP 2025-10-10 2025-10-09

Data on macro

source dataset Title .html .rData
eurostat nama_10_a10 Gross value added and income by A*10 industry breakdowns 2025-10-10 2025-10-10
eurostat nama_10_a10_e Employment by A*10 industry breakdowns 2025-10-10 2025-10-09
eurostat nama_10_gdp GDP and main components (output, expenditure and income) 2025-10-10 2025-10-09
eurostat nama_10_lp_ulc Labour productivity and unit labour costs 2025-10-10 2025-10-10
eurostat namq_10_a10 Gross value added and income A*10 industry breakdowns 2025-10-10 2025-10-09
eurostat namq_10_a10_e Employment A*10 industry breakdowns 2025-05-24 2025-10-10
eurostat namq_10_gdp GDP and main components (output, expenditure and income) 2025-10-10 2025-10-10
eurostat namq_10_lp_ulc Labour productivity and unit labour costs 2025-10-10 2025-09-26
eurostat namq_10_pc Main GDP aggregates per capita 2025-10-10 2025-10-09
eurostat nasa_10_nf_tr Non-financial transactions 2025-10-10 2025-10-10
eurostat nasq_10_nf_tr Non-financial transactions 2025-10-10 2025-09-26
fred gdp Gross Domestic Product 2025-10-09 2025-10-09
oecd QNA Quarterly National Accounts 2024-06-06 2025-05-24
oecd SNA_TABLE1 Gross domestic product (GDP) 2025-09-29 2025-05-24
oecd SNA_TABLE14A Non-financial accounts by sectors 2025-09-29 2024-06-30
oecd SNA_TABLE2 Disposable income and net lending - net borrowing 2024-07-01 2024-04-11
oecd SNA_TABLE6A Value added and its components by activity, ISIC rev4 2024-07-01 2024-06-30
wdi NE.RSB.GNFS.ZS External balance on goods and services (% of GDP) 2025-10-10 2025-09-27
wdi NY.GDP.MKTP.CD GDP (current USD) 2025-10-10 2025-09-27
wdi NY.GDP.MKTP.PP.CD GDP, PPP (current international D) 2025-10-10 2025-09-27
wdi NY.GDP.PCAP.CD GDP per capita (current USD) 2025-10-10 2025-09-27
wdi NY.GDP.PCAP.KD GDP per capita (constant 2015 USD) 2025-10-10 2025-09-27
wdi NY.GDP.PCAP.PP.CD GDP per capita, PPP (current international D) 2025-10-10 2025-09-27
wdi NY.GDP.PCAP.PP.KD GDP per capita, PPP (constant 2011 international D) 2025-10-10 2025-09-27

Last

Code
bop_iip6_q %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(3) %>%
  print_table_conditional()
time Nobs
2025Q2 466378
2025Q1 482691
2024Q4 483072

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 29234477
MIO_NAC Million units of national currency 29132796

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 15769116
S13 General Government 4604453
S121 Central Bank 4517377
S123 Money market funds 4411274
S122 Deposit-taking corporations except the central bank 4242139
S12T Monetary Financial Institutions (MFI) other than central bank 4033019
S1P Other sectors than MFIs and general government 3996499
S12M Financial corporations other than MFIs 3932383
S1V Non-financial corporations, households and non-profit institutions serving households 3884872
S12O Other financial institutions 1739512
S11 Non-financial corporations 1737482
S12Q Insurance corporations and pension funds 1720620
S1M Households and non-profit institutions serving households 1706638
S124 Non-MMF investment funds 1595800
S1Z Sectors other than deposit-taking corporations and general government 170283
S12R Other financial corporations 134020
S1X Monetary authorities 119272
S12K Monetary financial institutions (MFI) 48644
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 55381466
S12M Financial corporations other than MFIs 372297
S121 Central Bank 361058
S123 Money market funds 360739
S122 Deposit-taking corporations except the central bank 349769
S13 General Government 331956
S1V Non-financial corporations, households and non-profit institutions serving households 323374
S12T Monetary Financial Institutions (MFI) other than central bank 230803
S12O Other financial institutions 120628
S11 Non-financial corporations 120506
S12Q Insurance corporations and pension funds 118328
S1M Households and non-profit institutions serving households 118096
S124 Non-MMF investment funds 83074
S1N Not sectorised 68316
S12K Monetary financial institutions (MFI) 26861
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 22449505
L_LE Liabilities - positions at the end of period 14925524
N_LE Net positions at the end of period 14710852
A_K7A Assets - revaluations due to exchange rate changes 1007462
A_K7B Assets - revaluations due to other price changes 946386
A_KA Assets - other changes in the volume of Assets/Liabilities 898338
L_K7A Liabilities - revaluations due to exchange rate changes 594161
L_KA Liabilities - other changes in the volume of Assets/Liabilities 566198
N_KA Net other changes in the volume of Assets/Liabilities 541860
L_K7B Liabilities - revaluations due to other price changes 534992
N_K7A Net revaluations due to exchange rate changes 523330
N_K7B Net revaluations due to other price changes 513962
NE_LE Net liabilities (liabilities minus assets) 153947
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))