Sales Price Variance (PPV) in Mining: Gold, Copper & Silver Revenue Accounting
Introduction
When a mining company sells gold, copper, or silver, the story doesn't end at shipment. In fact, for concentrate and doré producers, the final revenue figure often isn't known for weeks — sometimes months — after metal leaves site. This is because most offtake agreements price metal not at the point of delivery, but at a future point determined by a Quotation Period (QP).
The gap between the price you initially booked as revenue and the price you ultimately settle at is what creates Sales Price Variance (PPV). Managing, calculating, and journalling this variance correctly each month is one of the more technically demanding tasks in mining finance — and one that sits squarely with the financial accountant.
This article walks through:
How metal sales pricing works in practice
What QP data is and why it matters
How to calculate Sales PPV
The required journal entries at month-end
The applicable accounting standards
How to build a process that is accurate, auditable, and as automated as possible
1. How Metal Sales Pricing Works in Mining
1.1 The Pricing Gap Problem
Unlike most industries, where a sale is priced, invoiced, and settled in a short cycle, mining sales — particularly of copper and gold concentrate — involve a provisional pricing mechanism. The process typically looks like this:
Shipment / Delivery: Metal leaves the mine or port. An invoice is raised using a provisional price — often the spot price on the delivery date, or a forward price agreed in the offtake contract.
Quotation Period (QP): The contract specifies a window during which the final price will be determined — typically based on the average London Metal Exchange (LME) price for copper, or the LBMA Gold Price for gold, over that period.
Final Settlement: Once the QP closes, the actual average price is applied, an adjustment invoice (debit note or credit note) is issued, and cash settles the difference.
Between steps 1 and 3, your books carry revenue at provisional price. The difference between that and the final settlement price is Sales PPV.
1.2 Typical QP Windows by Metal
Metal | Common QP Window | Pricing Reference |
Gold (doré) | Month of delivery, or M+1 | LBMA Gold Price AM/PM |
Silver (doré) | Month of delivery, or M+1 | LBMA Silver Price |
Copper (concentrate) | M+1 to M+3 from bill of lading | LME 3-Month Copper |
Zinc (concentrate) | M+1 to M+2 from bill of lading | LME Zinc |
Lead (concentrate) | M+1 to M+2 | LME Lead |
Gold doré sold to refineries typically settles faster (days to weeks after refining is confirmed). Copper concentrate shipped to smelters in Asia may have a QP that runs 90 days or more — meaning you could have three or four open shipments on your books simultaneously, each at a different stage of its QP.
1.3 What Drives the Variance
For any given open shipment at month-end, the sales PPV will be driven by:
Metal price movement — the LME/LBMA price at period-end versus the provisional price booked
FX movement — most metal prices are USD-denominated; AUD reporting entities carry FX exposure between invoice date and settlement
Treatment Charges / Refining Charges (TC/RC) — for concentrate, the net revenue is price less TC/RC, which can also vary
Assay adjustments — final metal content (payable metal) may differ from the provisional assay used at shipment
2. What Is QP Data and Why Does It Matter?
QP (Quotation Period) data is the dataset that drives your month-end mark-to-market of open shipments. It is the single most important input in calculating Sales PPV correctly.
2.1 What QP Data Contains
For each open (unsettled) shipment at month-end, you need:
Data Point | Description |
Shipment reference | Unique ID linking back to the original invoice |
Metal type | Gold, copper, silver, etc. |
Provisional quantity (payable) | Tonnes or troy ounces used in original invoice |
Provisional price | Price applied at original invoice date |
Provisional revenue (A$) | = Quantity × Provisional price × FX rate at invoice |
QP start date | When the quotation window opens |
QP end date | When the quotation window closes |
Days elapsed in QP | How far through the QP the shipment is at month-end |
Forward price / average-to-date | The current best estimate of the final settlement price |
Month-end mark-to-market price | Price used to revalue the open position at period-end |
Estimated final revenue (A$) | = Quantity × Mark-to-market price × Period-end FX rate |
2.2 Where QP Data Comes From
In practice, QP data arrives from multiple sources that finance must reconcile:
Treasury / Risk Management: Forward price curves, hedging position schedules, FX rates
Commercial / Sales team: Offtake contract terms, QP windows, TC/RC rates per shipment
Logistics / Operations: Bill of lading dates, assay certificates (provisional and final)
External: LME daily settlement prices, LBMA Gold Price bulletins (downloaded or via a data feed)
As a financial accountant, your job is to pull this data together, validate it, and use it to calculate the month-end PPV adjustment. This is typically a manual process — and it is one of the most error-prone steps in the mining close cycle.
3. Applicable Accounting Standards
3.1 AASB 15 / IFRS 15 — Revenue from Contracts with Customers
The overarching revenue standard. For mining sales with provisional pricing, the key concepts are:
Variable consideration (paragraphs 50–58): The final price under a QP mechanism is a form of variable consideration. AASB 15 requires entities to estimate variable consideration using either:
The expected value method (probability-weighted outcomes), or
The most likely amount method
In practice, mining companies typically use the forward price or period-end spot price as the best estimate of variable consideration — this is the mark-to-market approach.
Constraint on variable consideration (paragraph 56): Revenue can only be recognised to the extent that it is highly probable that a significant revenue reversal will not occur when the uncertainty resolves. For most open shipments, the forward price represents a reasonable estimate that satisfies this constraint.
Practical application: Revenue is initially recognised at provisional price at the point of delivery (when control transfers). Each subsequent month-end, the open position is remeasured to the forward price, with the adjustment recognised in revenue. This is the mechanism that generates your month-end PPV journal.
3.2 AASB 9 / IFRS 9 — Financial Instruments
The interaction between AASB 15 and AASB 9 is an area where mining accounting gets nuanced.
A provisional pricing arrangement can be characterised as an embedded derivative — the final settlement price (referenced to LME/LBMA) is separated from the host contract (the sale of physical metal) if the two are not closely related in the context of AASB 9.
For copper concentrate: The LME copper price embedded in the pricing mechanism is generally considered closely related to the host (copper concentrate) contract, so bifurcation is typically not required. The entire arrangement is accounted for under AASB 15.
For gold: Same principle — LBMA gold pricing in a gold doré sale is closely related.
Where AASB 9 does apply: If your company uses commodity forward contracts or gold forward sales to hedge the open QP exposure, those derivative instruments must be accounted for under AASB 9. Gains and losses on those hedges flow through either:
Other Comprehensive Income (OCI) — if cash flow hedge accounting is applied, or
P&L — if hedge accounting is not applied or does not qualify
Understanding which accounting model applies to your hedging program is critical before you design the PPV journal.
3.3 AASB 121 / IAS 21 — Effects of Changes in Foreign Exchange Rates
Where metal prices are USD-denominated and the reporting entity is an AUD-based Australian miner:
The original invoice is translated at the spot FX rate on the transaction date
At each reporting period, the outstanding trade receivable (the open QP exposure) is retranslated at the closing rate
FX remeasurement gains/losses go to P&L
This means your total "revenue variance" on an open shipment has two components: metal price movement and FX movement. Good PPV reporting separates these.
4. How to Calculate Sales PPV — With Examples
The Core Formula
Month-End PPV Adjustment = (Mark-to-Market Price – Provisional Price) × Payable QuantityWhere:
Mark-to-market price = best estimate of final settlement price at period-end (typically the forward price for the QP end date, expressed in the contract currency)
Provisional price = price used on the original invoice
Payable quantity = metal content eligible for payment per the offtake contract
Example 1: Gold Doré Sale (Simple, No Hedge)
Scenario: Caledonia Gold Mine sells a doré parcel to a refinery in November.
Item | Detail |
Shipment date | 15 November |
Payable gold | 2,500 troy oz |
Provisional price | USD $2,650/oz (LBMA PM, 15 Nov) |
QP | Average LBMA PM for November |
Provisional revenue (USD) | USD $6,625,000 |
AUD/USD rate at shipment | 0.6500 |
Provisional revenue (AUD) | AUD $10,192,308 |
At 30 November (month-end), the average LBMA PM price for November to date is USD $2,720/oz, and the AUD/USD closing rate is 0.6480.
Step 1: Calculate PPV in USD
PPV (USD) = (2,720 – 2,650) × 2,500
= 70 × 2,500
= USD $175,000 FavourableStep 2: Translate month-end revenue at closing rate
Month-end estimated revenue (AUD) = (2,500 × 2,720) / 0.6480
= USD $6,800,000 / 0.6480
= AUD $10,493,827Step 3: Total adjustment to revenue
Total adjustment = AUD $10,493,827 – AUD $10,192,308 = AUD $301,519 Favourable
Comprising:
Metal price component: USD $175,000 / 0.6480 = AUD $270,062
FX component: AUD $10,493,827 – (USD $6,625,000 / 0.6480) – AUD $270,062 ≈ AUD $31,457The QP will not close until November is complete (if the full month is the QP), so this position remains open at 30 November and will be adjusted again when the final average is known.
Example 2: Copper Concentrate (Multi-Month QP, Unfavourable)
Scenario: Ridgeline Copper ships a concentrate parcel in October. The offtake contract specifies a QP of M+2 (average LME copper price in December — two months after the bill of lading month).
Item | Detail |
Bill of lading date | 10 October |
Payable copper | 1,200 tonnes |
Provisional price | USD $9,200/t (LME spot at shipment) |
QP | Average LME copper — December |
Provisional revenue (USD) | USD $11,040,000 |
AUD/USD rate at shipment | 0.6550 |
Provisional revenue (AUD) | AUD $16,854,962 |
At 31 October month-end, the LME copper forward price for December is USD $8,950/t. AUD/USD closing rate: 0.6600.
PPV Calculation:
PPV (USD) = (8,950 – 9,200) × 1,200
= –250 × 1,200
= –USD $300,000 UnfavourableMonth-end estimated revenue (AUD):
= (1,200 × 8,950) / 0.6600
= USD $10,740,000 / 0.6600
= AUD $16,272,727Total revenue adjustment (AUD):
= AUD $16,272,727 – AUD $16,854,962
= –AUD $582,235 Unfavourable
Metal price component: –USD $300,000 / 0.6600 = –AUD $454,545
FX component: balance ≈ –AUD $127,690 (AUD strengthened slightly)This shipment will remain open throughout November and will be revalued again at 30 November, and again at 31 December — when the QP closes and the final settlement price is confirmed.
Example 3: Multiple Open Shipments — The QP Schedule
In practice, you will have a schedule of open shipments at any month-end. Each must be tracked and revalued. A simplified version:
Shipment | Metal | Payable Qty | Prov. Price (USD) | QP End | M-T-M Price (USD) | PPV (USD) |
SHIP-001 | Gold | 3,100 oz | $2,680 | 30 Nov | $2,715 | +$108,500 |
SHIP-002 | Gold | 1,800 oz | $2,710 | 31 Dec | $2,705 | –$9,000 |
SHIP-003 | Copper | 950 t | $9,100 | 31 Jan | $8,800 | –$285,000 |
SHIP-004 | Silver | 42,000 oz | $31.20 | 30 Nov | $32.10 | +$37,800 |
Total | –$147,700 |
This schedule becomes the core working paper for your month-end PPV journal.
5. Journal Entries for Sales PPV
5.1 Initial Revenue Recognition (at Shipment)
When metal is delivered and control transfers to the buyer:
Account | Debit | Credit |
Trade Receivable — Metal Sales | AUD $10,192,308 | |
Revenue — Gold Sales | AUD $10,192,308 |
Revenue booked at provisional price × FX rate at transaction date.
5.2 Month-End PPV Adjustment — Favourable (Gold Example)
At 30 November, gold price has moved up from the provisional:
Account | Debit | Credit |
Trade Receivable — Metal Sales | AUD $301,519 | |
Revenue — Sales PPV Adjustment | AUD $301,519 |
The receivable is marked up to reflect the higher estimated final settlement. Revenue increases.
Commentary note: In the P&L, this is best presented as a separate line — "Provisional pricing adjustment" or "QP mark-to-market" — rather than buried in the gross revenue line. This gives management clear visibility of the underlying sales volume performance versus the price/QP effect.
5.3 Month-End PPV Adjustment — Unfavourable (Copper Example)
At 31 October, copper forward price has fallen:
Account | Debit | Credit |
Revenue — Sales PPV Adjustment | AUD $582,235 | |
Trade Receivable — Metal Sales | AUD $582,235 |
The receivable is written down. Revenue is reduced.
5.4 FX Remeasurement (AASB 121)
If you choose to separately identify the FX component (best practice):
Account | Debit | Credit |
Revenue — Sales PPV Adjustment (metal price) | AUD $454,545 | |
FX Gain / Loss — Metal Receivables | AUD $127,690 | |
Trade Receivable — Metal Sales | AUD $582,235 |
Metal price PPV goes to the revenue line; FX movement goes to the FX gain/loss line (or finance income/expense depending on policy).
5.5 Final Settlement Journal (When QP Closes)
When the QP ends and the final price is confirmed, the residual difference between the last month-end mark-to-market and the final settlement price is posted:
Assume SHIP-001 (gold) settles at USD $2,708/oz (final LBMA average). The last mark-to-market was at $2,715/oz.
Final adjustment = (2,708 – 2,715) × 3,100 = –USD $21,700 (unfavourable)Account | Debit | Credit |
Revenue — Sales PPV Adjustment | AUD $X | |
Trade Receivable — Metal Sales | AUD $X |
Cash is then received, the receivable clears, and the shipment is closed in the QP schedule.
6. Entering QP Data — The Month-End Process
As a financial accountant running this process, here is the typical workflow:
Step 1: Obtain the Open Shipment List
Request from the commercial or logistics team a list of all shipments where the QP has not yet closed. Include: shipment reference, bill of lading date, metal, provisional quantity, provisional price, QP start/end dates.
Step 2: Obtain Month-End Prices
Gold / Silver: Download LBMA daily price bulletin for the month; calculate the average to period-end date (or if QP is closed, the full-month average)
Copper / Zinc / Lead: Download LME daily settlement prices; identify the forward price for the QP end month
FX: Obtain the period-end AUD/USD rate from treasury or the RBA (RBA publishes daily FX rates at rba.gov.au)
Step 3: Populate the QP Schedule
Update your QP schedule spreadsheet:
Mark-to-market price for each open shipment
Recalculate estimated revenue in USD and AUD
Calculate the movement from last month's closing position
Identify new shipments added (new invoices this month) and closed shipments (QP elapsed, final settled)
Step 4: Prepare the Journal
Total the net PPV adjustment per metal, split metal price vs. FX where required by policy. Prepare the journal and supporting workpaper.
Step 5: Post and Reconcile
Post the journal in SAP (or your ERP). Reconcile the trade receivable — metal sales subledger to the general ledger. The closing balance should equal: the sum of all open shipment provisional revenues, adjusted for all PPV movements to date.
Step 6: Commentary
Prepare the PPV variance note for management:
Total open positions at month-end (number of shipments, total AUD exposure)
Net PPV for the month (favourable/unfavourable)
Key drivers (gold price up/down $X/oz, copper forward down $X/t, FX movement)
Any shipments with final assay adjustments pending
7. Automating the Sales PPV Process
The QP process is highly automatable — yet most mining finance teams still run it on a patchwork of spreadsheets with manual price lookups. Here's a practical roadmap.
7.1 Quick Win: Structured QP Template with Live Price Feeds
Build a master Excel workbook with:
Input tab: Open shipment register (updated each month — add new, remove closed)
Price tab: LBMA and LME prices populated via Power Query from a data source (e.g., Quandl, Refinitiv Eikon API, or even a manually maintained lookup table)
FX tab: Period-end AUD/USD from RBA, pulled via Power Query from rba.gov.au data feeds
Calc tab: Automated PPV calculation using the formula engine — no manual computation required
Journal tab: Auto-generated journal entries ready to copy into SAP
Summary tab: Dashboard showing total PPV, open position by metal, and period-over-period movement
Refresh time: 15–20 minutes at month-end instead of half a day.
7.2 SAP Sales & Distribution (SD) + Revenue Accounting
SAP S/4HANA with the Revenue Accounting and Reporting (RAR) module can be configured to handle provisional pricing:
Sales orders carry a performance obligation that is partially constrained (variable consideration)
The system revalues open performance obligations at period-end using a configurable price condition
Period-end PPV journals are generated automatically via the RAR posting run
In practice, full SAP RAR implementation for provisional pricing is complex and typically requires a dedicated configuration project. Many mid-tier miners use SAP for the initial invoice posting but handle the QP revaluation in a standalone Excel model that feeds a manual journal upload.
7.3 Intermediate: ERP + Power BI + Automated Journal Upload
Architecture:
Commercial team → Shipment register (SharePoint list)
LME / LBMA data → API or daily file (auto-downloaded)
RBA FX data → Power Query connection
↓
Power BI Dataset (refreshes daily)
↓
QP Dashboard: open positions, MTM by metal, PPV trend
↓
Month-end: export journal template → upload to SAP via LSMW / FB50Power BI dashboard features for Sales PPV:
Open position by metal (oz / tonnes / AUD equivalent)
PPV sensitivity: "If gold moves $50/oz, revenue changes by $X"
Days remaining in each QP (countdown to close)
Final vs. provisional price history by shipment
Rolling 12-month Sales PPV waterfall
7.4 Data Governance for QP Data
The QP register is only as good as the data that goes into it. Recommended governance:
Control | Owner | Frequency |
Shipment register updated with new invoices | Financial Accountant | Within 2 business days of invoice |
Provisional quantities confirmed by assay certificate | Met Accounting / Operations | Prior to month-end |
QP terms confirmed against offtake contract | Commercial | At contract inception |
Price sources documented and locked at month-end | Financial Accountant | On close day |
QP schedule reconciled to AR subledger | Financial Accountant | Month-end |
Final settlement prices reconciled to bank receipts | Financial Accountant | On receipt |
8. Common Pitfalls in Sales PPV Processing
1. Using spot price instead of forward price for open QPs If the QP end date is three months away, the correct mark-to-market price is the LME forward price for that delivery month, not today's spot. Using spot systematically misstates the open position.
2. Forgetting assay adjustments The payable quantity on the provisional invoice is based on a provisional assay. The final assay (confirmed weeks later) may differ. A 1% change in payable metal content on a large copper concentrate shipment can be worth hundreds of thousands of dollars. Track provisional vs. final quantity separately.
3. Not tracking QP close dates by shipment A common error is treating all shipments in a given calendar month as having the same QP. Each shipment has its own QP dates per the offtake contract — particularly for copper, where QP windows vary by counterparty.
4. Mixing sales PPV with hedging P&L If the company runs a gold forward sale program, the MTM of those derivatives must be accounted for separately (AASB 9) and must not be blended into the AASB 15 sales PPV figure. The two can offset economically, but they must be presented in the correct P&L lines.
5. Leaving the QP schedule unreconciled to the AR ledger The aggregate of all open shipment values (at current MTM) should equal the trade receivable — metal sales balance on the general ledger. If it doesn't, there's an error somewhere. This reconciliation should be a signed-off month-end control.
6. Inadequate disclosure AASB 15 requires disclosure of the nature of variable consideration and the constraints applied. AASB 7 requires disclosure of exposure to commodity price risk and FX risk. Ensure your notes to the financial statements address the QP mechanism and the quantum of open positions at year-end.
Summary
Sales PPV in mining is not a simple variance line — it is the mechanism by which your revenue on the balance sheet and P&L is kept current in a world where metal prices move daily and final settlement may be months away. Done well, it gives management and investors an accurate, real-time picture of revenue exposure.
The monthly discipline requires:
A clean, up-to-date QP register covering every open shipment
Accurate, documented price sources (LBMA, LME, RBA FX)
A consistent methodology for mark-to-market (forward price for QP end month)
Proper journal entries that separate metal price PPV from FX movement
A reconciliation of the QP schedule to the AR subledger as a sign-off control
For finance teams ready to move beyond spreadsheets, the path to automation runs through a structured QP data model, live price feeds, and a Power BI layer that makes the open position visible every day — not just at month-end.
The QP process is one of those areas where the financial accountant's judgement, precision, and ownership genuinely protect the integrity of the company's reported revenue. It is technical, it is time-pressured, and when done right, it is invisible to everyone else — which is exactly how it should be.
Della He is a Group Financial & Capital Accountant specialising in SAP S/4HANA FICO and mining finance. Gold Ledger publishes practical accounting insights for finance professionals in the mining and resources sector.



Comments