Weekly Oil Bulletin

Data - ec

Info

source dataset .html .RData

ec

WOB

2024-06-19 2024-01-03

Data on energy

source dataset Title Download Compile
ec WOB Weekly Oil Bulletin 2024-01-03 [2024-06-19]
eurostat ei_isen_m Energy - monthly data 2024-06-08 [2024-06-18]
eurostat nrg_bal_c Complete energy balances 2024-06-08 [2023-12-31]
eurostat nrg_pc_202 Gas prices for household consumers - bi-annual data (from 2007 onwards) 2024-06-08 [2024-06-19]
eurostat nrg_pc_203 Gas prices for non-household consumers - bi-annual data (from 2007 onwards) 2024-06-07 [2023-06-11]
eurostat nrg_pc_203_c Gas prices components for non-household consumers - annual data 2024-06-08 [2024-06-19]
eurostat nrg_pc_203_h Gas prices for industrial consumers - bi-annual data (until 2007) 2024-06-18 [2024-06-19]
eurostat nrg_pc_203_v Non-household consumption volumes of gas by consumption bands 2024-06-08 [2024-06-19]
eurostat nrg_pc_204 Electricity prices for household consumers - bi-annual data (from 2007 onwards) 2024-06-18 [2024-06-19]
eurostat nrg_pc_205 Electricity prices for non-household consumers - bi-annual data (from 2007 onwards) 2024-06-08 [2023-06-11]
fred energy Energy 2024-06-07 [2024-06-18]
iea world_energy_balances_highlights_2022 World Energy Balances Highlights (2022 edition) 2023-04-24 [2024-06-18]
wb CMO World Bank Commodity Price Data (The Pink Sheet) 2024-05-23 [2024-06-19]
wdi EG.GDP.PUSE.KO.PP.KD GDP per unit of energy use (constant 2017 PPP $ per kg of oil equivalent) 2024-04-14 [2024-06-19]
wdi EG.USE.PCAP.KG.OE Energy use (kg of oil equivalent per capita) 2024-04-14 [2024-06-19]
yahoo energy Energy 2024-05-27 [2024-06-18]

LAST_COMPILE

LAST_COMPILE
2024-06-20

Last

Code
WOB %>%
  group_by(date) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(date)) %>%
  head(2) %>%
  print_table_conditional()
date Nobs
2024-01-01 14
2023-12-25 246

Product Name

Code
WOB %>%
  group_by(`Product Name`, `Prices Unit`) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
Product Name Prices Unit Nobs
Automotive gas oil 1000L 14796
Euro-super 95 1000L 14796
Heating gas oil 1000L 14198
LPG - motor fuel 1000L 10250
Fuel oil - Sulphur less than 1% t 9842
Fuel oil - Sulphur higher than 1% t 1620
Lead substitute petrol 1000L 538
NA NA 454
Product Name Prices Unit 414
Standard Grade Burning Oil UK 1000L 234

tax

Code
WOB %>%
  group_by(tax) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
tax Nobs
Weekly price with taxes 33571
Weekly price without taxes 33571

Geo

Code
WOB %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(gsub(" ", "-", Geo))),
         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 .}

France, Germany, Spain, Italy

April 2020-

Index

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain", "Italy")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2020-04-01")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo, tax) %>%
  mutate(values = 100*values/values[date == as.Date("2022-02-21")]) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95 (100 = February 21, 2022)") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "3 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_log10(breaks = seq(10, 300, 10)) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Value

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain", "Italy")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2020-04-01")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "3 month"),
               labels = scales::date_format("%b %y")) + add_8flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.3, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Since War in Ukraine

Index

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain", "Italy")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-02-21")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo, tax) %>%
  mutate(values = 100*values/values[date == as.Date("2022-02-21")]) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95 (100 = February 21, 2022)") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_log10(breaks = seq(10, 300, 10)) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Value

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain", "Italy")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-02-21")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_8flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

France Italy, Germany, Spain

3 months

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain", "Italy"),
         tax == "Weekly price with taxes") %>%
  mutate(values = values/1000) %>%
  filter(date >= Sys.Date() - months(6)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Automotive gas oil") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2018-09-10"), Sys.Date(), "1 week"),
               labels = scales::date_format("%d %b %y")) + add_4flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.05),
                     labels = scales::dollar_format(a = .01, pre = "", su = " €/L")) +
  theme(legend.position = c(0.3, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

France, Germany, Spain

Automotive gas oil

Since February 21, 2022 (War in Ukraine)

Value

Code
WOB %>%
  filter(`Product Name` == "Automotive gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-02-21")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Automotive gas oil") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Index

Code
WOB %>%
  filter(`Product Name` == "Automotive gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-02-21")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo, tax) %>%
  mutate(values = 100*values/values[date == as.Date("2022-02-21")]) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Automotive gas oil") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(100, 300, 10)) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

2022-

Code
WOB %>%
  filter(`Product Name` == "Automotive gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-01-01")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Automotive gas oil") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

1 year

Code
WOB %>%
  filter(`Product Name` == "Automotive gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= Sys.Date() - years(1)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Automotive gas oil") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

3 months

Code
WOB %>%
  filter(`Product Name` == "Automotive gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= Sys.Date() - months(3)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Automotive gas oil") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2018-09-10"), Sys.Date(), "1 week"),
               labels = scales::date_format("%d %b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.3, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

All

Code
WOB %>%
  filter(`Product Name` == "Automotive gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Automotive gas oil") + scale_color_identity() + 
  scale_x_date(breaks = seq.Date(as.Date("2015-12-01"), as.Date("2024-01-01"), "6 months"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.3, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Heating gas oil

2022-

Code
WOB %>%
  filter(`Product Name` == "Heating gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-01-01")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Heating gas oil") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

All

Code
WOB %>%
  filter(`Product Name` == "Heating gas oil",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Heating gas oil") + scale_color_identity() + 
  scale_x_date(breaks = seq.Date(as.Date("2015-12-01"), as.Date("2024-01-01"), "6 months"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.3, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Euro-super 95

Since War in Ukraine

Value

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-02-21")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

Index

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-02-21")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo, tax) %>%
  mutate(values = 100*values/values[date == as.Date("2022-02-21")]) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(10, 300, 10)) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

2022-

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("2022-01-01")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95") + scale_color_identity() +
  scale_x_date(breaks = seq.Date(as.Date("2019-11-01"), as.Date("2024-01-01"), "1 month"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.7, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())

All

Code
WOB %>%
  filter(`Product Name` == "Euro-super 95",
         Geo %in% c("France", "Germany", "Spain")) %>%
  mutate(values = values/1000) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot() + geom_line(aes(x = date, y = values, color = color, linetype = tax)) + 
  theme_minimal() + xlab("") + ylab("Euro-super 95") + scale_color_identity() + 
  scale_x_date(breaks = seq.Date(as.Date("2015-12-01"), as.Date("2024-01-01"), "6 months"),
               labels = scales::date_format("%b %y")) + add_6flags +
  scale_y_continuous(breaks = seq(-100, 100, 0.1),
                     labels = scales::dollar_format(a = .1, pre = "", su = " €/L")) +
  theme(legend.position = c(0.3, 0.95),
          axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.title = element_blank())