CME Energy futures and options overview

13 March 2025 - Written by ML

1. Overview

This report examines traded futures and options in energy on the Chicago Mercantile Exchange (CME). The analysis includes:

  • A tidying of the raw Excel data.
  • Summary statistics for numeric and categorical variables.
  • Contrasts between Futures and Options by product group.
  • Detailed insights such as top records by Open Interest for each combination of product group and cleared type.

2. Data Preparation

The raw data was obtained from the CME website (CME Group Products, 2025) as an excel file and imported into R. There it was tidied for analysis. Key steps include

  • renaming columns,
  • handling missing values, and
  • converting numeric fields.
# Read the Excel file and save the raw data (update file paths as necessary)
data <- read_excel("C:/Users/ml/project/R/DomEnergyR/data/raw/cme/Product_Slate_Export.xlsx", 
                   sheet = 1, skip = 3)  # Skip metadata rows

# Save the raw data for future reference
save(data, file = "C:/Users/ml/project/R/DomEnergyR/data/clean/cme/cme_product_slate_clean_20250313.RData")

# Tidy the data
tidy_data <- data %>%
  rename_with(~ gsub(" ", "_", .)) %>%        # Rename columns to snake_case
  mutate(Floor = na_if(Floor, "-")) %>%         # Replace "-" with NA in Floor
  mutate(across(c(Volume, Open_Interest), ~ parse_number(.)))  # Convert Volume and Open_Interest to numeric

# Display structure and sample rows
str(tidy_data)
## tibble [1,025 × 13] (S3: tbl_df/tbl/data.frame)
##  $ Product_Name : chr [1:1025] "Crude Oil Option" "Crude Oil Futures" "RBOB Gasoline Futures" "WTI Houston (Argus) vs. WTI Trade Month Futures" ...
##  $ Clearing     : chr [1:1025] "LO" "CL" "RB" "HTT" ...
##  $ Globex       : chr [1:1025] "LO" "CL" "RB" "HTT" ...
##  $ Floor        : chr [1:1025] NA NA NA NA ...
##  $ Clearport    : chr [1:1025] "LO" "CL" "RB" "HTT" ...
##  $ Exchange     : chr [1:1025] "NYMEX" "NYMEX" "NYMEX" "NYMEX" ...
##  $ Asset_Class  : chr [1:1025] "Energy" "Energy" "Energy" "Energy" ...
##  $ Product_Group: chr [1:1025] "Crude Oil" "Crude Oil" "Refined Products" "Crude Oil" ...
##  $ Category     : chr [1:1025] "North American" "North American" "North American" "North American" ...
##  $ Sub_Category : chr [1:1025] "Outrights" "Outrights" "Outrights" "Spreads" ...
##  $ Cleared_As   : chr [1:1025] "Options" "Futures" "Futures" "Futures" ...
##  $ Volume       : num [1:1025] 180906 636171 179282 9214 46750 ...
##  $ Open_Interest: num [1:1025] 2294536 1793310 445652 436539 426915 ...
head(tidy_data)
## # A tibble: 6 × 13
##   Product_Name              Clearing Globex Floor Clearport Exchange Asset_Class
##   <chr>                     <chr>    <chr>  <chr> <chr>     <chr>    <chr>      
## 1 Crude Oil Option          LO       LO     <NA>  LO        NYMEX    Energy     
## 2 Crude Oil Futures         CL       CL     <NA>  CL        NYMEX    Energy     
## 3 RBOB Gasoline Futures     RB       RB     <NA>  RB        NYMEX    Energy     
## 4 WTI Houston (Argus) vs. … HTT      HTT    <NA>  HTT       NYMEX    Energy     
## 5 Crude Oil Financial Cale… 7A       B7A    <NA>  7A        NYMEX    Energy     
## 6 WTI Average Price Option  AO       AAO    <NA>  AO        NYMEX    Energy     
## # ℹ 6 more variables: Product_Group <chr>, Category <chr>, Sub_Category <chr>,
## #   Cleared_As <chr>, Volume <dbl>, Open_Interest <dbl>
tail(tidy_data)
## # A tibble: 6 × 13
##   Product_Name              Clearing Globex Floor Clearport Exchange Asset_Class
##   <chr>                     <chr>    <chr>  <chr> <chr>     <chr>    <chr>      
## 1 Southern Green Canyon (A… SCB      SCB    <NA>  SCB       NYMEX    Energy     
## 2 NY Harbor ULSD Financial… FAF      FAF    <NA>  FAF       NYMEX    Energy     
## 3 Natural Gas Monday Weekl… HN4      HN4    <NA>  HN4       NYMEX    Energy     
## 4 Natural Gas Tuesday Week… IN5      IN5    <NA>  IN5       NYMEX    Energy     
## 5 Natural Gas Wednesday We… JN5      JN5    <NA>  JN5       NYMEX    Energy     
## 6 HLS (Argus) vs. WTI Trad… HLT      HLT    <NA>  HLT       NYMEX    Energy     
## # ℹ 6 more variables: Product_Group <chr>, Category <chr>, Sub_Category <chr>,
## #   Cleared_As <chr>, Volume <dbl>, Open_Interest <dbl>

3. Summary Statistics

3.1 Numeric Summary

The following summary provides basic descriptive statistics (Count, Mean, Standard Deviation, Min, Median, and Max) for numeric columns (e.g., Volume, Open Interest).

