Foreign Exchange Reserves - RA_T
Data - Banque de France
Info
Last observation: Mensuel: 31 jul 2026 (N = 55,338)
First observation: Mensuel: 31 jan 2012 (N = 55,338)
Last data update: 11 aoû 2026, 00:06. Last compile: 13 aoû 2026, 01:16
Structure
Composition of Banque de France Foreign Exchange Reserves
Official reserve assets of the Banque de France (IMF data template on international reserves), by component, in millions of euros.
Since 2012
Code
RA_T |>
filter(variable %in% c("RA_T.M.N.FR.W1.S121.S1.LE.A.FA.R.F11._Z.EUR.XAU.M.N.ALL",
"RA_T.M.N.FR.W1.S121.S1.LE.A.FA.R.FR3._Z.EUR.X1._X.N.ALL",
"RA_T.M.N.FR.W1.S121.S1N.LE.A.FA.R.F12.T.EUR.XDR.M.N.ALL",
"RA_T.M.N.FR.1C.S121.S121.LE.A.FA.R.FK._Z.EUR.XDR.M.N.ALL")) |>
mutate(Component = case_when(
INSTR_ASSET == "F11" ~ "Monetary gold",
INSTR_ASSET == "FR3" ~ "Foreign exchange reserves",
INSTR_ASSET == "F12" ~ "Special drawing rights",
INSTR_ASSET == "FK" ~ "Reserve position in the IMF")) |>
na.omit() |>
ggplot() + geom_line(aes(x = date, y = value/1000, color = Component)) +
xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = "1 year",
labels = date_format("%Y")) +
scale_y_log10(breaks = c(5, 10, 20, 50, 100, 200, 400),
labels = dollar_format(accuracy = 1, prefix = "", suffix = " €bn")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank(),
legend.direction = "vertical")
Total Reserve Assets
Code
RA_T |>
filter(variable %in% c("RA_T.M.N.FR.W1.S121.S1.LE.A.FA.R.F11._Z.EUR.XAU.M.N.ALL",
"RA_T.M.N.FR.W1.S121.S1.LE.A.FA.R.FR3._Z.EUR.X1._X.N.ALL",
"RA_T.M.N.FR.W1.S121.S1N.LE.A.FA.R.F12.T.EUR.XDR.M.N.ALL",
"RA_T.M.N.FR.1C.S121.S121.LE.A.FA.R.FK._Z.EUR.XDR.M.N.ALL")) |>
na.omit() |>
group_by(date) |>
summarise(value = sum(value)) |>
ggplot() + geom_line(aes(x = date, y = value/1000), color = "#002395") +
xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = "1 year",
labels = date_format("%Y")) +
scale_y_continuous(breaks = seq(0, 600, 50),
labels = dollar_format(accuracy = 1, prefix = "", suffix = " €bn"))
Latest Data Point
Code
RA_T |>
filter(variable %in% c("RA_T.M.N.FR.W1.S121.S1.LE.A.FA.R.F11._Z.EUR.XAU.M.N.ALL",
"RA_T.M.N.FR.W1.S121.S1.LE.A.FA.R.FR3._Z.EUR.X1._X.N.ALL",
"RA_T.M.N.FR.W1.S121.S1N.LE.A.FA.R.F12.T.EUR.XDR.M.N.ALL",
"RA_T.M.N.FR.1C.S121.S121.LE.A.FA.R.FK._Z.EUR.XDR.M.N.ALL")) |>
mutate(Component = case_when(
INSTR_ASSET == "F11" ~ "Monetary gold",
INSTR_ASSET == "FR3" ~ "Foreign exchange reserves",
INSTR_ASSET == "F12" ~ "Special drawing rights",
INSTR_ASSET == "FK" ~ "Reserve position in the IMF")) |>
na.omit() |>
group_by(Component) |>
filter(date == max(date)) |>
ungroup() |>
mutate(`€bn` = round(value/1000, 1)) |>
select(Component, date, `€bn`) |>
arrange(desc(`€bn`)) |>
print_table_conditional()| Component | date | €bn |
|---|---|---|
| Monetary gold | 2026-07-31 | 276.8 |
| Special drawing rights | 2026-07-31 | 33.1 |
| Reserve position in the IMF | 2026-07-31 | 6.3 |