Skip to content

Running the desk like a professional house

You bought at 2,400 and today the market pays 2,250: what your unsold goods are worth

Mark-to-market in physical trading: what the goods you bought and have not sold are worth today, the formula, where the price comes from, units and currencies.

11 min
A mound of bulk grain in a storage hall at sunrise, with light coming in through the roof skylights and a wheel loader parked in the background

Mark-to-market ("valuing at market price") answers one question: if you closed everything you have open today, how much would you make or lose? For what you have bought but not sold, the calculation is (today’s market price − the price you bought at) × quantity; for what you have sold but not bought, (the price you sold at − today’s market price) × quantity. The result is called unrealised P&L: no money has come in or gone out yet, but you already know how much is at stake.

If you bought 50 t at 2,400 USD/t and today a buyer would pay you 2,250 USD/t (illustrative figures), your unrealised P&L is (2,250 − 2,400) × 50 = −7,500 USD. Below is the calculation with a full example, where to get that "market price" when your product does not trade on any exchange, how not to get units and currencies wrong, and how to build it in a spreadsheet.

What is mark-to-market, without the jargon?

It means putting today’s price next to each open trade, not the price you fixed. In futures markets it is a daily routine: the CFTC glossary, from the US derivatives regulator, describes it as the daily system futures exchanges use to calculate, at the end of each session, the gain or loss on each position from price changes and add it to or subtract it from the account balance. In physical trading nobody adjusts your account every night: you make the adjustment yourself, with your own price and whenever you decide.

Two words are worth separating. Realised is the result of what you have already bought and sold: its margin no longer depends on the market. Unrealised is what you would make or lose if you closed today what is still open, and it changes every day the price moves.

How is it calculated? An example with quinoa

The method: take only what is open (your open position, deal by deal), put today’s market price next to it in the same unit, currency and Incoterm, and apply the formula for its side. The example is illustrative and constructed: the deals and the prices are not market data.

Unrealised P&L
Bought, not sold (long):   (market price − purchase price) × quantity
Sold, not bought (short):  (sale price − market price) × quantity
Matched (purchase and sale fixed): not valued, its margin is already fixed
DealSituationTonnesFixed priceMarket priceUnrealised P&L
ABought, not sold50Bought at 2,4002,250(2,250 − 2,400) × 50 = −7,500 USD
BSold, not bought20Sold at 2,3802,250(2,380 − 2,250) × 20 = +2,600 USD
CMatched40Bought at 2,200 and sold at 2,350Not neededNot valued
Illustrative example: three quinoa deals FOB Callao, in USD per metric tonne, with a market price today of 2,250 USD/t.

Together A and B add up to −7,500 + 2,600 = −4,900 USD unrealised. C does not count: you bought and sold the same 40 t at a firm price, and its 6,000 USD margin ((2,350 − 2,200) × 40) does not change however the market moves.

The rule to keep the sign straight: if the market falls, what you bought but have not sold loses and what you sold but have not bought gains; if it rises, the other way round. And none of it has left your account yet: if the market goes back to 2,400 tomorrow, the −7,500 disappears. But it is the figure that decides whether you sell now, wait or hedge.

Where does the market price come from if your product does not trade on an exchange?

This is the hard part of physical trading. Your quinoa, your sesame or the coffee from one particular farm has no screen with its price, so the market price is an estimate. What matters is that it is honest and always worked out the same way. There are three usual sources:

  • Today’s firm offers. For what you bought but have not sold, what a buyer would really pay you today; for what you sold but have not bought, what a supplier is asking today. Not the list price, and not an offer from three weeks ago.
  • Futures plus basis. If your product, or a very similar one, has a futures market (coffee, cocoa, sugar, wheat, corn, soybeans), the physical price is approximated as the futures price plus the basis, which the CFTC defines as the difference between the cash price and the price of the nearest futures contract. You know the basis for your origin and quality from recent offers (in coffee and cocoa it is called the "differential" and is fixed against a specific futures month).
  • Your broker or an industry price publication, always from the same source.

Three rules apply to all three sources: compare like with like (same quality, same shipment month and same Incoterm), write down the source and the date next to each price, and do not switch sources when you do not like the number.

Units and currencies: where the calculation breaks down

Units: convert the price, not just the quantity

Arabica coffee trades on ICE in US cents per pound, in contracts of 37,500 pounds (those are the specifications of the Coffee "C" contract); your physical contract is most likely in tonnes. Before comparing, convert the market price to your contract’s unit. A pound is 0.45359237 kg, so a tonne is about 2,204.62 pounds:

From price per pound or per kilo to price per tonne (illustrative prices)
300 c/lb = 3.00 USD/lb
3.00 USD/lb × 2,204.62 lb/t = 6,613.86 USD/t

0.45 USD/kg × 1,000 kg/t = 450 USD/t

If you compare a price per kilo with a price per tonne without converting, the result is off by a factor of a thousand. Bags and containers are not units of weight: use the actual weight in your contract.

