Sustainable Finance Critical Minerals Policy Memo

To: The Office of the President of the United States

From: Ann-Alice Ticha, U.S. Council of Economic Advisers

Date: March 12, 2024

Subject: Ensuring TOP 5 Most Demanded Critical Minerals’ Supply in the U.S. until 2050

Executive Summary

  • Copper, Nickel, Graphite, Manganese, and Silicon account for more than 75% of critical mineral demand until 2050 across IEA Transition scenarios and are crucial to maintaining USA’s edge in high-tech industries as well as advancing goals of the clean energy transition.

  • U.S. reserves and production capabilities of these five critical minerals are currently very limited.

  • Fortifying trade relations with top mineral-rich and mineral-processing nations (Australia, Brazil, Chile, and China), diversifying supply chains, but also the establishment of robust domestic processing and recycling infrastructure is necessary to ensure continuous access to these resources.

Code
######### DATA CLEANING & TIDYING, SETTING UP FOR GRAPHS#####
library("esquisse")
library(tidyverse)
library(scales)
library(readxl)
library("openxlsx")
library(RColorBrewer)
library(fmsb)
library(gridExtra)
library(ggrepel)
library(gt)

setwd("~/Desktop/Sus Fin App & Meth/Ticha_Sus_Fin_HW5/Data_Raw")
CM_Data_Explorer <- read_excel("CM_Data_Explorer.xlsx", 
                               sheet = "3.2 Cleantech demand by mineral", col_names = FALSE)
# Make a Raw Data File in Case We need to come back
CM_Data_Raw <- CM_Data_Explorer

# Make Scenario Columns
CM_Data_Explorer[, c(3, 10, 17)] <- lapply(CM_Data_Explorer[, c(3, 10, 17)], as.character)
CM_Data_Explorer[, 3] <- "Stated policies scenario"
CM_Data_Explorer[, 10] <-"Announced pledges scenario"
CM_Data_Explorer[, 17] <-"Net Zero Emissions by 2050 scenario"

# Make Row 4 Into Column Names
colnames(CM_Data_Explorer) <- as.character(unlist(CM_Data_Explorer[4, ]))
colnames(CM_Data_Explorer)[1]<- "Minerals"
CM_Data_Explorer <- CM_Data_Explorer[-(1:5), ][!is.na(CM_Data_Explorer[-(1:5), 1]), ]

### SUBSET DATA & STACK ######
# Subset 1
STEPS <- CM_Data_Explorer[, c(1:9)]
# Subset 2
APS <- CM_Data_Explorer[, c(1:2, 10:16)]
colnames(APS)[3:9] <- colnames(STEPS)[3:9]
# Subset 3
NZE <- CM_Data_Explorer[, c(1:2, 17:23)]
colnames(NZE)[3:9] <- colnames(STEPS)[3:9]
# Stack Subsets 1-3
stacked_data <- rbind(STEPS, APS, NZE)

colnames(stacked_data)[3] <- "Scenario"
### Tidy Up AND PIVOT LONG THE SCENARIOS DATA
demand_wide <- stacked_data[,c(1, 3, 2, 4:9)]
demand_wide[, 3:9] <- lapply(demand_wide[, 3:9], as.numeric)
demand_long <- pivot_longer(demand_wide, cols = 3:9, names_to = "Year", values_to = "Value")

### Filter out TOP 5 for STEPS ###
STEPS_2022_TOP5 <- demand_wide %>%
  filter(Scenario == "Stated policies scenario") %>%
  arrange(desc(`2022`)) %>%
  select("Minerals",`2022`, "Scenario") %>%
  head(6) %>%
  mutate(Percentage = (`2022` / max(`2022`))*100)
STEPS_2050_TOP5 <- demand_wide %>%
  filter(Scenario == "Stated policies scenario") %>%
  arrange(desc(`2050`)) %>%
  select("Minerals",`2050`, "Scenario") %>%
  head(6) %>%
  mutate(Percentage = (`2050` / max(`2050`))*100)

### Filter out TOP 5 for APS ###
APS_2022_TOP5 <- demand_wide %>%
  filter(Scenario == "Announced pledges scenario") %>%
  arrange(desc(`2022`)) %>%
  select("Minerals",`2022`, "Scenario") %>%
  head(6) %>%
  mutate(Percentage = (`2022` / max(`2022`))*100)
