Commodity Price Sensitivity
This use case explains how to model commodity price sensitivity for mining, energy and natural resources assets in Model Reef.
You will:
Create benchmark and realised price drivers for key commodities.
Apply price paths and scenarios to production volumes.
Explore different contract, hedge and currency settings.
See how price changes affect margin, cash and valuation.
Model Reef does not execute trades or hedges. It provides a planning layer on top of market assumptions and hedging policies.
When to use this pattern
Use this pattern when:
Revenue is materially dependent on commodity prices.
You want to quantify upside and downside cases.
You need to show lenders or investors sensitivity to price paths.
You plan to compare different hedging or contracting strategies.
It is usually combined with:
Mine or Well Production Forecasts
Capex & Equipment Lifecycle Model
Multi-Site Resource Consolidation
Valuation Engine Overview
Architecture overview
Commodity price sensitivity modelling uses:
Price drivers
Benchmark indices or contract references.
Basis, quality and location adjustments.
Currency assumptions and FX modifiers.
Volume inputs
Production forecasts from mine or well models.
Sales volumes by product, grade or contract.
Revenue construction
Realised price per product.
Revenue per product, site and group.
Sensitivity and scenarios
Systematic price shifts or curves.
Different hedging and contracting proportions.
Steps
Define benchmark price series
In the Data Library, create or import time-series for:
Benchmark Price - Product A (for example copper, gold, LNG).
Benchmark Price - Product B.
Benchmark Price - By-Product C where relevant.
These may be:
Historical series used to calibrate the model.
Forward curves or consensus forecasts.
Scenario-specific paths for base, high and low price environments.
Keep series in consistent units with your production models.
Add basis, quality and location adjustments
Realised prices often differ from benchmarks. Create drivers for:
Payable Percentage (for example 95 percent of contained metal).
Treatment and Refining Charges in the case of concentrates.
Shipping and handling costs per unit.
Location basis adjustments reflecting local market conditions.
Penalties or premiums for specific quality attributes.
Combine these into effective realised price drivers, for example:
Realised Price = Benchmark Price × Payable Percentage - Treatment and Refining Charges - Shipping - Penalties + Premiums.
You can implement these in formulas within Revenue variables or as separate intermediate drivers.
Link prices to production volumes
From your production models, bring through:
Saleable production volumes per period per product and site.
Sales splits by contract type if relevant.
Create Revenue variables such as:
Revenue - Copper - Mine A.
Revenue - Gold - Mine B.
Revenue - LNG - Field C.
Set formulas like:
Revenue - Copper - Mine A = Saleable Copper Volume - Mine A × Realised Copper Price - Mine A.
Because volumes are already computed in production models, price changes will flow directly into revenue without changing those volumes.
Represent simple hedging and contract structures
To incorporate basic hedging and contract strategies, define drivers for:
Hedged Volume Share per commodity.
Fixed Contract Prices for hedged volumes.
Spot Volume Share = 1 minus Hedged Volume Share.
Implement revenue as the sum of:
Hedged Revenue = Hedged Volume × Fixed Contract Price.
Spot Revenue = Spot Volume × Spot Price Series.
Where you use collars or more complex instruments, approximate the effect by adjusting effective fixed and floating prices in scenarios rather than modelling instruments directly.
Build price sensitivity and scenario views
Clone the base model into scenario models that represent:
Base case prices (for example consensus or current forward curves).
Downside case with lower prices for a period or across life of asset.
Upside case with higher prices.
Shock scenarios where prices fall sharply for a period then recover.
In each scenario, adjust benchmark price series, basis and contract settings. Then compare:
Revenue and margin per asset and for the group.
Cashflow and funding metrics.
Valuation outcomes via the Valuation Engine.
Headroom relative to debt covenants or investment hurdles.
You can also produce one off sensitivity tables by changing price drivers by a fixed percentage and inspecting key outputs.
Integrate FX where required
If your commodity is priced in a foreign currency but financial statements are in a local currency, you can:
Import or create FX rate series as drivers.
Express benchmark prices in foreign currency and convert in formulas, for example: Local Price = Foreign Price × FX Rate Driver.
Use scenarios to test combined commodity and FX risk by adjusting both price and FX series in different combinations.
Check your work
Benchmark prices and adjustments reflect market data or agreed planning bases.
Realised prices reconcile to historical realised revenue when volumes are held constant.
Hedging and contracting assumptions can be explained to non technical stakeholders.
Scenario results are consistent with risk appetite and external disclosures where relevant.
Troubleshooting
Related guides
Last updated