Currencies: two effects that get mixed up

If you bought in dollars and your books are in euros, the unrealised figure mixes how much the price of the goods has moved and how much the dollar has moved. The clean way to separate them: calculate the unrealised P&L in the contract currency (the −7,500 USD of the example) and then convert it to your base currency at today’s exchange rate. At an illustrative rate of 1 EUR = 1.10 USD, that is −6,818 EUR.

If the market price comes in a different currency from your contract (a reference in euros for a purchase in dollars), convert it to the contract currency at today’s rate before subtracting. The risk of the currency itself, the one that opens between fixing the price and getting paid, is measured separately: it is the FX gap.

What mark-to-market is not: four common mistakes

  1. Valuing matched deals. A deal with purchase and sale both fixed has no price risk. What can shrink its margin is costs, weight losses and claims, and that shows up in the margin you actually collect, not here.
  2. Using your purchase price as the market price. If the "market" column repeats what you paid, the unrealised figure always comes out at zero. It looks prudent, but it means not looking.
  3. A stale price. An offer from three weeks ago is not today’s market. Decide how many days a price is good for before it expires, and stick to it.
  4. Forgetting what waiting costs. Mark-to-market measures price, not the cost of holding the goods: while you wait for a buyer you pay the financing and, if the goods are in a warehouse, the storage. That cost of the money you advanced is added separately.

How often should you do it, and what do you do with the number?

Large trading houses calculate it daily. A small desk can do it once a week and, on top of that, whenever the market moves a lot; how much is "a lot" is up to you. What matters is consistency: the same source and the same day of the week.

With the number in front of you there are three possible decisions, none of them right by default: close now, selling what is left over or buying what is missing, and turn the unrealised into realised; wait, knowing how much you can take; or hedge with a derivative if your product has one, which is hedging.

How do you build it in a spreadsheet in one afternoon?

  1. Start from your open contracts: one row per contract with only one leg fixed; matched ones out. Columns: product, month, operation (purchase or sale), tonnes, fixed price, currency and Incoterm.
  2. Add three columns: market price, date of the price and source.
  3. Put the market price in the contract’s unit, currency and Incoterm, with the conversions above.
  4. Calculate the unrealised P&L with its sign, for example with =IF(E2="Purchase",(H2-G2)*F2,(G2-H2)*F2), where E is the operation, F the tonnes, G the fixed price and H the market price.
  5. Convert it to your base currency at today’s rate and add it up by product and month.
  6. Save a dated copy each time you update it: the series tells you whether what is open is getting better or worse.

What Granel does with this, and what it does not

In Granel you record a reference price per product on the Products page: price, currency, unit, date and, optionally, the source (broker, exchange or internal estimate). Under Intelligence > Analytics, on the Position tab, the Mark-to-market block values every deal bought but not sold, or sold but not bought, against the most recent reference price dated today or earlier, with this article’s formula, and shows the unrealised P&L deal by deal, in each deal’s currency, and the total in your base currency. Matched deals are not valued, and only confirmed, shipped, in-transit, arrived or delivered deals count.

It does the conversions above: it brings the reference price to the deal’s unit when both are weight units (tonnes, kilos or pounds), converts it to the deal currency and converts the result to your base currency at the latest available exchange rate, not at the rate agreed in the deal. It tells you which products are left unvalued and how many deals are left out of the total for lack of an exchange rate.

What Granel does not do: it does not connect to exchanges or price feeds, so you type the price in; it keeps one price per product and date, not one per quality, origin, month or Incoterm; a deal measured in containers is not valued, because a container is not a unit of weight and a reference price can only be in tonnes, kilos, pounds or bags; it does not record futures or options, and it does not include financing or storage costs. It shows the picture as of today.

One more limit: the app requires both prices to confirm a deal, so what is bought but not sold, or sold but not bought, comes mostly from imported deals with a single price. The eight sample deals Granel loads are all matched: with them the mark-to-market block comes out empty.

Frequently asked questions

What is mark-to-market in physical commodity trading?

It is valuing what you have open —bought but not sold, or sold but not bought— at today’s market price instead of at the price you fixed. The difference is your unrealised P&L.

What is the difference between realised and unrealised P&L?

Realised is the result of what you have already bought and sold: its margin no longer depends on the market. Unrealised is what you would make or lose if you closed today what is still open, and it changes every day with the price.

Which market price do I use if my product does not trade on an exchange?

The best firm offer you have today, your broker’s quote or, if a similar product has futures, the futures price plus the basis for your origin. Always in the same quality, month and Incoterm as your contract, and always from the same source.

Is a negative unrealised P&L a loss?

Not yet: no money has gone out and it can reverse if the market comes back. It is the loss you would have if you closed today, and that is why it is useful for deciding.

Should matched deals be valued?

No. With the purchase and the sale both fixed, the market price no longer changes their margin. Their risk lies in costs, weight losses and claims.

Keep reading

Other articles