Real Effective Exchange Rates, Daily
Data - BIS
Info
Data on xrates
| source | dataset | Title | Updated |
|---|---|---|---|
| bis | EER_D | Real Effective Exchange Rates, Daily | 2026-07-25 |
| bdf | EXR | Exchange Rate | 2026-08-10 |
| bis | EER | Real Effective Exchange Rates, Monthly | 2026-07-25 |
| bis | XRU | Exchange Rates | 2026-07-25 |
| bis | XRU_D | Exchange Rates, Daily | 2026-07-25 |
| ecb | EXR | Exchange Rates | 2026-08-13 |
| eurostat | ert_bil_eur_d | Euro/ECU exchange rates - daily data | 2026-08-14 |
| eurostat | ert_h_eur_d | Former euro area national currencies vs. euro/ECU - daily data | 2026-08-02 |
| fred | xrates | Exchange Rates | 2026-08-13 |
| gfd | xrates | Exchange Rates | 2026-08-01 |
| oecd | REFSERIES_MSIT | Exchange rates | 2026-08-02 |
| oecd | SNA_TABLE4 | PPPs and exchange rates | 2026-08-02 |
| wdi | PA.NUS.FCRF | Official exchange rate (LCU per USD, period average) | 2026-08-13 |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2026-08-14 |
Last
| date | Nobs |
|---|---|
| 2024-01-29 | 90 |
iso3c, iso2c, Reference area
Code
EER_D |>
arrange(iso3c, date) |>
group_by(iso3c, iso2c, `Reference area`) |>
summarise(Nobs = n(),
start = first(date),
end = last(date)) |>
arrange(-Nobs) |>
mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}EER_TYPE
Code
EER_D |>
group_by(EER_TYPE, Type) |>
summarise(Nobs = n()) |>
arrange(-Nobs) %>%
{if (is_html_output()) print_table(.) else .}| EER_TYPE | Type | Nobs |
|---|---|---|
| N | Nominal | 737738 |
EER_BASKET
Code
EER_D |>
group_by(EER_BASKET, Basket) |>
summarise(Nobs = n()) |>
arrange(-Nobs) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}Real Exchange rates (Germany, France, United States)
Code
EER_D |>
filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP"),
EER_BASKET == "N",
EER_TYPE == "N") |>
left_join(colors, by = c("Reference area" = "country")) |>
ggplot() +
geom_line(aes(x = date, y = value, color = color)) +
theme_minimal() + xlab("") + ylab("Exchange Rate ($1 = ? National Currency)") +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 200, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
scale_color_identity() + add_flags +
theme(legend.position = c(0.7, 0.90),
legend.title = element_blank(),
legend.direction = "horizontal")
Exchange Rates
United States
Code
EER_D |>
filter(iso3c %in% c("USA")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.7, 0.90),
legend.title = element_blank())
Japan
Code
EER_D |>
filter(iso3c %in% c("JPN")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.7, 0.25),
legend.title = element_blank())
Europe
Code
EER_D |>
filter(iso2c %in% c("XM")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.2, 0.15),
legend.title = element_blank())
China
Code
EER_D |>
filter(iso3c %in% c("CHN")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.2, 0.9),
legend.title = element_blank())
Denmark
Code
EER_D |>
filter(iso3c %in% c("DNK")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
Switzerland
Code
EER_D |>
filter(iso3c %in% c("CHE")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
Germany
Code
EER_D |>
filter(iso3c %in% c("DEU")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
France
Code
EER_D |>
filter(iso3c %in% c("FRA")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() +
geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
Italy
Code
EER_D |>
filter(iso3c %in% c("ITA")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() +
geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.8),
legend.title = element_blank())
United Kingdom
Code
EER_D |>
filter(iso3c %in% c("GBR")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() +
geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.8),
legend.title = element_blank())
Canada
Code
EER_D |>
filter(iso3c %in% c("CAN")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() +
geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.2, 0.2),
legend.title = element_blank())
Sweden
Code
EER_D |>
filter(iso3c %in% c("SWE")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() +
geom_line(aes(x = date, y = value, color = variable)) +
theme_minimal() + xlab("") + ylab("") +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1940, 2100, 5) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.2, 0.2),
legend.title = element_blank())
1997 Asian Financial Crisis
Philippines, Singapore, Indonesia
Code
EER_D |>
filter(iso3c %in% c("IDN", "SGP", "PHL"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
group_by(iso3c) |>
mutate(value = 100*value / value[date == as.Date("1997-01-03")]) |>
left_join(colors, by = c("Reference area" = "country")) |>
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = value, color = color) +
xlab("") + ylab("") +
scale_color_identity() + add_flags +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(50, 1000, 50),
labels = dollar_format(a = 1, p = "")) +
theme(legend.position = c(0.2, 0.80),
legend.title = element_blank())
Thailand, Malaysia, South Korea
Code
EER_D |>
filter(iso3c %in% c("THA", "MYS", "KOR"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
group_by(iso3c) |>
mutate(value = 100*value / value[date == as.Date("1997-01-03")]) |>
left_join(colors, by = c("Reference area" = "country")) |>
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = value, color = color) +
xlab("") + ylab("") +
scale_color_identity() + add_flags +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(10, 300, 10),
labels = dollar_format(a = 1, p = "")) +
theme(legend.position = c(0.2, 0.80),
legend.title = element_blank())
Thailand Baht
Code
EER_D |>
filter(iso3c %in% c("THA"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
xlab("") + ylab("") + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
Malaysia Ringgit
Code
EER_D |>
filter(iso3c %in% c("MYS"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
xlab("") + ylab("") + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
South Korea Won
Code
EER_D |>
filter(iso3c %in% c("KOR"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
xlab("") + ylab("") + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
Philippine peso
Code
EER_D |>
filter(iso3c %in% c("PHL"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
xlab("") + ylab("") + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
Singapore Dollar
Code
EER_D |>
filter(iso3c %in% c("SGP"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
xlab("") + ylab("") + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 2),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank())
Indonesia peso
Code
EER_D |>
filter(iso3c %in% c("IDN"),
date >= as.Date("1992-01-01"),
date <= as.Date("2002-12-31")) |>
mutate(variable = paste0(Type, ", ", Basket)) |>
ggplot() + geom_line(aes(x = date, y = value, color = variable)) +
xlab("") + ylab("") + theme_minimal() +
scale_color_manual(values = viridis(5)[1:4]) +
scale_x_date(breaks = seq(1800, 2100, 1) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_log10(breaks = seq(0, 600, 10),
labels = dollar_format(accuracy = 1, prefix = "")) +
theme(legend.position = c(0.8, 0.8),
legend.title = element_blank())