APS_2050_TOP5 <- demand_wide %>%
  filter(Scenario == "Announced pledges scenario") %>%
  arrange(desc(`2050`)) %>%
  select("Minerals",`2050`, "Scenario") %>%
  head(6) %>%
  mutate(Percentage = (`2050` / max(`2050`))*100)

### Filter out TOP 5 for NZE ###
NZE_2022_TOP5 <- demand_wide %>%
  filter(Scenario == "Net Zero Emissions by 2050 scenario") %>%
  arrange(desc(`2022`)) %>%
  select("Minerals",`2022`, "Scenario") %>%
  head(6) %>%
  mutate(Percentage = (`2022` / max(`2022`))*100)
NZE_2050_TOP5 <- demand_wide %>%
  filter(Scenario == "Net Zero Emissions by 2050 scenario") %>%
  arrange(desc(`2050`)) %>%
  select("Minerals",`2050`, "Scenario") %>%
  head(6) %>%
  mutate(Percentage = (`2050` / max(`2050`))*100)

TOP5_2050_all_scenarios <- bind_rows(STEPS_2050_TOP5,APS_2050_TOP5, NZE_2050_TOP5)%>%
  filter(Minerals != "Total") %>%
  arrange(desc("Percentage")) %>%
  mutate(Minerals = replace(Minerals, Minerals == "Manganese", "Mang."))

scenario_sums <- TOP5_2050_all_scenarios %>%
  group_by(Scenario) %>%
  summarise(TotalValue = sum(Percentage, na.rm = TRUE), .groups = 'drop')

# Create the "Other" observations
other_observations <- scenario_sums %>%
  mutate(Minerals = "Other", 
         Percentage = 100 - TotalValue) %>%
  select(-TotalValue)  # Remove the TotalValue column as it's no longer needed

# Combine the "Other" observations with the original data
TOP5_2050_all_scenarios_with_others <- TOP5_2050_all_scenarios %>%
  bind_rows(other_observations)

Introduction

The International Energy Agency’s (IEA) Critical Minerals Market Review 2023 projects that the demand for critical minerals will overall escalate. This is particularly the case for copper, nickel, graphite, manganese, and silicon, which will continue to be the most demanded critical minerals until 2050, constituting over 75% of the total demand (see Fig.1). A similar trend can be observed across the States Policies Scenario (STEPS), Announced Pledges Scenario (APS), and Net Zero Emissions by 2050 Scenario (NZE). This projection highlights the vital importance of these minerals for maintaining our competitive edge in high-technology, clean energy technologies, and the United States’ energy transition goals. Copper, for instance, constitutes 57%, 50%, and 52% of the mineral composition required for clean energy technologies under the STEPS, APS, and NZE scenarios, respectively (see Fig.1). Nickel, graphite, manganese, and silicon also display significant demand, indicative of their essential roles in manufacturing processes and energy solutions. As such, this memorandum evaluates the demand and importance of copper, nickel, graphite, manganese, and silicon, and provides actionable steps to make sure the US is prepared for the challenges ahead.

Figure 1. Share of TOP 5 Minerals in Total Critical Mineral Demand in 2050

Code
colors_nze <- brewer.pal(6, "Greens")
colors_aps <- brewer.pal(6, "Oranges")
colors_steps <- brewer.pal(6, "Reds")

scenario_colors <- list(
  `Net Zero Emissions by 2050 scenario` = colors_nze,
  `Announced pledges scenario` = colors_aps,
  `Stated policies scenario` = colors_steps
)

scenarios <- unique(TOP5_2050_all_scenarios_with_others$Scenario)

par(mfrow = c(1, 3), mar = c(3, 3, 3, 3), pin = c(1.5, 1.5), cex = 0.7, cex.main = 0.7)

# Create a pie chart for each scenario, adjust cex for label size
for (scenario in scenarios) {
  scenario_data <- subset(TOP5_2050_all_scenarios_with_others, Scenario == scenario)
  colors <- scenario_colors[[scenario]]
  lbls <- paste(scenario_data$Minerals, round(scenario_data$Percentage), "%", sep=" ")
  pie(scenario_data$Percentage, labels = lbls, col = colors, main = paste(scenario), cex = 0.8, cex.main = 0.95)
}

Code
par(mfrow = c(1, 1), mar = c(5, 4, 4, 2) + 0.1, pin = c(3, 3), cex = 1, cex.main = 1.4)

