Lesson 033 min read

Pricing & Basis: Cost of Carry, Contango & Backwardation

November 05, 2026

// TL;DR

A future's fair price is the spot plus the COST OF CARRYING it to expiry: Fair = Spot × (1 + (r + storage − yield) × T). For a financial future that's just interest, so it sits slightly ABOVE spot and drifts to meet it by expiry — e.g. Nifty 24000 × (1 + 7% × 30/365) = 24,138, basis +138. For commodities, add STORAGE cost (pushes it up) and subtract CONVENIENCE YIELD (benefit of holding the physical, pushes it down) — e.g. gold 76,000 × (1 + 7.5% × 60/365) = 76,937, basis +937. BASIS = future − spot. CONTANGO = future above spot (normal; a rolling long pays the gap). BACKWARDATION = future below spot (tight supply; a rolling long gets paid). The term structure is a tradeable signal about carrying costs and supply, not noise.

Why does a Nifty future trade at 24,138 when the index is at 24,000? Not magic — it is the cost of carry, and understanding it unlocks basis, term structure, and the spread/arbitrage trades later. This is pure arithmetic, which suits us nicely.

The cost-of-carry model

Pricing, cost of carry, basis and term structure. A future's fair price equals spot times one plus r plus storage minus yield, times T. Nifty: 24000 times one plus 7 percent times 30 over 365 equals 24,138, basis plus 138. Gold: 76,000 times one plus 7.5 percent times 60 over 365 equals 76,937, basis plus 937. A term-structure chart shows two curves against time to expiry: contango sloping upward where far is greater than near, and backwardation sloping downward where far is less than near. What basis and term structure tell you: basis equals future minus spot; for a financial future it is just the cost of carry or interest, so the future sits slightly above spot and drifts to meet it by expiry; for commodities add storage cost which pushes the future up and subtract the convenience yield which pushes it down; contango is future above spot, normal for most, where a long who rolls pays the gap; backwardation is future below spot, tight supply, where a long who rolls gets paid; the term structure is a tradeable signal about carrying costs and supply.

The fair price of a future is the spot price plus the net cost of carrying the position until expiry:

Fair future = Spot × (1 + (r + storage − convenience_yield) × T)
  • r — the risk-free interest rate. Holding the future instead of buying the asset now saves you the cost of funding the purchase, so interest pushes the future above spot.
  • storage — (commodities only) the cost of storing and insuring the physical. Pushes the future up.
  • convenience_yield — (commodities only) the benefit of actually holding the physical (being able to use it, avoid shortages). Pushes the future down.
  • T — time to expiry, in years.

For a financial future there is no storage or convenience yield, so it is just interest:

def fair_future(spot, r, days, carry=0.0):   # carry = storage - convenience (commodities)
    return spot * (1 + (r + carry) * days/365)

fair_future(24000, 0.07, 30)              # Nifty 1-month  -> 24138  (basis +138)
fair_future(76000, 0.07, 60, carry=0.005) # Gold 2-month   -> 76937  (basis +937)

So the Nifty future at 24,138 is simply the index (24,000) plus one month of interest (~138 points). As expiry nears, T → 0, the carry shrinks, and the future converges to spot. This convergence is guaranteed (otherwise there is an arbitrage — Lesson 8).

Basis

Basis = future − spot. It is the market’s quoted version of the cost of carry, and it tells you a lot:

  • A positive basis (future above spot) is normal for financial futures and well-supplied commodities — the carry is a cost.
  • A negative basis (future below spot) signals something special — usually tight physical supply (a high convenience yield), common in commodities during shortages.
  • Basis narrows to zero at expiry as the future converges to spot. Watching basis gives you a read on funding costs, supply tightness, and whether the future is rich or cheap to fair value.

Contango and backwardation (the term structure)

Look at futures of different expiries on the same underlying and you get a term structure — a curve of price vs time to expiry:

  • Contango — further-out futures are more expensive than near ones (an upward-sloping curve). This is the normal state for most markets, reflecting positive carry (interest + storage). A long who rolls (Lesson 6) repeatedly pays the gap each time.
  • Backwardation — further-out futures are cheaper than near ones (downward-sloping). This signals tight supply now (a high convenience yield — people pay up for the physical today). A long who rolls actually gets paid.

This shape is not noise — it is a tradeable signal about carrying costs and supply/demand, and it directly drives roll yield (Lesson 6) and calendar spreads (Lesson 8). Always know whether your contract is in contango or backwardation; it changes the economics of holding it.

Pitfalls

  • Thinking the future “predicts” the spot. The future is mostly spot + carry, not a forecast. A future above spot usually just means positive carry, not that the market expects a rise.
  • Ignoring the convenience yield in commodities. It can make a commodity future trade below spot (backwardation) even with positive storage costs. Don’t assume contango.
  • Forgetting convergence. The basis must go to zero by expiry. A “cheap” far-month that is simply in backwardation is not free money — it reflects real supply conditions.

Recap

A future’s fair price is spot × (1 + (r + storage − convenience yield) × T) — the cost of carry. Basis = future − spot, and it converges to zero at expiry. The term structure is contango (future above spot, normal, a rolling long pays) or backwardation (future below spot, tight supply, a rolling long is paid). This is arithmetic and a genuine signal, not noise — and it sets up rollover and spreads.

Next: Lesson 4 — The Commodity Universe, the instruments you can actually trade and their personalities.