Foreign Exchange Reserves - RA_T

Data - Banque de France

🇫🇷 Version française

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