Forward and Futures Pricing and Hedging › Commodity Hedging
Quantitative FinanceAll chapters Forward and Futures Pricing and Hedging › Commodity HedgingOne section · Sections in this chapter8 / 11 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
Commodity futures serve producers and consumers who face price uncertainty in their core business operations. Unlike financial speculators, these commercial hedgers use futures not for profit but for risk management. Their goal is to reduce uncertainty and enable better business planning. As a farmer, you need to know what price to expect for next year's harvest to decide how much to plant. As an airline, you need fuel cost predictability to price tickets months in advance.
Producer Hedge: Locking in Sale Price
Suppose you expect to sell 100,000 barrels of crude oil in three months. Current spot price is $75/barrel, and the three-month futures trades at $76.50/barrel. You might worry that prices might fall before the sale, wiping out profit margins or even causing losses.
By shorting 100 crude oil futures contracts (each covering 1,000 barrels), you lock in approximately $76.50 per barrel. Whatever happens to spot prices over the next three months, your realized revenue per barrel will be close to the initial futures price. The code below demonstrates the revenue outcomes across various price scenarios:
import numpy as np
import pandas as pd
# Producer hedge example
barrels = 100_000
contracts_size = 1_000 # barrels per contract
n_futures = barrels / contracts_size # 100 contracts
current_spot = 75.00
futures_price_initial = 76.50
# Scenario analysis: price at delivery
delivery_prices = np.array([65, 70, 75, 80, 85, 90])
# Revenue without hedge
unhedged_revenue = delivery_prices * barrels
# Futures P&L (short position)
futures_pnl_commodity = (futures_price_initial - delivery_prices) * barrels
# Total revenue with hedge
hedged_revenue = delivery_prices * barrels + futures_pnl_commodity
hedge_df = pd.DataFrame(
{
"Spot at Delivery": delivery_prices,
"Unhedged Revenue ($M)": unhedged_revenue / 1e6,
"Futures P&L ($M)": futures_pnl_commodity / 1e6,
"Hedged Revenue ($M)": hedged_revenue / 1e6,
}
)Oil Producer Hedge Analysis
============================================================
Production to sell: 100,000 barrels
Futures price locked: $76.50/barrel
Spot at Delivery Unhedged Revenue ($M) Futures P&L ($M) Hedged Revenue ($M)
65 6.500 1.150 7.650
70 7.000 0.650 7.650
75 7.500 0.150 7.650
80 8.000 -0.350 7.650
85 8.500 -0.850 7.650
90 9.000 -1.350 7.650Regardless of where spot prices end up, you receive approximately $7.65 million. If prices crash to $65, the futures gain compensates for the lower spot sale. If prices surge to $90, the futures loss offsets the spot windfall. You trade price uncertainty for price certainty. The producer can plan investments and operations around this known revenue figure.
Consumer Hedge: Locking in Purchase Price
Suppose you need to purchase jet fuel in three months. Rather than face fuel price uncertainty, you can go long heating oil futures (a close substitute for jet fuel) to lock in an effective purchase price. Fuel is one of your largest operating costs, and price volatility creates significant earnings uncertainty.
The logic mirrors the producer hedge but with opposite positions. Going long futures profits when prices rise, offsetting higher spot purchase costs. If prices fall, the futures losses are offset by lower spot purchases. Either way, the effective cost is stabilized.
Cross-Hedging and Basis Risk in Commodities
The airline example highlights cross-hedging: using futures on a related but different commodity. Jet fuel futures exist but may have lower liquidity than heating oil or crude oil futures. The tradeoff is between basis risk (jet fuel vs. heating oil price divergence) and liquidity risk (wider bid-ask spreads, harder to enter and exit positions).
Cross-hedging requires careful analysis of the relationship between the hedged asset and the futures contract. The correlation determines how much protection the hedge provides. If jet fuel and heating oil prices move in lockstep, the cross-hedge works well. If they sometimes diverge due to refinery issues, seasonal demand differences, or specification changes, residual risk remains. This simulation shows how imperfect correlation affects the effectiveness of the hedge:
import numpy as np
# Cross-hedge effectiveness simulation
np.random.seed(456)
n_simulations = 1000
# Heating oil and jet fuel are correlated but not perfectly
heating_oil_vol = 0.25 # annualized
jet_fuel_vol = 0.28
cross_correlation = 0.85
# Simulate 3-month price changes
time_horizon = 0.25 # 3 months
heating_oil_changes = np.random.normal(
0, heating_oil_vol * np.sqrt(time_horizon), n_simulations
)
# Jet fuel changes: correlated with heating oil plus idiosyncratic component
systematic_component = (
heating_oil_changes * cross_correlation * (jet_fuel_vol / heating_oil_vol)
)
idiosyncratic = np.random.normal(
0,
jet_fuel_vol * np.sqrt(time_horizon) * np.sqrt(1 - cross_correlation**2),
n_simulations,
)
jet_fuel_changes = systematic_component + idiosyncratic
# Calculate unhedged and hedged exposure
initial_jet_price = 100 # index
fuel_needed = 1_000_000 # gallons
optimal_cross_hedge = cross_correlation * jet_fuel_vol / heating_oil_vol
# Unhedged cost variance
unhedged_costs = fuel_needed * initial_jet_price * (1 + jet_fuel_changes)
# Hedged with optimal cross-hedge ratio
hedge_pnl = (
-fuel_needed * initial_jet_price * optimal_cross_hedge * heating_oil_changes
)
hedged_costs = unhedged_costs + hedge_pnlCross-Hedge Analysis: Jet Fuel with Heating Oil Futures ======================================================= Cross-correlation: 0.85 Optimal hedge ratio: 0.952 Metric Unhedged Hedged ------------------------------------------------------- Mean cost ($M) 100.212 100.208 Std dev ($M) 13.882 7.207 Variance reduction 73.0%

The cross-hedge reduces cost variance substantially but doesn't eliminate it. The 85% correlation leaves residual basis risk from jet fuel-specific factors that heating oil doesn't capture. This residual risk is the price paid for using a more liquid hedging instrument. You must weigh the benefits of easier trading against the costs of imperfect protection.