Euro/ECU exchange rates - daily data

Data - Eurostat

Info

source dataset .html .RData
eurostat ert_bil_eur_d 2024-12-16 2024-12-16

Data on xrates

source dataset .html .RData
bdf EXR 2024-12-13 2024-12-13
bis EER 2024-12-16 2024-12-16
bis EER_D 2024-11-18 2024-05-10
bis XRU 2024-12-16 2024-12-16
bis XRU_D 2024-12-16 2024-12-16
ecb EXR 2024-12-16 2024-12-16
eurostat ert_bil_eur_d 2024-12-16 2024-12-16
eurostat ert_h_eur_d 2024-12-16 2024-12-16
fred xrates 2024-12-16 2024-12-16
gfd xrates 2024-06-20 2021-01-08
oecd REFSERIES_MSIT 2024-09-15 2024-12-16
oecd SNA_TABLE4 2024-09-15 2024-12-16
wdi PA.NUS.FCRF 2024-12-16 2024-12-16

LAST_COMPILE

LAST_COMPILE
2024-12-16

Last

Code
ert_bil_eur_d %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2024-12-09 31

currency

Code
ert_bil_eur_d %>%
  left_join(currency, by = "currency") %>%
  group_by(currency, Currency) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()

USD, CHF, GBP

All

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF", "GBP")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland",
                         currency == "GBP" ~ "United Kingdom")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.5),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

10 years

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF", "GBP")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(10)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland",
                         currency == "GBP" ~ "United Kingdom")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = "6 months",
               labels = date_format("%b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.05),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

2 years

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF", "GBP")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(2)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland",
                         currency == "GBP" ~ "United Kingdom")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = "1 month",
               labels = date_format("%d %b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.05),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

1 year

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF", "GBP")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(1)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland",
                         currency == "GBP" ~ "United Kingdom")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = "1 month",
               labels = date_format("%d %b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.05),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

1 month

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF", "GBP")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - months(1)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland",
                         currency == "GBP" ~ "United Kingdom")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = "1 day",
               labels = date_format("%d %b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.02),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

NOK, CHF

All

Code
ert_bil_eur_d %>%
  filter(currency %in% c("NOK", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  mutate(Geo = case_when(currency == "NOK" ~ "Norway",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.5),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

10 years

Code
ert_bil_eur_d %>%
  filter(currency %in% c("NOK", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(10)) %>%
  mutate(Geo = case_when(currency == "NOK" ~ "Norway",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(currency) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 1), "-01-01")),
               labels = date_format("%Y")) +
  #theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.05),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

2 years

Code
ert_bil_eur_d %>%
  filter(currency %in% c("NOK", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(2)) %>%
  mutate(Geo = case_when(currency == "NOK" ~ "Norway",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(Geo == "Norway", color2, color)) %>%
  group_by(currency) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(10, 400, 5)) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

USD, CHF

All

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.5),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

2013-2017

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= as.Date("2013-01-01"),
         date <= as.Date("2018-01-01")) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 1), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.05),
                     labels = dollar_format(p = "", su = "/€", acc = 0.01)) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

2014-2015

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= as.Date("2014-07-01"),
         date <= as.Date("2015-07-01")) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.05),
                     labels = dollar_format(p = "", su = "/€", acc = 0.01)) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

10 years

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(10)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 1), "-01-01")),
               labels = date_format("%Y")) +
  #theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.05),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

2 years

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(2)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = "1 month",
               labels = date_format("%d %b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.01),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

1 year

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - years(1)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = "1 month",
               labels = date_format("%d %b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.01),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))

1 month

Code
ert_bil_eur_d %>%
  filter(currency %in% c("USD", "CHF")) %>%
  left_join(currency, by = "currency") %>%
  day_to_date %>%
  filter(date >= Sys.Date() - months(1)) %>%
  mutate(Geo = case_when(currency == "USD" ~ "United States",
                         currency == "CHF" ~ "Switzerland")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_2flags +
  scale_x_date(breaks = "1 day",
               labels = date_format("%d %b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 10, 0.01),
                     labels = dollar_format(p = "", su = "/€")) +
  geom_label(data = . %>% filter(max(date) == date),
             aes(x = date, y = values, label = round(values, 3), color = color))