TOP 5 Critical Minerals: An Overview

Table 1. illustrates the strategic landscape of the TOP 5 critical minerals, which are pivotal for the United States’ technological and clean energy sectors. Copper, with its diverse applications in electrical products, EVs, and renewable energy systems, is mainly supplied by Chile (>50%) and benefits significantly from recycling, contributing to 33% of the U.S. supply in 2023. Graphite, essential for electric vehicles and lithium-ion batteries, is predominantly imported from China, which supplied 42% of U.S. demand and produced 77% of the world’s graphite in 2023; however, it is currently not recyclable. Manganese is another non-substitutable critical mineral with limited recycling options, primarily used in steel production and batteries, with Gabon, South Africa, and Australia being major suppliers. Nickel, crucial for its use in batteries and stainless steel, has a robust recycling system in place in the U.S., accounting for 57% of consumption, primarily imported from Canada. Silicon has an insignificant recycling presence despite its wide usage in the semiconductor industry. Currently, the U.S. is heavily reliant on imports from Brazil, Russia, and Canada, while China dominates its global production (70% in 2023). These minerals underscore the need for a multi-faceted approach encompassing secure supply chains, innovative recycling, and substitution strategies to ensure their continued availability for the U.S. economy.

Table 1. Overview of TOP 5 Critical Minerals

Mineral Use Main Supplier(s) Substitutes Recycling
Copper electrical/electronic products, electricity networks, EVs, grid battery storage, wind, solar PV, industrial machinery and equipment Chile (>50%) Available for some uses. Yes. (33% of U.S. copper supply from recycling)
Graphite EVs, grid battery storage, lithium-ion batteries China (42%) Available for some uses. Not recyclable.
Manganese EVs, low emission power generation, grid battery storage, wind, dry-cell batteries, steel production Gabon (25%), South Africa (21%), Australia (10%). Not available. Limited.
Nickel EVs, low emission power generation, hydrogen technologies, grid battery storage, wind, dry batteries, steel production Canada (46%) Available for some uses. Yes. (57% of U.S. nickel consumption from recycling)
Silicon semiconductors: computer chips, solar PV, EVs, grid battery storage Brazil, Russia, Canada Available for some uses. Insignificant.

Sources: U.S. Geological Survey, Mineral Commodity Summaries (2024), Government of Canada (2023).

Demand for TOP 5 Critical Minerals

The varying supply chain dynamics of copper, graphite, manganese, nickel, and silicon highlight the necessity for strategic resource management in the U.S. technology and clean energy sectors. Figures 2 and 3 underscore the expanding demand for the TOP 5 critical minerals in energy transition scenarios up to 2050. In Figure 2, copper stands out with the highest demand across all scenarios, particularly in the Net Zero Emissions by 2050 scenario. Graphite, manganese, and nickel also show substantial increase in demand, particularly in the early years of the transition. A notable trend is that the demand for all five minerals seems to peak around 2035 and ultimately decrease. This trend is somewhat echoed in Figure 3, which depicts the percentage growth in demand, highlighting an initial surge followed by a stabilization as technologies mature and markets adjust. The initial spike in demand also reflects the immediate change due to energy transition needs which are expected to stabilize once the initial transition of the economy and infrastructure are complete. Most notably, the demand for nickel shows considerable growth in the Net Zero Emissions scenario, suggesting its increasing importance in future energy technologies. These insights emphasize the need for strategic planning in resource management and supply chain resilience to meet the growing and evolving mineral demands of the clean energy transition.

Figure 2. Demand of Top 5 Minerals by Scenario, 2022-2050

Code
top_minerals <- unique(TOP5_2050_all_scenarios$Minerals)
top_minerals <- union(top_minerals, "Manganese")
minerals_colors <- c(
  "Copper" = "#ff6700",    # A more vibrant, saturated orange for Copper
  "Graphite" = "#1a1a1a",  # A deeper black for Graphite, enhancing contrast
  "Manganese" = "#ff99cc", # A brighter, more saturated pink for Manganese
  "Nickel" = "#a6a6a6",    # A shinier, lighter silver for Nickel, enhancing its metallic quality
  "Silicon" = "#3399ff"    # A brighter, more vivid blue for Silicon, emphasizing its association with technology
)
# Filter 'demand_wide' for rows where 'Minerals' are in the top minerals list
top_minerals_over_time <- demand_wide[demand_wide$Minerals %in% top_minerals, ]