numeric_summary <- tidy_data %>%
  select(where(is.numeric)) %>%
  summarise(across(everything(), list(
    Count = ~ sum(!is.na(.)),
    Mean = ~ mean(., na.rm = TRUE),
    SD = ~ sd(., na.rm = TRUE),
    Min = ~ min(., na.rm = TRUE),
    Median = ~ median(., na.rm = TRUE),
    Max = ~ max(., na.rm = TRUE)
  ))) %>%
  pivot_longer(
    cols = everything(),
    names_to = c("Variable", "Statistic"),
    names_pattern = "(.*)_(\\w+)$"
  )

# Print numeric summary neatly
numeric_summary %>%
  kable(caption = "Numeric Summary", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Numeric Summary
Variable Statistic value
Volume Count 1025.000
Volume Mean 1437.697
Volume SD 22437.838
Volume Min 0.000
Volume Median 0.000
Volume Max 636171.000
Open_Interest Count 1025.000
Open_Interest Mean 7820.434
Open_Interest SD 96283.071
Open_Interest Min 0.000
Open_Interest Median 0.000
Open_Interest Max 2294536.000

3.2 Categorical Summary

Below is a summary of character columns that shows the number of unique items and the top three most frequent values (with their counts) for each column.

categorical_summary <- map_dfr(names(tidy_data)[sapply(tidy_data, is.character)], function(col_name) {
  freq_table <- tidy_data %>%
    filter(!is.na(.data[[col_name]])) %>%
    count(.data[[col_name]]) %>%
    arrange(desc(n))
  
  top_n <- head(freq_table, 3)
  top_items <- paste(top_n[[col_name]], collapse = ", ")
  top_counts <- paste(top_n$n, collapse = ", ")
  
  tibble(
    Column = col_name,
    Unique_Count = n_distinct(tidy_data[[col_name]]),
    Top_Values = top_items,
    Top_Frequencies = top_counts
  )
})

categorical_summary %>%
  kable(caption = "Categorical Summary", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Categorical Summary
Column Unique_Count Top_Values Top_Frequencies
Product_Name 1024 PJM AEP Dayton Hub Peak 50 MW Calendar-Month LMP Option, 1% Fuel Oil Barges FOB Rdam (Platts) vs. 1% Fuel Oil Cargoes FOB NWE (Platts) BALMO Futures, 1% Fuel Oil Cargoes CIF MED (Platts) BALMO Futures 2, 1, 1
Clearing 1024 EH, 0A, 0B 2, 1, 1
Globex 1025 0A, 0B, 0C 1, 1, 1
Floor 1
Clearport 1024 EH, 0A, 0B 2, 1, 1
Exchange 2 NYMEX, CBOT 1022, 3
Asset_Class 1 Energy 1025
Product_Group 7 Refined Products, Electricity, Crude Oil 354, 295, 208
Category 16 North American, European, PJM 290, 248, 138
Sub_Category 10 Outrights, Spreads, Daily Peak 384, 215, 89
Cleared_As 2 Futures, Options 790, 235

4. Subsets

4.1 CBOT Contracts

The following subset shows records for contracts traded on the CBOT.

cbot_data <- tidy_data %>% 
  filter(Exchange == "CBOT")
cbot_data %>%
  kable(caption = "CBOT Contracts", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
CBOT Contracts
Product_Name Clearing Globex Floor Clearport Exchange Asset_Class Product_Group Category Sub_Category Cleared_As Volume Open_Interest
Ethanol Forward Month Futures 71 FZE NA 71 CBOT Energy Biofuels North American Outrights Futures 0 0
Ethanol Futures EH EH NA EH CBOT Energy Biofuels North American Outrights Futures 0 0
Ethanol Options EH OEH NA EH CBOT Energy Biofuels North American Outrights Options 0 0

4.2 Futures and Options

We also create separate subsets for Futures and Options contracts.

futures_data <- tidy_data %>% filter(Cleared_As == "Futures")
options_data <- tidy_data %>% filter(Cleared_As == "Options")

# Display count for each subset
cat("Number of Futures Records: ", nrow(futures_data), "\n")
## Number of Futures Records:  790
cat("Number of Options Records: ", nrow(options_data), "\n")
## Number of Options Records:  235

5. Index Analysis

5.1 Category and Product

The following analyses contrast the distribution of Categories and Product Groups between Futures and Options.

# Summary for Category by Cleared_As:
category_contrast <- tidy_data %>%
  group_by(Cleared_As, Category) %>%
  summarise(Count = n(), .groups = "drop") %>%
  group_by(Cleared_As) %>%
  mutate(Percent = round(Count / sum(Count) * 100, 1)) %>%
  arrange(Cleared_As, desc(Count))

category_contrast %>%
  kable(caption = "Category Contrast by Cleared_As", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Category Contrast by Cleared_As
Cleared_As Category Count Percent
Futures European 203 25.7
Futures North American 171 21.6
Futures PJM 91 11.5
Futures Asian 68 8.6
Futures ERCOT 33 4.2
Futures NGL 33 4.2
Futures Arb 31 3.9
Futures ISO-NE 31 3.9
Futures NYISO 28 3.5
Futures MISO 27 3.4
Futures Wet 22 2.8
Futures Western Power 16 2.0
Futures Canadian 14 1.8
Futures LPG 12 1.5
Futures Olefin 7 0.9
Futures Resin 3 0.4
Options North American 119 50.6
Options PJM 47 20.0
Options European 45 19.1
Options Asian 8 3.4
Options NGL 5 2.1
Options Arb 3 1.3
Options NYISO 3 1.3
Options ISO-NE 2 0.9
Options MISO 2 0.9
Options Western Power 1 0.4
# Summary for Product_Group by Cleared_As:
product_group_contrast <- tidy_data %>%
  group_by(Cleared_As, Product_Group) %>%
  summarise(Count = n(), .groups = "drop") %>%
  group_by(Cleared_As) %>%
  mutate(Percent = round(Count / sum(Count) * 100, 1)) %>%
  arrange(Cleared_As, desc(Count))

product_group_contrast %>%
  kable(caption = "Product Group Contrast by Cleared_As", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Product Group Contrast by Cleared_As
Cleared_As Product_Group Count Percent
Futures Refined Products 313 39.6
Futures Electricity 240 30.4
Futures Crude Oil 116 14.7
Futures Petrochemicals 59 7.5
Futures Biofuels 27 3.4
Futures Freight 22 2.8
Futures Natural Gas 13 1.6
Options Crude Oil 92 39.1
Options Electricity 55 23.4
Options Refined Products 41 17.4
Options Natural Gas 30 12.8
Options Biofuels 12 5.1
Options Petrochemicals 5 2.1

5.2 Index by Type

We can present product group counts side by side (Futures vs Options) for easy comparison.

product_group_side_by_side <- tidy_data %>%
  group_by(Product_Group, Cleared_As) %>%
  summarise(Count = n(), .groups = "drop") %>%
  pivot_wider(names_from = Cleared_As, values_from = Count, values_fill = 0)

product_group_side_by_side %>%
  kable(caption = "Side-by-Side Product Group Comparison", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Side-by-Side Product Group Comparison
Product_Group Futures Options
Biofuels 27 12
Crude Oil 116 92
Electricity 240 55
Freight 22 0
Natural Gas 13 30
Petrochemicals 59 5
Refined Products 313 41
category_side_by_side <- tidy_data %>%
  group_by(Category, Cleared_As) %>%
  summarise(Count = n(), .groups = "drop") %>%
  pivot_wider(names_from = Cleared_As, values_from = Count, values_fill = 0)

# Print the side-by-side table
category_side_by_side %>%
  kable(caption = "Side-by-Side Category Group Comparison", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Side-by-Side Category Group Comparison
Category Futures Options
Arb 31 3
Asian 68 8
Canadian 14 0
ERCOT 33 0
European 203 45
ISO-NE 31 2
LPG 12 0
MISO 27 2
NGL 33 5
NYISO 28 3
North American 171 119
Olefin 7 0
PJM 91 47
Resin 3 0
Western Power 16 1
Wet 22 0

5.3 Product Group stats

Here we summarize key numeric metrics (Volume and Open Interest) for each product group, split by Futures and Options.

futures_options_stats <- tidy_data %>%
  group_by(Product_Group, Cleared_As) %>%
  summarise(
    Count = n(),
    Mean_Volume = mean(Volume, na.rm = TRUE),
    Median_Volume = median(Volume, na.rm = TRUE),
    SD_Volume = sd(Volume, na.rm = TRUE),
    Max_Volume = max(Volume, na.rm = TRUE),
    Mean_Open_Interest = mean(Open_Interest, na.rm = TRUE),
    Median_Open_Interest = median(Open_Interest, na.rm = TRUE),
    SD_Open_Interest = sd(Open_Interest, na.rm = TRUE),
    Max_Open_Interest = max(Open_Interest, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  arrange(Product_Group, Cleared_As)

futures_options_stats %>%
  kable(caption = "Futures and Options Statistics by Product Group", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Futures and Options Statistics by Product Group
Product_Group Cleared_As Count Mean_Volume Median_Volume SD_Volume Max_Volume Mean_Open_Interest Median_Open_Interest SD_Open_Interest Max_Open_Interest
Biofuels Futures 27 145.333333 0 707.55043 3680 1533.62963 0 6455.98072 33107
Biofuels Options 12 0.000000 0 0.00000 0 378.66667 0 1311.73981 4544
Crude Oil Futures 116 7068.051724 0 59986.94723 636171 26123.50862 0 174113.30243 1793310
Crude Oil Options 92 2718.510870 0 19420.43170 180906 38806.32609 0 245822.24983 2294536
Electricity Futures 240 0.000000 0 0.00000 0 0.00000 0 0.00000 0
Electricity Options 55 0.000000 0 0.00000 0 0.00000 0 0.00000 0
Freight Futures 22 0.000000 0 0.00000 0 19.18182 0 81.48306 382
Natural Gas Futures 13 2042.230769 0 5245.99473 17277 606.00000 0 1414.44972 4840
Natural Gas Options 30 6.733333 0 23.51072 105 15.20000 0 52.75735 271
Petrochemicals Futures 59 190.474576 0 809.12195 5766 6246.62712 0 22928.61114 156574
Petrochemicals Options 5 0.000000 0 0.00000 0 99.80000 0 223.15958 499
Refined Products Futures 313 1146.418530 0 14117.68451 179282 3122.03834 0 31793.23006 445652
Refined Products Options 41 70.731707 0 452.90391 2900 353.17073 0 2256.59859 14450

5.4 Open Interest top 3

Finally, we extract the top three records (by Open Interest) for each product group and cleared type.

top3_by_group <- tidy_data %>%
  group_by(Product_Group, Cleared_As) %>%
  slice_max(Open_Interest, n = 3, with_ties = FALSE) %>%
  ungroup() %>%
  arrange(Product_Group, Cleared_As, desc(Open_Interest))

top3_by_group %>%
  kable(caption = "Top 3 Records by Open Interest for Each Product Group and Cleared_As", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"), full_width = FALSE)
Top 3 Records by Open Interest for Each Product Group and Cleared_As
Product_Name Clearing Globex Floor Clearport Exchange Asset_Class Product_Group Category Sub_Category Cleared_As Volume Open_Interest
Chicago Ethanol (Platts) Futures CU CU NA CU NYMEX Energy Biofuels North American Outrights Futures 3680 33107
Ethanol T2 FOB Rdam Including Duty (Platts) Futures Z1 AZ1 NA Z1 NYMEX Energy Biofuels European Outrights Futures 209 7101
NY Ethanol (Platts) Futures EZ AEZ NA EZ NYMEX Energy Biofuels North American Outrights Futures 0 665
Chicago Ethanol (Platts) Average Price Option CVR CVR NA CVR NYMEX Energy Biofuels North American Outrights Options 0 4544
Ethanol T2 FOB Rdam Including Duty (Platts) Average Price Option Z1O Z1O NA Z1O NYMEX Energy Biofuels European Outrights Options 0 0
D4 Biodiesel RINs (OPIS) vs. D6 Ethanol RINs (OPIS) Average Price Option R46 R46 NA R46 NYMEX Energy Biofuels North American Spreads Options 0 0
Crude Oil Futures CL CL NA CL NYMEX Energy Crude Oil North American Outrights Futures 636171 1793310
WTI Houston (Argus) vs. WTI Trade Month Futures HTT HTT NA HTT NYMEX Energy Crude Oil North American Spreads Futures 9214 436539
WTI Midland (Argus) vs. WTI Trade Month Futures WTT WTT NA WTT NYMEX Energy Crude Oil North American Spreads Futures 1385 310359
Crude Oil Option LO LO NA LO NYMEX Energy Crude Oil North American Outrights Options 180906 2294536
Crude Oil Financial Calendar Spread Option 1 Month 7A B7A NA 7A NYMEX Energy Crude Oil North American Outrights Options 46750 426915
WTI Average Price Option AO AAO NA AO NYMEX Energy Crude Oil North American Outrights Options 0 375765
PJM Western Hub Peak Calendar-Month Real-Time LMP Futures L1 AL1 NA L1 NYMEX Energy Electricity PJM Monthly Peak Futures 0 0
ERCOT West 345 kV Hub Day-Ahead 5 MW Peak Calendar-Day Futures EWW EAW NA EWW NYMEX Energy Electricity ERCOT Daily Peak Futures 0 0
PJM PECO Zone 5 MW Peak Calendar-Month Day-Ahead LMP Futures 4N A4N NA 4N NYMEX Energy Electricity PJM Monthly Peak Futures 0 0
PJM PSEG Zone Peak Calendar-Month Day-Ahead LMP 5 MW Option PSG ASG NA PSG NYMEX Energy Electricity PJM Monthly Peak Options 0 0
CAISO SP15 EZ Gen Hub 5 MW Peak Calendar-Month Day-Ahead LMP Option CSZ CSA NA CSZ NYMEX Energy Electricity Western Power Monthly Peak Options 0 0
PJM West Hub 50 MW Same Day Option D03 J03 Z03 NA J03 NYMEX Energy Electricity PJM Daily Peak Options 0 0
LNG Freight US Gulf to Continent (BLNG2-174) BG2 BG2 NA BG2 NYMEX Energy Freight Wet Outrights Futures 0 382
LNG Freight Australia to Japan (BLNG1-174) BG1 BG1 NA BG1 NYMEX Energy Freight Wet Outrights Futures 0 40
LPG Freight Route Middle East to Japan (BLPG1) (Baltic) Futures FLP FLP NA FLP NYMEX Energy Freight Wet Outrights Futures 0 0
Micro Henry Hub Natural Gas Futures MNG MNG NA MNG NYMEX Energy Natural Gas North American Outrights Futures 17277 4840
Dutch TTF Natural Gas Calendar Month Futures TTF TTF NA TTF NYMEX Energy Natural Gas European Outrights Futures 9272 2128
Japan Crude Cocktail (Detailed) Futures JCC JCC NA JCC NYMEX Energy Natural Gas Asian Outrights Futures 0 910
Natural Gas Wednesday Weekly Financial Option - Week 2 JN2 JN2 NA JN2 NYMEX Energy Natural Gas North American Outrights Options 105 271
Natural Gas Wednesday Weekly Financial Option - Week 4 JN4 JN4 NA JN4 NYMEX Energy Natural Gas North American Outrights Options 0 100
Natural Gas Tuesday Weekly Financial Option - Week 3 IN3 IN3 NA IN3 NYMEX Energy Natural Gas North American Outrights Options 79 61
Mont Belvieu LDH Propane (OPIS) Futures B0 B0 NA B0 NYMEX Energy Petrochemicals NGL Financial Futures 5766 156574
Mont Belvieu Ethane (OPIS) Futures C0 AC0 NA C0 NYMEX Energy Petrochemicals NGL Financial Futures 950 58206
Mont Belvieu Normal Butane (OPIS) Futures D0 AD0 NA D0 NYMEX Energy Petrochemicals NGL Financial Futures 2295 52233
Mont Belvieu LDH Propane (OPIS) Average Price Option 4H A4H NA 4H NYMEX Energy Petrochemicals NGL Financial Options 0 499
Mont Belvieu Ethane (OPIS) Average Price Option 4J A4J NA 4J NYMEX Energy Petrochemicals NGL Financial Options 0 0
Conway Propane (OPIS) Average Price Option CPR CPR NA CPR NYMEX Energy Petrochemicals NGL Financial Options 0 0
RBOB Gasoline Futures RB RB NA RB NYMEX Energy Refined Products North American Outrights Futures 179282 445652
NY Harbor ULSD Futures HO HO NA HO NYMEX Energy Refined Products North American Outrights Futures 174500 342451
Gulf Coast ULSD (Platts) Up-Down Futures LT LT NA LT NYMEX Energy Refined Products North American Spreads Futures 1230 34652
NY Harbor ULSD Calendar Spread Option - 1 Month FA FAY NA FA NYMEX Energy Refined Products North American Spreads Options 2900 14450
EIA Flat Tax On-Highway Diesel Average Price Option DAP DAP NA DAP NYMEX Energy Refined Products North American Outrights Options 0 30
RBOB Gasoline 1 Month Calendar Spread Option ZA ZAY NA ZA NYMEX Energy Refined Products North American Spreads Options 0 0

6. Futures active series

6.1 Biofuels - European

biofuels_european_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Biofuels", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

biofuels_european_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Biofuels, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Biofuels, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
Ethanol T2 FOB Rdam Including Duty (Platts) Futures Z1 Biofuels European 209 7101
Methanol T2 FOB Rdam (ICIS) Futures MT2 Biofuels European 5 485
UCO fob ARA (Argus) Futures UCD Biofuels European 0 30
RME Biodiesel FOB Rdam (Argus) (RED Compliant) vs. Low Sulphur Gasoil Futures BFR Biofuels European 0 0
UCOME Biodiesel (RED Compliant) FOB ARA (Argus) Futures UCR Biofuels European 0 0

6.2 Biofuels - North America

biofuels_northamerican_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Biofuels", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

biofuels_northamerican_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Biofuels, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Biofuels, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
Chicago Ethanol (Platts) Futures CU Biofuels North American 3680 33107
NY Ethanol (Platts) Futures EZ Biofuels North American 0 665
Denatured Fuel Ethanol Futures EL Biofuels North American 20 20
Ethanol Forward Month Futures 71 Biofuels North American 0 0
Methanol FOB Houston (Argus) Futures MTH Biofuels North American 0 0

6.3 Crude Oil - European

crudeoil_european_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Crude Oil", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

crudeoil_european_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Crude Oil, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Crude Oil, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
Brent Crude Oil Last Day Financial Calendar Spread (1 Month) Option 9C Crude Oil European 0 30600
Brent Crude Oil Futures-Style Margin Option BZO Crude Oil European 6000 26700
Brent Financial Average Price Option BA Crude Oil European 0 360
Brent Last Day Financial European Option BE Crude Oil European 0 2
Brent Last Day Financial Option OS Crude Oil European 0 0

6.4 Crude Oil - North American

crudeoil_northamerican_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Crude Oil", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

crudeoil_northamerican_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Crude Oil, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Crude Oil, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
Crude Oil Futures CL Crude Oil North American 636171 1793310
WTI Houston (Argus) vs. WTI Trade Month Futures HTT Crude Oil North American 9214 436539
WTI Midland (Argus) vs. WTI Trade Month Futures WTT Crude Oil North American 1385 310359
WTI Financial Futures CS Crude Oil North American 619 136946
Micro WTI Crude Oil Futures MCL Crude Oil North American 50639 19781

6.5 Freight - Wet

freight_wet_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Freight", Category == "Wet") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

freight_wet_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Freight, Category: Wet", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Freight, Category: Wet
Product_Name Clearing Product_Group Category Volume Open_Interest
LNG Freight US Gulf to Continent (BLNG2-174) BG2 Freight Wet 0 382
LNG Freight Australia to Japan (BLNG1-174) BG1 Freight Wet 0 40
LPG Freight Route Middle East to Japan (BLPG1) (Baltic) Futures FLP Freight Wet 0 0
Freight Route US Gulf to ARA (TD25) (Baltic) Futures AEB Freight Wet 0 0
Freight Route Middle East to UK Continent (TC20) (Baltic) Futures TF2 Freight Wet 0 0

6.6 Natural Gas - North American

natgas_northamerican_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Natural Gas", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

natgas_northamerican_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Natural Gas, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Natural Gas, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
Micro Henry Hub Natural Gas Futures MNG Natural Gas North American 17277 4840
Henry Hub Natural Gas Weekly Futures HHW Natural Gas North American 0 0
Gulf Coast LNG Export Futures LNG Natural Gas North American 0 0

6.7 Natural Gas - European

natgas_european_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Natural Gas", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

natgas_european_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Natural Gas, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Natural Gas, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
Dutch TTF Natural Gas Calendar Month Futures TTF Natural Gas European 9272 2128
Henry Hub NBP (ICIS Heren) Natural Gas Spread Futures NYP Natural Gas European 0 0
Dutch TTF Natural Gas Daily Futures TTD Natural Gas European 0 0
Dutch TTF Natural Gas (USD/MMBtu) (ICIS Heren) Front Month Futures TTE Natural Gas European 0 0
Henry Hub TTF (ICIS Heren) Natural Gas Spread Futures THD Natural Gas European 0 0

6.8 Natural Gas - Asian

natgas_asian_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Natural Gas", Category == "Asian") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

natgas_asian_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Natural Gas, Category: Asian", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Natural Gas, Category: Asian
Product_Name Clearing Product_Group Category Volume Open_Interest
Japan Crude Cocktail (Detailed) Futures JCC Natural Gas Asian 0 910

6.9 Petrochemicals - NGL

petrochemicals_ngl_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Petrochemicals", Category == "NGL") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

petrochemicals_ngl_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Petrochemicals, Category: NGL", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Petrochemicals, Category: NGL
Product_Name Clearing Product_Group Category Volume Open_Interest
Mont Belvieu LDH Propane (OPIS) Futures B0 Petrochemicals NGL 5766 156574
Mont Belvieu Ethane (OPIS) Futures C0 Petrochemicals NGL 950 58206
Mont Belvieu Normal Butane (OPIS) Futures D0 Petrochemicals NGL 2295 52233
Mont Belvieu Natural Gasoline (OPIS) Futures 7Q Petrochemicals NGL 555 30538
Propane Non-LDH Mont Belvieu (OPIS) Futures 1R Petrochemicals NGL 360 29559

6.10 Petrochemicals - Olefin

petrochemicals_olefin_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Petrochemicals", Category == "Olefin") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

petrochemicals_olefin_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Petrochemicals, Category: Olefin", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Petrochemicals, Category: Olefin
Product_Name Clearing Product_Group Category Volume Open_Interest
PGP Polymer Grade Propylene (PCW) Financial Futures PGP Petrochemicals Olefin 165 5025
Mont Belvieu Ethylene (OPIS PCW) Futures MBN Petrochemicals Olefin 0 1453
Mont Belvieu Ethylene (OPIS PCW) BALMO Futures MBB Petrochemicals Olefin 0 0
PP Polypropylene (PCW) BALMO Futures PPW Petrochemicals Olefin 0 0
Mont Belvieu Spot Ethylene In-Well (OPIS PCW) Futures MBE Petrochemicals Olefin 0 0

6.11 Petrochemicals - LPG

petrochemicals_lpg_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Petrochemicals", Category == "LPG") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 10)

petrochemicals_lpg_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Petrochemicals, Category: LPG", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Petrochemicals, Category: LPG
Product_Name Clearing Product_Group Category Volume Open_Interest
Argus Propane Far East Index Futures 7E Petrochemicals LPG 214 4769
Mini European Propane CIF ARA (Argus) Futures MPS Petrochemicals LPG 0 2945
European Propane CIF ARA (Argus) Futures PS Petrochemicals LPG 93 1799
Argus Propane (Saudi Aramco) Futures 9N Petrochemicals LPG 54 1745
Mini Argus Propane Far East Index Futures MAE Petrochemicals LPG 40 1010
Mini Argus Propane (Saudi Aramco) Futures MAS Petrochemicals LPG 0 240
Argus Propane Far East Index BALMO Futures 22 Petrochemicals LPG 13 46
European Propane CIF ARA (Argus) BALMO Futures 32 Petrochemicals LPG 0 27
European Butane CIF ARA (Argus) Futures BEF Petrochemicals LPG 0 0
Mini-Argus Butane (Saudi Aramco) Futures MAA Petrochemicals LPG 0 0

6.12 Petrochemicals - Arb

petrochemicals_arb_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Petrochemicals", Category == "Arb") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

petrochemicals_arb_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Petrochemicals, Category: Arb", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Petrochemicals, Category: Arb
Product_Name Clearing Product_Group Category Volume Open_Interest
Argus Propane Far East Index vs. European Propane CIF ARA (Argus) Futures 91 Petrochemicals Arb 2 632
Mont Belvieu LDH Propane (OPIS) vs. Argus Propane Far East Index Futures PMF Petrochemicals Arb 0 52
Mont Belvieu Non-LDH Propane (OPIS) vs. Argus Propane Far East Index Futures PNF Petrochemicals Arb 0 0
Mont Belvieu LDH Propane (OPIS) vs. European Propane CIF ARA (Argus) Futures 51 Petrochemicals Arb 0 0

6.13 Petrochemicals - Resin

petrochemicals_ngl_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Petrochemicals", Category == "Resin") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

petrochemicals_ngl_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Petrochemicals, Category: Resin", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Petrochemicals, Category: Resin
Product_Name Clearing Product_Group Category Volume Open_Interest
LLDPE Linear Low Density Polyethylene (PCW) Financial Futures LPE Petrochemicals Resin 0 0
HDPE High Density Polyethylene (PCW) Financial Futures HPE Petrochemicals Resin 0 0
PP Polypropylene (PCW) Financial Futures PPP Petrochemicals Resin 0 0

6.14 Refined Products - North American

refinedprod_northamerican_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Refined Products", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

refinedprod_northamerican_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Refined Products, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Refined Products, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
RBOB Gasoline Futures RB Refined Products North American 179282 445652
NY Harbor ULSD Futures HO Refined Products North American 174500 342451
Gulf Coast ULSD (Platts) Up-Down Futures LT Refined Products North American 1230 34652
Gulf Coast CBOB Gasoline A2 (Platts) vs. RBOB Gasoline Futures CRB Refined Products North American 1100 19314
Gulf Coast Jet (Platts) Up-Down Futures ME Refined Products North American 250 16038

6.15 Refined Products - European

refinedprod_european_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Refined Products", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

refinedprod_european_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Refined Products, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Refined Products, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
Gasoline Euro-bob Oxy NWE Barges (Argus) Crack Spread Futures 7K Refined Products European 150 13391
European Naphtha (Platts) Crack Spread Futures EN Refined Products European 14 5023
RBOB Gasoline Brent Crack Spread Futures RBB Refined Products European 0 4325
Gasoline Euro-bob Oxy NWE Barges (Argus) Futures 7H Refined Products European 50 3035
Micro Gasoil 0.1% Barges FOB ARA (Platts) Futures M1B Refined Products European 0 2709

6.16 Refined Products - Asian

refinedprod_asian_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Refined Products", Category == "Asian") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 10)

refinedprod_asian_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Refined Products, Category: Asian", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Refined Products, Category: Asian
Product_Name Clearing Product_Group Category Volume Open_Interest
Mini Singapore FOB Marine Fuel 0.5% (Platts) Futures S5M Refined Products Asian 133 2445
Singapore Mogas 92 Unleaded (Platts) Brent Crack Spread Futures 1NB Refined Products Asian 0 1700
Japan C&F Naphtha (Platts) Brent Crack Spread Futures JB Refined Products Asian 0 975
Japan C&F Naphtha (Platts) Futures JA Refined Products Asian 0 841
Singapore Fuel Oil 380 cst (Platts) Futures SE Refined Products Asian 3 638
Argus Propane Far East Index vs. Japan C&F Naphtha (Platts) Futures 3NA Refined Products Asian 6 434
Singapore FOB Marine Fuel 0.5% (Platts) Futures S5F Refined Products Asian 48 418
Mini Singapore Fuel Oil 380 cst (Platts) Futures MTS Refined Products Asian 30 274
Micro Singapore FOB Marine Fuel 0.5% (Platts) Futures S5O Refined Products Asian 0 224
Singapore Mogas 92 Unleaded (Platts) Futures 1N Refined Products Asian 0 200

6.17 Refined Products - Arb

refinedprod_arb_futures <- tidy_data %>%
  filter(Cleared_As == "Futures", Product_Group == "Refined Products", Category == "Arb") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

refinedprod_arb_futures %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Refined Products, Category: Arb", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Refined Products, Category: Arb
Product_Name Clearing Product_Group Category Volume Open_Interest
East-West Naphtha: Japan C&F vs. Cargoes CIF NWE Spread (Platts) Futures EWN Refined Products Arb 0 305
Gulf Coast HSFO (Platts) vs. European 3.5% Fuel Oil Barges FOB Rdam (Platts) Futures GCU Refined Products Arb 0 165
Singapore Gasoil (Platts) vs. Low Sulphur Gasoil Futures GA Refined Products Arb 0 0
Singapore FOB Marine Fuel 0.5% (Platts) vs. European FOB Rdam Marine Fuel 0.5% Barges (Platts) BALMO Futures SRB Refined Products Arb 0 0
USGC Marine Fuel 0.5% Barges (Platts) (mt) vs. European FOB Rdam Marine Fuel 0.5% Barges (Platts) Futures UPM Refined Products Arb 0 0

7. Options active series

7.1 Biofuels - European

biofuels_european_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Biofuels", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

biofuels_european_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Futures in Product Group: Biofuels, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Futures in Product Group: Biofuels, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
Ethanol T2 FOB Rdam Including Duty (Platts) Average Price Option Z1O Biofuels European 0 0

7.2 Biofuels - North America

biofuels_northamerican_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Biofuels", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

biofuels_northamerican_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Biofuels, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Biofuels, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
Chicago Ethanol (Platts) Average Price Option CVR Biofuels North American 0 4544
D4 Biodiesel RINs (OPIS) vs. D6 Ethanol RINs (OPIS) Average Price Option R46 Biofuels North American 0 0
NY Ethanol (Platts) Average Price Option NVP Biofuels North American 0 0
Chicago Ethanol (Platts) Calendar Spread Option - Three Month CE3 Biofuels North American 0 0
Ethanol Options EH Biofuels North American 0 0

7.3 Crude Oil - European

crudeoil_european_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Crude Oil", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

crudeoil_european_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Crude Oil, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Crude Oil, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
Brent Crude Oil Last Day Financial Calendar Spread (1 Month) Option 9C Crude Oil European 0 30600
Brent Crude Oil Futures-Style Margin Option BZO Crude Oil European 6000 26700
Brent Financial Average Price Option BA Crude Oil European 0 360
Brent Last Day Financial European Option BE Crude Oil European 0 2
Brent Last Day Financial Option OS Crude Oil European 0 0

7.4 Crude Oil - North American

crudeoil_northamerican_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Crude Oil", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

crudeoil_northamerican_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Crude Oil, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Crude Oil, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
Crude Oil Option LO Crude Oil North American 180906 2294536
Crude Oil Financial Calendar Spread Option 1 Month 7A Crude Oil North American 46750 426915
WTI Average Price Option AO Crude Oil North American 0 375765
WTI Crude Oil 1 Month Calendar Spread Option WA Crude Oil North American 0 160125
Light Sweet Crude Oil European Financial Option LC Crude Oil North American 0 77446

7.5 Freight - Wet

na

7.6 Natural Gas - North American

natgas_northamerican_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Natural Gas", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

natgas_northamerican_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Natural Gas, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Natural Gas, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
Natural Gas Wednesday Weekly Financial Option - Week 2 JN2 Natural Gas North American 105 271
Natural Gas Wednesday Weekly Financial Option - Week 4 JN4 Natural Gas North American 0 100
Natural Gas Tuesday Weekly Financial Option - Week 3 IN3 Natural Gas North American 79 61
Natural Gas Monday Weekly Financial Option - Week 3 HN3 Natural Gas North American 2 22
Natural Gas Wednesday Weekly Financial Option - Week 3 JN3 Natural Gas North American 2 1

7.7 Natural Gas - European

natgas_european_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Natural Gas", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

natgas_european_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Natural Gas, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Natural Gas, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
Dutch TTF Natural Gas Futures-Style Margined Calendar Month Option TFO Natural Gas European 0 0
UK NBP Natural Gas Calendar Month Option UKO Natural Gas European 0 0
Dutch TTF Natural Gas Calendar Month Option TTO Natural Gas European 0 0
UK NBP Natural Gas Futures-Style Margined Calendar Month Option UFO Natural Gas European 0 0

7.8 Natural Gas - Asian

na

7.9 Petrochemicals - NGL

petrochemicals_ngl_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Petrochemicals", Category == "NGL") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

petrochemicals_ngl_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Petrochemicals, Category: NGL", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Petrochemicals, Category: NGL
Product_Name Clearing Product_Group Category Volume Open_Interest
Mont Belvieu LDH Propane (OPIS) Average Price Option 4H Petrochemicals NGL 0 499
Mont Belvieu Ethane (OPIS) Average Price Option 4J Petrochemicals NGL 0 0
Conway Propane (OPIS) Average Price Option CPR Petrochemicals NGL 0 0
Mont Belvieu Normal Butane (OPIS) Average Price Option 4K Petrochemicals NGL 0 0
Mont Belvieu Natural Gasoline (OPIS) Average Price Option 4I Petrochemicals NGL 0 0

7.10 Petrochemicals - Olefin

na

7.11 Petrochemicals - LPG

na

7.12 Petrochemicals - Arb

na

7.13 Petrochemicals - Resin

na

7.14 Refined Products - North American

refinedprod_northamerican_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Refined Products", Category == "North American") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

refinedprod_northamerican_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Refined Products, Category: North American", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Refined Products, Category: North American
Product_Name Clearing Product_Group Category Volume Open_Interest
NY Harbor ULSD Calendar Spread Option - 1 Month FA Refined Products North American 2900 14450
EIA Flat Tax On-Highway Diesel Average Price Option DAP Refined Products North American 0 30
RBOB Gasoline 1 Month Calendar Spread Option ZA Refined Products North American 0 0
NY Harbor ULSD Calendar Spread Option - 6 Month FM Refined Products North American 0 0
NY Harbor ULSD Calendar Spread Option - 3 Month FC Refined Products North American 0 0

7.15 Refined Products - European

refinedprod_european_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Refined Products", Category == "European") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 5)

refinedprod_european_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Refined Products, Category: European", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Refined Products, Category: European
Product_Name Clearing Product_Group Category Volume Open_Interest
European Jet Kerosene Cargoes CIF NWE (Platts) Average Price Option 30 Refined Products European 0 0
European Low Sulphur Gasoil Calendar (6 month) Spread Option GXM Refined Products European 0 0
RBOB Gasoline Brent Crack Spread Average Price Option RBC Refined Products European 0 0
European Low Sulphur Gasoil Calendar (2 month) Spread Option GXB Refined Products European 0 0
European Low Sulphur Gasoil Calendar (3 month) Spread Option GXC Refined Products European 0 0

7.16 Refined Products - Asian

refinedprod_asian_options <- tidy_data %>%
  filter(Cleared_As == "Options", Product_Group == "Refined Products", Category == "Asian") %>%
  arrange(desc(Open_Interest)) %>%
  slice_head(n = 10)

refinedprod_asian_options %>%
  select(Product_Name, Clearing, Product_Group, Category, Volume, Open_Interest) %>%
  kable(caption = "Top 5 Options in Product Group: Refined Products, Category: Asian", format = "html") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
                full_width = FALSE)
Top 5 Options in Product Group: Refined Products, Category: Asian
Product_Name Clearing Product_Group Category Volume Open_Interest
Singapore Gasoil (Platts) Average Price Option M2 Refined Products Asian 0 0
Singapore Fuel Oil 380 cst (Platts) Average Price Option 8H Refined Products Asian 0 0
Japan C&F Naphtha (Platts) Average Price Option JA5 Refined Products Asian 0 0
Singapore Jet Kerosene (Platts) Average Price Option N2 Refined Products Asian 0 0
Singapore Fuel Oil 380cst (Platts) Brent Crack Spread (1000mt) Average Price Option SCO Refined Products Asian 0 0
Singapore Fuel Oil 180 cst (Platts) Average Price Option C5 Refined Products Asian 0 0
Singapore Mogas 92 Unleaded (Platts) Average Price Option 1N5 Refined Products Asian 0 0

7.17 Refined Products - Arb

na

8. Conclusion

This analysis provides a comprehensive overview of CME energy futures and options, with insights into: - The overall distribution of numeric and categorical data. - Differences between Futures and Options contracts. - Detailed product group comparisons including key metrics such as Volume and Open Interest. - Identification of the top active records within each product group.

Further analyses could include time series trends or deeper dives into specific categories to inform trading strategies.