Foreign Exchange Rates - H.10 - H10

Data - FRB

Info

Last observation: 9: 2026-08-07 (N = 26) · 129: 2026-07-31 (N = 26) · 203: 2025-12-31 (N = 26)

First observation: 9: 1971-01-04 (N = 10) · 129: 1971-01-31 (N = 11) · 203: 1971-12-31 (N = 11)

Last data update: 16 aoû 2026, 20:50. Last compile: 17 aoû 2026, 22:20

Nobs - Javascript

Code
H10 |>
  group_by(SERIES_NAME, CURRENCY, FX, UNIT) |>
  summarise(Nobs = n()) |>
  left_join(H10_var$CURRENCY |> rename(CURRENCY = id), by = "CURRENCY") |>
  select(-description.default) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Concepts

Code
H10_struct_concepts %>%
  {if (is_html_output()) print_table(.) else .}
id Name.default
OBS_STATUS Observation status
UNIT_MULT Unit multiplier
TIME_PERIOD Time
UNIT Units
FX Country or Index type
OBS_VALUE Observation value
FREQ Frequency
SERIES_NAME Series Name
CURRENCY Currency

UNIT_MULT

Code
H10_var$UNIT_MULT %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

OBS_STATUS

Code
H10 |>
  group_by(OBS_STATUS) |>
  summarise(Nobs = n()) |>
  print_table_conditional()
OBS_STATUS Nobs
A 331723
ND 14745

CURRENCY

Code
H10 |>
  group_by(CURRENCY) |>
  summarise(Nobs = n()) |>
  left_join(H10_var$CURRENCY |> rename(CURRENCY = id), by = "CURRENCY") |>
  select(-description.default) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Euro

Daily

All

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.B.EU", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " $/€", prefix = ""))

2010-

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.B.EU", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  filter(TIME_PERIOD >= as.Date("2010-01-01")) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.02),
                labels = dollar_format(accuracy = 0.01, suffix = "/€"))

2015-

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.B.EU", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  filter(TIME_PERIOD >= as.Date("2015-01-01")) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.02),
                labels = dollar_format(accuracy = 0.01, suffix = "/€"))

Monthly

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.M.EU", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " $/€", prefix = ""))

Yearly

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.A.EU", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " $/€", prefix = ""))

Pound

Daily

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.B.UK", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " $/£", prefix = ""))

Monthly

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.M.UK", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " $/£", prefix = ""))

Annual

Code
H10 |>
  filter(SERIES_NAME == "RXI$US_N.A.UK", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " $/£", prefix = ""))

Yen

Daily

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.B.JA", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(40, 500, 20),
                labels = dollar_format(accuracy = 1, suffix = " ¥/$", prefix = ""))

Monthly

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.M.JA", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(40, 500, 20),
                labels = dollar_format(accuracy = 1, suffix = " ¥/$", prefix = ""))

Annual

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.A.JA", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(40, 500, 20),
                labels = dollar_format(accuracy = 1, suffix = " ¥/$", prefix = ""))

Swiss Franc

Daily

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.B.SZ", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.5),
                labels = dollar_format(accuracy = 0.1, suffix = " CHF/$", prefix = ""))

Monthly

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.M.SZ", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.5),
                labels = dollar_format(accuracy = 0.1, suffix = " CHF/$", prefix = ""))

Annual

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.A.SZ", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 6, 0.5),
                labels = dollar_format(accuracy = 0.1, suffix = " CHF/$", prefix = ""))

Danish Krone

Daily

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.B.DN", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(3, 13, 1),
                labels = dollar_format(accuracy = 1, suffix = " kr/$", prefix = ""))

Monthly

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.M.DN", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(3, 13, 1),
                labels = dollar_format(accuracy = 1, suffix = " kr/$", prefix = ""))

Annual

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.A.DN", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(3, 13, 1),
                labels = dollar_format(accuracy = 1, suffix = " kr/$", prefix = ""))

Canadian Dollar

Daily

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.B.CA", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.8, 2, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " C$/$", prefix = ""))

Monthly

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.M.CA", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.8, 2, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " C$/$", prefix = ""))

Annual

Code
H10 |>
  filter(SERIES_NAME == "RXI_N.A.CA", 
         OBS_STATUS == "A") |>
  arrange(TIME_PERIOD) |>
  ggplot() + geom_line(aes(x = TIME_PERIOD, y = OBS_VALUE)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.8, 2, 0.1),
                labels = dollar_format(accuracy = 0.1, suffix = " C$/$", prefix = ""))