top_minerals_over_time_long <- top_minerals_over_time %>%
  pivot_longer(cols = 3:9, names_to = "Year", values_to = "Value") %>%
  mutate(Year = as.numeric(Year))

ggplot(top_minerals_over_time_long, aes(x = Year, y = Value, color = Minerals)) +
  geom_line() +
  scale_color_manual(values = minerals_colors) +  # Use the custom color palette
  theme_minimal() +
  facet_wrap(~Scenario) +
  scale_x_continuous(breaks = seq(2020, 2050, by = 5), limits = c(2022, 2050)) +
  theme(
    legend.position = "bottom",  # Adjust legend position for better visibility
    axis.text.x = element_text(angle = 45, hjust = 1),
    panel.grid.minor = element_blank(),
    plot.title = element_text(size = 12),  # Bold and size up the title
  ) +
  labs(
    title = "Demand of Top 5 Minerals by Scenario, 2022-2050",
    x = "Year",
    y = "Demand (in kt)",
    color = "Mineral",
    caption = "Data source: IEA Critical Minerals Market Review, 2023")

Figure 3. Annual % Growth in Mineral Demand by Scenario, 2025-2050

Code
filtered_data <- top_minerals_over_time_long %>%
  filter(Year %in% c(2022, 2025, 2030, 2035, 2040, 2045, 2050))
minerals_growth <- filtered_data %>%
  arrange(Minerals, Scenario, Year) %>%
  group_by(Minerals, Scenario) %>%
  mutate(Growth = (Value / lag(Value) - 1) * 100) %>%
  filter(!is.na(Growth)) %>%
  mutate(as.numeric(Year))%>%
  ungroup()
ggplot(minerals_growth, aes(x = Year, y = Growth, color = Minerals)) +
  geom_line() +
  scale_color_manual(values = minerals_colors) +  # Use the custom color palette
  theme_minimal() +
  facet_wrap(~Scenario) +
  theme(
    legend.position = "bottom",  # Adjust legend position for better visibility
    axis.text.x = element_text(angle = 45, hjust = 1),  # Rotate x-axis labels for better readability
    plot.title = element_text(size = 12),  # Bold and size up the title
  ) +
  labs(
    title = "Annual % Growth in Mineral Demand by Scenario, 2025-2050",
    x = "Year",
    y = "Growth (%)",
    color = "Mineral",
    caption = "Data source: IEA Critical Minerals Market Review, 2023"
  )

Code
##### Cleaning and Tidying Data for Cleantech Sheet
setwd("~/Desktop/Sus Fin App & Meth/Ticha_Sus_Fin_HW5/Data_Raw")
CM_Data_by_tech <- read_excel("CM_Data_Explorer.xlsx", 
                               sheet = "3.1 Cleantech demand by tech", col_names = FALSE)
# Make Scenario Columns
CM_Data_by_tech[, c(3, 10, 17)] <- lapply(CM_Data_by_tech[, c(3, 10, 17)], as.character)
CM_Data_by_tech[, 3] <- "Stated policies scenario"
CM_Data_by_tech[, 10] <-"Announced pledges scenario"
CM_Data_by_tech[, 17] <-"Net Zero Emissions by 2050 scenario"
# Make Row 4 Into Column Names
colnames(CM_Data_by_tech) <- as.character(unlist(CM_Data_by_tech[4, ]))
colnames(CM_Data_by_tech)[1]<- "Minerals"
# Remove rows 1 through 5 and then filter out rows where column 1 is NA
CM_Data_by_tech <- CM_Data_by_tech[-(1:5), ][!is.na(CM_Data_by_tech[-(1:5), 1]), ]
CM_Data_by_tech <- CM_Data_by_tech[-(47:49),]
# Make Technology Column
CM_Data_by_tech[, 'Technology'] = NA
CM_Data_by_tech$Technology <- CM_Data_by_tech$Minerals


mineral_names <- unique(demand_wide$Minerals)

# Function to fill down known mineral names
fill_down_minerals <- function(data, mineral_col, mineral_list) {
  # Initialize variable to hold the current mineral name
  current_mineral <- NA
  
  # Loop through the data frame from the top down
  for (i in 1:nrow(data)) {
    # Check if the current mineral is in the known list of mineral names
    if (data[[mineral_col]][i] %in% mineral_list) {
      current_mineral <- data[[mineral_col]][i]
    } else {
      # If not, it means we should fill down the last known mineral name
      data[[mineral_col]][i] <- current_mineral
    }
  }
  
  return(data)
}

