Press Release
November 4, 2026 · 10 min read · SiftingIO Team
Separate commodity prices, FX and supplier premiums in a raw-material cost model. Includes a worked cost variance bridge and procurement scenario tables.
A lower commodity price does not always produce a lower purchase cost. A manufacturer paying for a dollar-priced material in euros can lose the entire saving to a weaker euro, before a supplier changes its processing charge or delivery premium.
Commodity price risk is the exposure of a business's costs or revenue to changes in the prices of materials it buys or sells. For procurement teams, measuring that exposure starts with a more specific question: which parts of the purchase price actually move with the market?
This guide builds a raw-material cost model, separates commodity and foreign exchange effects, and explains where a commodity price API belongs in the process. The worked example uses invented copper prices and purchasing assumptions. It is a calculation exercise, not a price forecast, supplier quotation or extract of SiftingIO market data.
What makes up a raw-material purchase cost?#
A market observation, a contractual pricing basis and an invoice are three different records. They may refer to the same material while describing different grades, locations, quantities and dates.
A supplier might charge a material price plus a processing premium. Freight may be billed separately in another currency. The commodity component might reset monthly, while the premium remains fixed for a quarter. A live price screen cannot infer those terms.
Start by separating the components your purchasing agreement actually uses.
Component What the model needs Where to obtain it| Purchased quantity | Amount, physical unit and whether it is gross or usable material | Purchase order or production plan |
| Commodity-linked price | The specified material, grade, pricing basis, currency and unit | Agreed pricing source and its documentation |
| Supplier charge | Premium, processing fee or discount, with its currency and charging basis | Supplier quotation or agreement |
| Currency conversion | Pair direction, observation or contractual rate, and applicable date | Agreed FX source or payment terms |
| Other costs | Freight, insurance, duties, taxes and other relevant charges | Logistics, customs and finance records |
The U.S. International Trade Administration's landed-cost guidance includes freight, insurance, tariffs, taxes and fees alongside the product price. A material-only model should therefore be labelled as such. It is not a complete landed-cost estimate.
Put the price and quantity in compatible units#
The multiplication must cancel units. Ten tonnes cannot be multiplied directly by a price per kilogram and treated as a total.
If an input is quoted per kilogram, convert the quantity to kilograms or convert the price to a price per tonne. One metric tonne is 1,000 kilograms. Keep the original unit with the source record so that a later supplier or data-source change does not silently multiply the estimated bill by 1,000.
Physical specification matters too. Matching the word "copper" does not establish that a price series matches a supplier's product. Grade, purity, delivery location and processing state can all matter to the pricing relationship. A documented conversion factor fixes a unit mismatch; it does not fix a mismatch between two different products.
The same care applies to the supplier premium. A charge per tonne belongs inside a per-tonne calculation. A fixed charge per shipment is a separate line. A percentage surcharge has a different formula again.
A worked example: copper falls 5%, but the euro cost rises#
Suppose a company plans to buy 10 metric tonnes of a material. Its simplified purchasing model adds a supplier premium to a copper price, then converts the dollar total into euros. Quantity is unchanged between the budget and review dates.
All figures below are illustrative. In particular, USD per tonne is the unit assumed for this exercise, not a claim about the native unit of a SiftingIO copper series.
Input Budget case Review case| Quantity | 10 tonnes | 10 tonnes |
| Assumed copper price | USD 8,000 per tonne | USD 7,600 per tonne |
| Supplier premium | USD 200 per tonne | USD 350 per tonne |
| EURUSD, expressed as USD per EUR | 1.10 | 1.00 |
| Freight, taxes and other costs | Excluded | Excluded |
Because EURUSD is expressed as dollars per euro, a dollar amount is divided by the rate to obtain euros:
Material cost in EUR = quantity × (commodity price + premium) ÷ EURUSD Budget = 10 × (8,000 + 200) ÷ 1.10 = EUR 74,545.45 Review = 10 × (7,600 + 350) ÷ 1.00 = EUR 79,500.00 Change = EUR 4,954.55, or 6.65%The commodity price fell by 5%. The estimated euro cost still rose by 6.65%, because each euro buys fewer dollars and the supplier premium increased. Reporting only the commodity move would miss the purchasing outcome.
For the underlying pair convention, see base currency and quote currency in FX data. The important point here is the effect on the cost model, rather than the mechanics of a currency converter.
Explain the change with a cost variance bridge#
A cost variance bridge reconciles the starting estimate to the revised estimate, changing one input at a time. This makes the explanation auditable: the movements must add back to the total change.
For this example, apply changes in the order commodity price, FX rate, supplier premium . Hold every other input at the value reached in the previous step.
Step Calculation Effect on EUR cost Running EUR cost| Budget | 10 × (8,000 + 200) ÷ 1.10 | Starting point | 74,545.45 |
| Change commodity price | 10 × (7,600 − 8,000) ÷ 1.10 | −3,636.36 | 70,909.09 |
| Change FX rate | 10 × (7,600 + 200) × (1/1.00 − 1/1.10) | +7,090.91 | 78,000.00 |
| Change supplier premium | 10 × (350 − 200) ÷ 1.00 | +1,500.00 | 79,500.00 |
| Total change | Revised cost minus budget cost | +4,954.55 | 79,500.00 |
This is one transparent attribution convention, not a unique economic decomposition. Changing the order changes the amounts assigned to each driver because price, premium and FX interact. Here, FX is applied to the revised commodity price and the old premium; the premium change is then converted at the revised rate. Record that convention beside the bridge and use it consistently.
Do not calculate each effect independently against the original budget and assume the pieces will reconcile. That can omit interaction effects. If purchased quantity also changes, add a quantity step and state where it sits in the sequence.
Use a scenario table without pretending to forecast prices#
A scenario table asks how the model behaves under selected inputs. It does not assign probabilities to those inputs or predict which combination will occur.
Keep quantity at 10 tonnes and hold the premium at USD 200 per tonne. The following figures are material-cost estimates in euros, with the same exclusions as before.
Assumed copper price, USD per tonne EURUSD 1.00 EURUSD 1.10 EURUSD 1.20| 7,200 | 74,000.00 | 67,272.73 | 61,666.67 |
| 8,000 | 82,000.00 | 74,545.45 | 68,333.33 |
| 8,800 | 90,000.00 | 81,818.18 | 75,000.00 |
The top-left and bottom-right cells make a useful comparison. A lower dollar commodity price with a weaker euro can produce nearly the same euro cost as a higher dollar price with a stronger euro. Treating the two exposures separately makes that relationship visible.
At a fixed FX rate and quantity, every USD 100-per-tonne increase changes the estimate by 10 × 100 ÷ EURUSD euros. At EURUSD 1.10, that is EUR 909.09. This sensitivity is local to the stated assumptions; a percentage premium, a different quantity or a contractual price cap would change it.
Match the observation to the purchasing rule#
Real-time commodity data is useful for monitoring exposure between purchasing decisions. The figure used to determine an actual payable amount depends on the agreement.
A contract might specify a monthly average, an observation on a particular day, a different FX date, or a fixed price. A current API value is not automatically a substitute for any of these. Likewise, the close of a daily price bar is not a monthly contractual average.
The distinction also applies to currencies. The International Trade Administration's explanation of FX risk describes how exchange-rate changes between agreement and payment can alter the value of a transaction. For a separate illustration of observation versus execution, the ECB's published rate policy says its rates are informational and discourages their use for transactions. A published rate and a bank's conversion rate need not serve the same purpose.
Keep a compact record for each estimate:
Record Why it matters| Material and specification | Establishes which purchase the estimate describes |
| Price series, unit and currency | Makes the commodity input interpretable |
| Observation time and pricing window | Distinguishes a live view from the agreed fixing or average |
| FX pair direction, rate and applicable time | Makes conversion reproducible |
| Quantity and premium version | Preserves the purchasing assumptions |
| Source values and model version | Allows a previous estimate to be recalculated |
For a comparison at one cut-off, use compatible observation times or record the mismatch explicitly. For an actual invoice calculation, follow its specified price and FX windows even when those windows differ. Do not silently substitute the latest available value for a missing required observation.
Where SiftingIO fits in a procurement dashboard#
SiftingIO's Commodity Data API provides real-time commodity prices and historical OHLCV through REST, plus live updates over WebSocket. Supported series span metals, energy and agriculture. Forex data can supply the currency input for a model that combines material prices with FX exposure.
These are market-data inputs. Supplier premiums, purchase quantities, contractual pricing rules and invoice costs come from the business's own records. A matching symbol name alone does not establish that a series is suitable for a particular agreement; confirm the series definition, unit, observation basis and permitted use first.
A practical evaluation can stay small:
- Choose one material purchase and document its pricing rule, unit and currency.
- Check the relevant series and fields in the API documentation, then compare an appropriate sample with the source required by the business.
- Keep live monitoring estimates separate from amounts calculated under invoice or payment terms.
- Reproduce one saved estimate before adding more materials or automated alerts.
The Market Data Export tool provides a CSV or Excel route for inspecting historical observations. History varies by series, and bar data should only be used where its sampling matches the calculation. If the required input is a monthly average or a specific fixing, establish how to obtain that input before treating a daily bar as sufficient.
For a first evaluation, create a SiftingIO account and check the current plans and usage terms. The useful test is whether the data supports a clearly defined purchasing calculation, rather than how many symbols fit on a screen.
Questions procurement and finance teams often need to resolve#
Why can my material cost rise when commodity prices fall?#
The commodity component may fall while FX conversion, supplier premiums, purchased quantity or logistics costs move against the buyer. In the example, a 5% fall in the assumed copper price is outweighed by a weaker euro and a higher premium, increasing the euro estimate by 6.65%.
Can a real-time price replace the price specified in a supplier agreement?#
Only if it meets the agreement's requirements. A different grade, unit, observation time or averaging window can make an otherwise useful market series unsuitable for determining an invoice amount. A real-time dashboard can still be useful for monitoring while the contractual calculation remains separate.
Is a scenario table a commodity price forecast?#
No. It shows the costs produced by selected assumptions. It does not establish their likelihood, recommend a purchase date or specify a hedging strategy. Its value is in making the consequences of those assumptions explicit and reproducible.