International investment position
Data - OECD
Info
Last observation: Quarterly: 2026-Q1 (N = 4,187) · Annual: 2025 (N = 4,251)
Last update of .parquet: 13 aoû 2026, 02:53. Last compile: 13 aoû 2026, 03:43
Structure
Euro area
All
Code
IIP |>
filter(REF_AREA %in% c("EA20")) |>
group_by(MEASURE, Measure) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
print_table_conditional()| MEASURE | Measure | Nobs |
|---|---|---|
| FA | Financial account | 1512 |
| FA_D_F | Direct investment | 432 |
| FA_D_F5 | Direct investment; equity and investment fund shares/units | 432 |
| FA_D_FL | Direct investment; debt instruments (FDI) | 432 |
| FA_F_F7 | Financial derivatives | 432 |
| FA_O_F | Other investment | 432 |
| FA_O_F12 | Other investment; SDRs | 432 |
| FA_O_F2 | Other investment; currency and deposits | 432 |
| FA_O_F4 | Other investment; loans | 432 |
| FA_O_F519 | Other investment; other equity | 432 |
| FA_O_F6 | Other investment; insurance, pension and standardised guarantee schemes | 432 |
| FA_O_F81 | Other investment; trade credits and advances | 432 |
| FA_O_F89 | Other investment; other accounts receivable/payable, excluding trade credits and advances | 432 |
| FA_P_F | Portfolio investment | 432 |
| FA_P_F3 | Portfolio investment; debt securities | 432 |
| FA_P_F5 | Portfolio investment; equity and investment fund shares/units | 432 |
| FA_R_F_S121 | Reserve assets | 288 |
FA
Code
IIP |>
filter(REF_AREA %in% c("EA20"),
MEASURE == "FA") |>
group_by(FS_ENTRY, `Flow or stock entry`) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
print_table_conditional()| FS_ENTRY | Flow or stock entry | Nobs |
|---|---|---|
| LE | Closing balance sheet/Positions/Stocks | 432 |
| K | Changes in positions other than transactions | 270 |
| K7A | Revaluations due to exchange rate changes | 270 |
| K7B | Revaluations due to other price changes | 270 |
| KA | Other changes in the volume of Assets/Liabilities | 270 |
FA, LE
Code
IIP |>
filter(REF_AREA %in% c("EA20"),
MEASURE == "FA",
FS_ENTRY == "LE") |>
group_by(FS_ENTRY, `Flow or stock entry`) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
print_table_conditional()| FS_ENTRY | Flow or stock entry | Nobs |
|---|---|---|
| LE | Closing balance sheet/Positions/Stocks | 432 |
International investment position
EU vs. US
Code
IIP |>
filter(ACCOUNTING_ENTRY == "N",
REF_AREA %in% c("USA", "EA20"),
FS_ENTRY == "LE",
MEASURE == "FA",
FREQ == "A",
UNIT_MEASURE == "XDC") |>
year_to_date() |>
arrange(desc(date)) |>
arrange(desc(date)) |>
mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(REF_AREA == "USA", color2, color)) |>
#filter(date <= as.Date("2021-01-01")) %>%
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("IIP, % of GDP") +
scale_color_identity() + add_flags +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black")
EU vs. US, France, Italy
Code
IIP |>
filter(ACCOUNTING_ENTRY == "N",
REF_AREA %in% c("EA20", "FRA", "ITA", "GRC"),
FS_ENTRY == "LE",
MEASURE == "FA",
FREQ == "A",
UNIT_MEASURE == "XDC") |>
year_to_date() |>
arrange(desc(date)) |>
mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(REF_AREA == "USA", color2, color)) |>
#filter(date <= as.Date("2021-01-01")) %>%
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("IIP, % of GDP") +
scale_color_identity() + add_flags +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(-10^7, 10^7, 2*10^5),
labels = scales::dollar_format(pre = "", su = "")) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black")
EU vs. US, France, Italy, UK
Code
IIP |>
filter(ACCOUNTING_ENTRY == "N",
REF_AREA %in% c("EA20", "FRA", "ITA", "GRC", "GBR"),
FS_ENTRY == "LE",
MEASURE == "FA",
FREQ == "A",
UNIT_MEASURE == "XDC") |>
year_to_date() |>
arrange(desc(date)) %>%
select_if(~ n_distinct(.) > 1) |>
arrange(desc(date)) |>
mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(REF_AREA == "USA", color2, color)) |>
#filter(date <= as.Date("2021-01-01")) %>%
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("IIP, % of GDP") +
scale_color_identity() + add_flags +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(-10^7, 10^7, 2*10^5),
labels = scales::dollar_format(pre = "", su = "")) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black")
EU vs. US, France, Italy, Spain
Code
IIP |>
filter(ACCOUNTING_ENTRY == "N",
REF_AREA %in% c("EA20", "FRA", "ITA", "GRC", "ESP"),
FS_ENTRY == "LE",
MEASURE == "FA",
FREQ == "A",
UNIT_MEASURE == "XDC") |>
year_to_date() |>
arrange(desc(date)) %>%
select_if(~ n_distinct(.) > 1) |>
arrange(desc(date)) |>
mutate(Ref_area = ifelse(REF_AREA == "EA20", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(color = ifelse(REF_AREA == "USA", color2, color)) |>
#filter(date <= as.Date("2021-01-01")) %>%
ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) +
theme_minimal() + xlab("") + ylab("IIP, % of GDP") +
scale_color_identity() + add_flags +
scale_y_continuous(breaks = seq(-10^7, 10^7, 2*10^5),
labels = scales::dollar_format(pre = "", su = "")) +
scale_x_date(breaks = seq(1920, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black")