# Apply the function to the CM_Data_by_tech data frame
CM_Data_by_tech <- fill_down_minerals(CM_Data_by_tech, "Minerals", mineral_names)

# Filter out rows where column 1 is NA
CM_Data_by_tech <- CM_Data_by_tech[!is.na(CM_Data_by_tech[, 2]), ]

### SUBSET DATA & STACK ######
# Subset 1
STEPS_tech <- CM_Data_by_tech[, c(1:9, 24)]
# Subset 2
APS_tech <- CM_Data_by_tech[, c(1:2, 10:16, 24)]
colnames(APS_tech)[3:9] <- colnames(STEPS_tech)[3:9]
# Subset 3
NZE_tech <- CM_Data_by_tech[, c(1:2, 17:24)]
colnames(NZE_tech)[3:9] <- colnames(STEPS_tech)[3:9]
# Stack Subsets 1-3
stacked_data_tech <- rbind(STEPS_tech, APS_tech, NZE_tech)
# Reorder columns
stacked_data_tech <- stacked_data_tech[,c(1,3,10, 2,4:9)]
# Rename Column 2
clean_data_tech <- stacked_data_tech %>%
  rename(Scenario = `Stated policies scenario`)

minerals <- c("Nickel", "Manganese", "Copper", "Silicon", "Graphite")
selected_data_tech <- clean_data_tech %>%
  filter(Minerals %in% minerals)

selected_data_tech <- selected_data_tech %>%
  mutate(across(`2022`:`2050`, as.numeric))


# Now pivot the data from wide to long
long_data_tech <- selected_data_tech %>%
  pivot_longer(
    cols = `2022`:`2050`, 
    names_to = "Year", 
    values_to = "Value"
  )

long_data_tech <- long_data_tech %>%
  mutate(Year = as.numeric(Year))
long_data_tech <- long_data_tech %>%
  mutate(Value = as.numeric(Value)) 

no_total_long_data_tech <- long_data_tech %>%
  filter(!grepl("^Total", Technology))

# For each Mineral, create a separate dataframe
unique_minerals <- unique(long_data_tech$Minerals)
unique_minerals_df <- split(long_data_tech, long_data_tech$Minerals)

# Ensure valid object names and assign data frames
for (mineral in names(unique_minerals_df)) {
  valid_name <- make.names(mineral)
  assign(valid_name, unique_minerals_df[[mineral]], envir = .GlobalEnv)
}

TOP 5 Critical Mineral Demand by Technology

The diverse technology uses of the TOP 5 critical minerals have varying implications on their future supply chain dynamics. Figures 4-8 show thatall five minerals show an overall trend of increasing demand from 2022 to 2050, which corresponds with global efforts to transition to cleaner energy and more advanced technologies. The demand trajectories for each mineral are influenced by the different policy scenarios, with NZE being the highest. This illustrates the impact that policy decisions could have on the critical minerals market. Furthermore, we can observe that all five minerals are particularly important in the areas of electric vehicles (EVs), grid storage, and renewable energy sources such as wind and solar photovoltaic (PV) systems. Notably, graphite and manganese exhibit more pronounced peaks and valleys in demand over time, suggesting volatile market conditions that may require flexible supply chain strategies. In contrast, copper and nickel show a steadier increase in demand across the scenarios, which could be due to the existing recycling infrastructure for the two minerals. Overall, while there are some sector-specific pressures their individual market dynamics, recycling capabilities, and supply chain resilience diverge significantly, necessitating targeted strategies to secure their future supply.

Figures 4-8. Demand for TOP 5 Critical Minerals by Technology, 2022-2050

