Markets: A Rigorous Course

10.3 Roll yield

Core about 20 min

Motivation

A commodity index fund holds futures, not barrels. When its contract approaches expiry it sells it and buys the next one. If the curve is in contango, it sells cheap and buys dear every month. This section derives exactly what that costs.

10.3.1The exact decomposition#

Setup

A fully collateralised long futures position: for each rupee of notional, one rupee sits in T-bills earning rr. The excess return is the futures P&L divided by notional; the total return is excess return plus the collateral return.

Proposition 10.5excess return = spot return + roll yield

For any contract with delivery date TT and any t<t′≤Tt < t' \le T,

ln⁡Ft′(T)Ft(T)=ln⁡St′St⏟spot return+[ln⁡Ft′(T)St′−ln⁡Ft(T)St]⏟change in log basis.(10.8)\ln\frac{F_{t'}(T)}{F_t(T)} = \underbrace{\ln\frac{S_{t'}}{S_t}}_{\text{spot return}} + \underbrace{\left[\ln\frac{F_{t'}(T)}{S_{t'}} - \ln\frac{F_t(T)}{S_t}\right]}_{\text{change in log basis}}. \tag{10.8}

If the contract is held to expiry (t′=Tt' = T, so FT(T)=STF_T(T) = S_T by convergence, M07), the second term is −ln⁡(Ft(T)/St)=−ct (T−t)-\ln(F_t(T)/S_t) = -c_t\,(T - t), and

ln⁡STFt(T)=ln⁡STSt  −  ct (T−t).(10.9)\ln\frac{S_T}{F_t(T)} = \ln\frac{S_T}{S_t} \;-\; c_t\,(T - t). \tag{10.9}
Proof

(10.8) is the identity ln⁡a/b=ln⁡(a/c)−ln⁡(b/d)+ln⁡(c/d)\ln a/b = \ln(a/c) - \ln(b/d) + \ln(c/d) with a=Ft′a = F_{t'}, b=Ftb = F_t, c=St′c = S_{t'}, d=Std = S_t. (10.9) substitutes FT(T)=STF_T(T) = S_T and the definition ln⁡(Ft/St)=ct(T−t)\ln(F_t/S_t) = c_t (T - t) from (10.1).∎

The term −ct(T−t)-c_t(T-t) is the roll yield of a contract held to expiry: the log basis at entry, with a minus sign. In contango (c>0c>0) it is negative; in backwardation, positive.

Proposition 10.6rolling strategy

Roll a long position every Δ\Delta: at each tk=kΔt_k = k\Delta buy the contract expiring at tk+1t_{k+1}, hold it to expiry, repeat. Let ckc_k be the carry at tkt_k (so Ftk(tk+1)=StkeckΔF_{t_k}(t_{k+1}) = S_{t_k} e^{c_k\Delta}). Then over NN periods

∑k=0N−1ln⁡Stk+1Ftk(tk+1)=ln⁡StNSt0−Δ∑k=0N−1ck,(10.10)\sum_{k=0}^{N-1}\ln\frac{S_{t_{k+1}}}{F_{t_k}(t_{k+1})} = \ln\frac{S_{t_N}}{S_{t_0}} - \Delta\sum_{k=0}^{N-1} c_k, \tag{10.10}

and the total (collateralised) log return is

ln⁡StNSt0+Δ∑k=0N−1(yk−uk)when ck=rk+uk−yk.(10.11)\ln\frac{S_{t_N}}{S_{t_0}} + \Delta\sum_{k=0}^{N-1}(y_k - u_k) \quad\text{when } c_k = r_k + u_k - y_k. \tag{10.11}

If the position instead holds a contract with fixed time-to-maturity τ>Δ\tau > \Delta for one period, the excess log return over the period is

ln⁡St+ΔSt−ctΔ+(ct+Δ−ct)(τ−Δ).(10.12)\ln\frac{S_{t+\Delta}}{S_t} - c_t\Delta + (c_{t+\Delta} - c_t)(\tau - \Delta). \tag{10.12}
Proof

(10.10): sum (10.9) over kk; the spot terms telescope. (10.11): add Δ∑rk\Delta\sum r_k for the collateral and substitute ckc_k. (10.12): ln⁡Ft+Δ(t+τ)−ln⁡Ft(t+τ)=[ln⁡St+Δ+ct+Δ(τ−Δ)]−[ln⁡St+ctτ]\ln F_{t+\Delta}(t+\tau) - \ln F_t(t+\tau) = [\ln S_{t+\Delta} + c_{t+\Delta}(\tau - \Delta)] - [\ln S_t + c_t\tau]; rearrange.∎

Three readings of these formulas:

  1. (10.11) is a consistency check. A collateralised futures position earns the spot return plus convenience minus storage, but no interest beyond the T-bill rate: exactly what a physical holder earns net of financing. Futures and physical are the same economic position (when storage is not constrained).
  2. (10.10) is the index investor's problem. If spot ends where it started, the cumulative excess return is −Δ∑ck-\Delta\sum c_k. With persistent contango the long loses money while "the price" goes nowhere.
  3. (10.12) adds a curve-shift term. A position further out the curve gains when contango steepens and loses when it flattens. For a contract held to expiry (τ=Δ\tau = \Delta) it vanishes.

Worked examplecontango cost

Suppose MCX crude's front month is ₹7,000 and the next is ₹7,140, a 2% monthly contango. The annualised roll yield is 12ln⁡(7000/7140)=−23.8%12\ln(7000/7140) = -23.8\%. If spot is flat for a year and the curve keeps this shape, a long rolled each month ends with e−0.2376−1=−21.2%e^{-0.2376} - 1 = -21.2\% excess return, before the collateral interest of about 5.5%. A trader who says "crude went nowhere and I lost a fifth" has met (10.10).

10.3.2Why index investors lose in contango#

Mechanism 1: structural contango in well-stocked markets By Proposition 10.4, when inventories are ample, c≈r+u>0c \approx r + u > 0. A permanent long in futures pays the storage cost of the marginal barrel to whoever holds that barrel. That is a transfer from the index to storers, not a market inefficiency: storers are being paid to store.

Mechanism 2: a known roll schedule Index funds publish their roll windows. Other traders can sell the next contract and buy the expiring one ahead of them, widening the spread the index pays. This "front-running the roll" effect has been studied in the literature on the Goldman roll; magnitudes are disputed, and you should treat any single estimate with caution.

Mechanism 3: concentration in the front month Front-month exposure maximises the Samuelson volatility and the exposure to the prompt spread at expiry. The April 2020 episode (10.11.1) is the extreme case. The United States Oil Fund (USO) changed its roll and holdings during that period; sources disagree on how far it contributed to the May contract's negative settlement.

10.3.3Is roll yield a return?#

Equation (10.10) is an accounting identity. Whether the roll term is earned depends on whether the curve predicts spot changes. If futures were unbiased forecasts, Ft(T)=Et[ST]F_t(T) = \mathbb{E}_t[S_T], then (10.9) gives Et[ln⁡(ST/Ft)]≈0\mathbb{E}_t[\ln(S_T/F_t)] \approx 0 (up to a Jensen term) regardless of the curve slope: a contango curve would simply forecast a rising spot. Evidence across many commodities (Fama and French 1987; Erb and Harvey 2006; Gorton and Rouwenhorst 2006; Gorton, Hayashi and Rouwenhorst 2013) is that the basis forecasts futures excess returns better than it forecasts spot changes. Backwardated (low-inventory) commodities have tended to earn more than contango ones. This is the basis for "carry" strategies in commodities. But the slope is a noisy predictor: spot can and does rise by more than the contango.

Practitioner notes

  • Compute the roll yield from two adjacent contracts, annualised by the gap in maturities: −ln⁡(F2/F1)/(T2−T1)-\ln(F_2/F_1)/(T_2 - T_1). In seasonal markets (natural gas, agricultural goods) compare like months year on year, or you will mistake seasonality for carry.
  • Excess return is what a margined MCX position earns. In India, a retail trader's margin is not "collateral earning T-bill" unless pledged securities are used; idle cash at a broker earns nothing. Include that in your P&L.
  • Gold's curve is near full carry, so a rolled gold futures position underperforms spot gold by roughly r−ℓr - \ell per year, which is the same as the cost of financing physical gold. The roll is not a leak; it is the financing.

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.