Code
mineral_plots <- lapply(unique_minerals_df, function(df) {
  df <- df %>%
    mutate(Year = as.numeric(as.character(Year)))
  
  ggplot(df, aes(x = Year, y = Value, group = Scenario, color = Minerals)) +
    geom_line(aes(linetype = Scenario)) +
    scale_color_manual(values = minerals_colors) +
    facet_wrap(~ Technology, scales = "free_y") +  # Allow free y-axis scales
    labs(title = paste("Demand Over Time for",df$Minerals[1],"2022-2050"),
         x = "Year",
         y = "Demand (in kt)",
         caption = "Data source: IEA Critical Minerals Market Review, 2023") +
    theme_minimal() +
    theme(
      axis.text.x = element_text(angle = 45, hjust = 1),
      legend.position = "bottom"
    ) +
    guides(color = guide_legend(nrow = 1, byrow = TRUE),
           linetype = guide_legend(nrow = 3, byrow = TRUE)) +
    scale_y_continuous(labels = label_number(big.mark = " ")) # Add space as thousands separator
})

print(mineral_plots)
$Copper


$Graphite


$Manganese


$Nickel


$Silicon

Global Reserves Analysis

Global reserves for the TOP 5 minerals is concentrated in a few countries, and the US lacks substantial reserves within its own territory. More specifically, Australia, Brazil, South Africa, Chile, Indonesia, and China account for most of the TOP 5 mineral reserves, while the U.S. owns close to zero in most cases. The U.S. has zero percent of global graphite reserves, with China holding nearly 28%, and negligible shares in global nickel reserves compared to Indonesia’s 42%. Similarly, the U.S. has negligable reserves of manganese, while South Africa commands 40% globally. Copper reserves are similarly concentrated, with Chile commanding 21%, while the U.S. accounts for only 5%. Currently, 33% of U.S. copper and 57% of nickel consumption are met through recycling, indicating the significant role it plays and the potential for expansion. Australia has among the highest reserves for Nickel, Manganese, and Copper, while Brazil leads in Manganese, Nickel, and Graphite reserves. As such, the U.S. could focus on fortifying trade relations with those two partners to ensure ample supply of those minerals. Is is important to note, however, that China is by far the most dominant player in the processing industries for Copper (40%), Nickel (20%), and Graphite(100%). As shown in the previous section, the demand for these minerals is expected to rise under all three energy transition scenarios, particularly for clean energy technologies. Consequently, a strategic pivot is by strengthening alternative supply chains to ensure the availability of the resources for the U.S.’s technological and energy sectors is essential for maintaining economic and industrial leadership of the US. Overall, these figures highlight the pressing need for the U.S. to diversify its mineral supply chains and reinforce its recycling capabilities.

Figure 9. Global Copper Reserve by Country, 2023

Code
library(readxl)
setwd("~/Desktop/Sus Fin App & Meth")
Global_Reserves <- read_excel("Paper 2/CM_Data_Explorer copy.xlsx", sheet = "3.3 Global Reserves")

Global_Reserves_no_total <- Global_Reserves %>%
  filter(Country != "Total")

GR_Copper <- Global_Reserves_no_total %>%
  filter(Minerals == "Copper")
GR_Nickel <- Global_Reserves_no_total %>%
  filter(Minerals == "Nickel")
GR_Man <- Global_Reserves_no_total %>%
  filter(Minerals == "Manganese")
GR_Graphite <- Global_Reserves_no_total %>%
  filter(Minerals == "Graphite")

GR_Copper <- GR_Copper %>%
  mutate(Country = factor(Country, levels = Country[order(-Percentage)]))

# Then, plot the bar chart with countries sorted from high to low percentage
Copper_Reserves <- ggplot(GR_Copper) +
  aes(x = Country, y = Percentage) +
  geom_col(fill = "#ff6700") +
    geom_text(aes(label = sprintf("%.2f%%", Percentage)),
            position = position_stack(vjust = 1.1),
            color = "black", size = 3.5) +
  labs(y = "Percentage of Global Reserves",  title = "Global Reserves of Copper, 2023",
    caption = "Data source: Government of Canada, 2023") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 65, hjust = 1))

print(Copper_Reserves)

Figure 10. Global Nickel Reserves by Country, 2023

Code
GR_Nickel <- GR_Nickel %>%
  mutate(Country = factor(Country, levels = Country[order(-Percentage)]))
Nickel_Reserves <- ggplot(GR_Nickel) +
  aes(x = Country, y = Percentage) +
  geom_col(fill = "#a6a6a6") +
    geom_text(aes(label = sprintf("%.2f%%", Percentage)),
            position = position_stack(vjust = 1.1),
            color = "black", size = 3.5) +
  labs(y = "Percentage of Global Reserves",  title = "Global Reserves of Nickel, 2023",
    caption = "Data source: Government of Canada, 2023") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 65, hjust = 1))

print(Nickel_Reserves)

Figure 11. Global Manganese Reserves by Country, 2023

Code
GR_Man <- GR_Man %>%
  mutate(Country = factor(Country, levels = Country[order(-Percentage)]))
Manganese_Reserves <- ggplot(GR_Man) +
  aes(x = Country, y = Percentage) +
  geom_col(fill = "#ff99cc") +
    geom_text(aes(label = sprintf("%.2f%%", Percentage)), # Format the label to 2 decimal places and add a percent sign
            position = position_stack(vjust = 1.1),  # Adjust vertical position to be just above the bar
            color = "black", size = 3.5) +
  labs(y = "Percentage of Global Reserves",  title = "Global Reserves of Manganese, 2023",
    caption = "Data source: World Population Review, 2024") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 65, hjust = 1))

print(Manganese_Reserves)

Figure 12. Global Graphite Reserves by Country, 2023

Code
GR_Graphite <- GR_Graphite %>%
  mutate(Country = factor(Country, levels = Country[order(-Percentage)]))
Graphite_Reserves <- ggplot(GR_Graphite) +
  aes(x = Country, y = Percentage) +
  geom_col(fill = "#1a1a1a") +
  geom_text(aes(label = sprintf("%.2f%%", Percentage)),
            position = position_stack(vjust = 1.1),
            color = "black", size = 3.5) +
  labs(y = "Percentage of Global Reserves",  title = "Global Reserves of Graphite, 2023",
    caption = "Data source: Government of Canada, 2023") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 65, hjust = 1))

print(Graphite_Reserves)

Policy Recommendations

Policies aimed at incentivizing exploration and production, along with the bolstering of international trade agreements with stable, friendly nations rich in these resources, are crucial. As such, we recommend:

  1. Implementing incentives for domestic recycling and innovation to reduce dependence on concentrated global reserves, particularly for minerals where the U.S. lacks substantial reserves, such as graphite and manganese.
  2. Expanding recycling infrastructure and technology to increase the domestic supply of copper and nickel, which are already recycled at significant rates.
  3. Developing stronger bilateral and multilateral trade agreements with resource-rich countries, particularly Australia, Brazil, and China to secure diversified and stable import channels for these critical materials.
  4. Investing in research and development of alternative materials and technologies that can serve as substitutes for critical minerals to mitigate risks associated with supply disruptions.

Conclusion

In conclusion, this comprehensive analysis underscores the escalating demand for critical minerals, central to the United States’ ambitions for a clean energy future. The substantial reliance on copper, nickel, graphite, manganese, and silicon requires quick and effective policy action. To ensure a consistent supply amidst increasing demands and to combat the risks posed by concentrated global reserves, the U.S. must boost its recycling efforts, invest in innovation for alternatives, develop alternative supply chains, and establish a domestic recycling infrastructure. By acting on these recommendations, the U.S. can fortify its critical mineral supply chains against geopolitical risks, price volatility, and future demand surges, thereby maintaining its leadership in the global technology and clean energy sectors.

References:

Gould, Tim, 2023. Critical Minerals Market Review 2023, Launch presentation (updated). IEA. Available at: https://iea.blob.core.windows.net/assets/eeeecd32-da5f-437a-94ee-7dafb0bfbc61/CriticalMineralsMarketReviewLaunchPresentation.pdf

Government of Canada, 2023. Copper facts.

Government of Canada, 2023. Graphite facts.

Government of Canada, 2023. Nickel facts.

Johnston, R. and Vazir, C. (no date) A critical minerals policy for the United States, The Aspen Institute, Energy & Environment Program Spring, 2023. Available at: https://www.aspeninstitute.org/wp-content/uploads/2023/06/A-Critical-Minerals-Policy-for-the-United-States-Final-Report.pdf

LePan, N. and Venditti, B. (no date) Visualizing the abundance of elements in the Earth’s crustWorld Economic Forum. Available at: https://www.weforum.org/agenda/2021/12/abundance-elements-earth-crust

Statista, 2024. Reserves of manganese worldwide from 2010 to 2023.

U.S. Department of the Interior, U.S. Geological Survey (2024) Mineral Commodity Summaries 2024. Available at: https://pubs.usgs.gov/periodicals/mcs2024/mcs2024.pdf

World Population Review, 2024. Manganese Production by Country 2024.