---
title: "Forward Curves, Storage and Convenience Yield"
book: "Markets III: Commodities, Energy and Crypto"
subject: quant
language: en
chapter: 10
exercises: 8
source: https://one-course.com/books/quant/3/en/chapter/10-forward-curves-storage-and-convenience-yield
---

# Chapter 10 — Forward Curves, Storage and Convenience Yield

From January 1985 to April 2024 the nearby WTI futures price rose from $25.92 to $86.91 a barrel, a gain of 3.1% a year. An investor who held the futures over the same years, rolling each month from the expiring contract to the next, earned less on the oil itself: the roll cost 0.7% a year, because the market spent more than half its days in contango and paid buyers of the curve less than the spot price rose. The difference between what a commodity’s price does and what a futures position in it earns is the shape of its [forward curve](#def-m3-forward-curves-storage-and-convenience-yield-curve). This chapter explains that shape through the economics of storage, measures the [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) the market implies, shows why near contracts are more volatile than far ones, and follows the money that tracks commodity indices through their monthly roll.

## 10.1 The forward curve of a commodity

**Definition 10.1 (Forward curve).**

The *forward curve* of a commodity at a date is the set of prices, on that date, of futures or forwards on the commodity for successive delivery dates, seen as a function of the time to delivery.

A commodity curve differs from a rate curve (One Quant Book 2, chapter 9) in what ties its points together: not interest alone, but storage. A barrel for delivery in a year is a barrel today plus a year in a tank, or a barrel produced later. The curve is in contango or in backwardation (One Quant Book 1, chapter 21) according to which of those two ways of getting the barrel is cheaper.

![Forward curves, schematic. Storage caps how steep contango can be (full carry, the cost of financing and storing), while nothing caps backwardation, which is set by how much the market values having the commodity now. Stylised, no data.](https://one-course.com/images/onecourse/chapters/quant-3/m3-forward-curves-storage-and-convenience-yield/fig-ba2de38efaac.svg)

***Figure 10.1.** [Forward curves](#def-m3-forward-curves-storage-and-convenience-yield-curve), schematic. Storage caps how steep contango can be ([full carry](#def-m3-forward-curves-storage-and-convenience-yield-carry), the cost of financing and storing), while nothing caps backwardation, which is set by how much the market values having the commodity now. Stylised, no data.*

## 10.2 The theory of storage and the convenience yield

**Definition 10.2 (Cash-and-carry trade, full carry).**

A *cash-and-carry trade* buys a commodity (or a near future) and sells a later future against it, financing and storing the commodity in between. A curve is at *full carry* when the later price exceeds the near one by exactly the cost of financing and storage, so that the trade earns nothing.

The [cash-and-carry trade](#def-m3-forward-curves-storage-and-convenience-yield-carry) bounds contango from above whenever storage is available: $F_{t,T} \le
S_t e^{(r+u)\tau}$, with $u$ the proportional storage cost (the storage floor of [Proposition 2.8](https://one-course.com/books/quant/3/en/chapter/2-crude-oil#prop-m3-crude-oil-floor) read from the other side). No trade bounds backwardation: to profit from a far price below the near one, one would have to sell the commodity now and buy it back later, which only a holder of inventory can do, and a holder that needs the commodity will not.

**Definition 10.3 (Theory of storage, convenience yield).**

The *theory of storage* (Kaldor, Working, Brennan) explains the futures–spot spread by the cost of storage and a benefit of holding inventory. That benefit, per unit of value and time, is the *convenience yield* $y_c$: the value of being able to use the commodity now, avoiding a stock-out, keeping a plant running. With it,

$$
F_{t,T} = S_t\,e^{(r + u - y_c)\,\tau}.
$$

**Proposition 10.4 (Convenience yield falls with inventory).**

Between two futures $\Delta\tau$ apart, the net [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) implied by the market is $y_c - u = r - \ln(F_2/F_1)/\Delta\tau$. When inventories are ample, $y_c$ is near zero and the curve is near [full carry](#def-m3-forward-curves-storage-and-convenience-yield-carry); when they are scarce, $y_c$ is large and the curve backwardated.

**Proof.** Take logs of $F_2/F_1 = e^{(r + u - y_c)\Delta\tau}$. The second statement is the theory’s economic content: the marginal barrel in store is worth more to hold when fewer are held. ∎

**Example 10.5 (Reading a spread).**

The front WTI contract is at $80.00 and the second at $79.40, a month apart, with the rate at 4%. The net [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) is $0.04 - 12\ln(79.40/80.00) = 13.0\%$ a year: the market pays about 13% a year above financing to hold oil now. With the second at $80.60, it is $-5.0\%$: storage is being paid for.

![Net convenience yield of WTI implied by contracts 1 and 2 and the 3-month Treasury bill, monthly means of daily values, January 1985 to March 2024 (months below -100\%, such as April 2020, are off the chart). The median month is close to zero; the curve was in backwardation on 45% of days. Data: EIA; FRED DTB3.](https://one-course.com/images/onecourse/chapters/quant-3/m3-forward-curves-storage-and-convenience-yield/fig-6502d2f3d4a6.svg)

***Figure 10.2.** Net [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) of WTI implied by contracts 1 and 2 and the 3-month Treasury bill, monthly means of daily values, January 1985 to March 2024 (months below $-100\%$, such as April 2020, are off the chart). The median month is close to zero; the curve was in backwardation on 45% of days. Data: EIA; FRED DTB3.*

When the cash-and-carry pays for more than land tanks, it pays for ships.

**Definition 10.6 (Floating storage).**

*Floating storage* is oil (or another liquid) held in tankers at anchor as inventory rather than shipped, which pays when the contango over the months of the charter exceeds the charter cost plus financing.

In the contango of 2020 it did: the EIA, citing ClipperData, reports global crude [floating storage](#def-m3-forward-curves-storage-and-convenience-yield-floating) rising from 65.9 million barrels on 1 March 2020 to 221.5 million on 9 July.

## 10.3 Roll yield and the decomposition of futures returns

A futures position has no carry of its own: it costs nothing to enter. What an investor earns by holding futures and rolling them comes from three sources.

**Definition 10.7 (Spot return, roll yield, collateral return).**

For a fully collateralised, rolled long futures position, the *spot return* is the change in the nearby futures price; the *roll yield* is the rest of the futures’ return, earned as each held contract converges to the nearby price (positive in backwardation, negative in contango); the *collateral return* is the interest earned on the cash that backs the position. Their sum is the total return.

**Proposition 10.8 (Roll yield from the curve).**

If the curve’s shape is unchanged over a period $\Delta\tau$, a position in a contract $\Delta\tau$ further out than the nearby earns $\ln(F_{\mathrm{near}}/F_{\mathrm{far}})/\Delta\tau$ a year above the [spot return](#def-m3-forward-curves-storage-and-convenience-yield-roll): the [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) equals the net [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) less the rate, $y_c - u - r$.

**Proof.** With an unchanged shape the held contract ends where the nearer one started: its log return is the spot’s plus $\ln(F_{\mathrm{near}}/F_{\mathrm{far}})$. Substitute the carry relation. ∎

Measured on the WTI data, a position that rolls monthly (as indices do, in the window described below) earned a [spot return](#def-m3-forward-curves-storage-and-convenience-yield-roll) of 3.08% a year from January 1985 to April 2024, a [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) of $-0.71\%$ and a [collateral return](#def-m3-forward-curves-storage-and-convenience-yield-roll) of 3.18%: a total of 5.55% a year ([Figure 10.3](#fig-m3-forward-curves-storage-and-convenience-yield-index)).

![WTI, January 1985 to April 2024: the nearby price and a long position rolled monthly over the 5th–9th trading days, both starting at 1. The gap is the cumulative roll yield. Contract identities follow the expiry rule with a weekend-only calendar, so a few roll dates may be off by a day. Data: EIA contracts 1–4.](https://one-course.com/images/onecourse/chapters/quant-3/m3-forward-curves-storage-and-convenience-yield/fig-5dbf55763d27.svg)

***Figure 10.3.** WTI, January 1985 to April 2024: the nearby price and a long position rolled monthly over the 5th–9th trading days, both starting at 1. The gap is the cumulative [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll). Contract identities follow the expiry rule with a weekend-only calendar, so a few roll dates may be off by a day. Data: EIA contracts 1–4.*

## 10.4 The Samuelson effect

**Definition 10.9 (Samuelson effect).**

The *Samuelson effect* is the tendency of futures prices to be more volatile the closer they are to delivery.

Shocks to supply and demand are absorbed by inventory: a shock today moves the near price most, and later prices less, because stocks and production have time to respond. If the spot’s deviation from its long-run level mean-reverts at speed $\kappa$ (an Ornstein–Uhlenbeck process, One Quant Book 4, chapter 4), a future with time $\tau$ to delivery moves by $e^{-\kappa\tau}$ times the spot’s shock, and its volatility falls with $\tau$. In the WTI data the annualised volatility of daily changes falls from 40.9% for the first contract to 38.3%, 35.3% and 33.6% for the second, third and fourth ([Figure 10.4](#fig-m3-forward-curves-storage-and-convenience-yield-samuelson)). One Quant Book 6, chapter 16, builds factor models of the whole curve on this effect.

![Annualised volatility of daily log changes of WTI contracts 1 to 4, January 1985 to April 2024, excluding the day each contract rolls and days with non-positive prices. Data: EIA.](https://one-course.com/images/onecourse/chapters/quant-3/m3-forward-curves-storage-and-convenience-yield/fig-1dcf964b48b3.svg)

***Figure 10.4.** Annualised volatility of daily log changes of WTI contracts 1 to 4, January 1985 to April 2024, excluding the day each contract rolls and days with non-positive prices. Data: EIA.*

## 10.5 Commodity indices and the footprint of their roll

**Definition 10.10 (Commodity index, roll window).**

A *commodity index* is a published rule for a basket of commodity futures positions (which contracts, in what weights, rolled when), whose total or excess return investors track through swaps, funds and notes. Its *roll window* is the set of days, fixed by the rule, on which the index sells the expiring contracts and buys the next ones, in equal parts each day.

**As of September 2026 — Two index roll windows.**

The S&P GSCI rolls over its 5th to 9th business days of each month, 20% a day; the Bloomberg Commodity Index over its 6th to 10th business days, also 20% a day.

A published window means that everyone knows, weeks ahead, that large index money will sell the near contract and buy the next one on five known days. Traders can put the same spread on before the window and take it off during it, selling to the index what it must buy. Mou (2010) measured the price impact of the Goldman roll from 2000 to March 2010, found strategies front-running it with Sharpe ratios as high as 4.39, and estimated that index investors forwent 3.6% of annual return. Several index providers have since offered variants that roll on other days or choose the contract to hold by the curve’s shape.

**Proposition 10.11 (The cost of a predictable roll).**

Suppose an index rolls $N$ barrels over $D$ days in equal parts and each day’s trade moves the spread against it by $k$ dollars per million barrels, the move persisting until the window ends. Executing after its own impact each day, the index pays on average $k\,(N/D)\,(D + 1)/2$ per barrel more than the spread before the window.

**Proof.** On day $j$ the spread has moved by $j\,k\,N/D$; the average of $j$ over $1,\dots,D$ is $(D + 1)/2$. ∎

With 50 million barrels, five days and $0.004 per million barrels (illustrative), the spread moves $0.04 a day and the roll costs $0.12 a barrel, $6 million a month.

## 10.6 Tutorial: implied convenience yield and roll yield from four contracts

**Goal.** From the four nearest WTI contracts and the T-bill rate, compute the net [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage), the Samuelson volatilities, and the return of an index-style rolled position split into its parts. **End state:** Figures [10.2](#fig-m3-forward-curves-storage-and-convenience-yield-cy), [10.3](#fig-m3-forward-curves-storage-and-convenience-yield-index) and [10.4](#fig-m3-forward-curves-storage-and-convenience-yield-samuelson).

1. **Carry arithmetic.** [Convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage), [full carry](#def-m3-forward-curves-storage-and-convenience-yield-carry), [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) and the roll schedule. `def net_convenience_yield (f1: float , f2: float , dt: float , r: float ) -> float : """y_c - u implied by two futures `dt` years apart and the rate r.""" return r - math.log(f2 / f1) / dt def full_carry_spread (f1: float , dt: float , r: float , u: float ) -> float : """Far minus near price at full carry (convenience yield zero): the largest spread storage allows.""" return f1 * (math.exp((r + u) * dt) - 1.0 ) def roll_yield (f_near: float , f_far: float , dt: float ) -> float : """Annualised return from rolling a long position from the far contract as it converges to the near one, all else equal: positive in backwardation.""" return math.log(f_near / f_far) / dt def roll_weights (business_day: int , start: int = 5 , end: int = 9 ) -> float : """Share of an index position already moved to the next contract after the close of the `business_day`-th business day of the month, rolling equal parts on days start..end.""" n = end - start + 1 return min (max (business_day - start + 1 , 0 ), n) / n` **Listing 10.1.** Carry relations and the index roll schedule. code/firm/commcurve/firm_commcurve.py
2. **The rolled position.** Contract identities from the expiry rule, weights from the window. `def index_series () -> list [tuple [dt.date, float , float ]]: """(date, excess-return index, nearby price): a long position in WTI futures that rolls from the contract of month M+1 to that of M+2 over the 5th-9th trading days of each month M.""" rows = load() trading_day = {} count: dict [tuple [int , int ], int ] = {} for d, _ in rows: count[(d.year, d.month)] = count.get((d.year, d.month), 0 ) + 1 trading_day[d] = count[(d.year, d.month)] level, out = 1.0 , [(rows[0 ][0 ], 1.0 , rows[0 ][1 ][0 ])] for (d0, p0), (d1, p1) in zip (rows, rows[1 :], strict=False ): k0, f0, f1 = month_index(d0.year, d0.month), front(d0), front(d1) w = roll_weights(trading_day[d0]) r = 0.0 for k, wk in ((k0 + 1 , 1 - w), (k0 + 2 , w)): if wk: r += wk * (p1[k - f1] / p0[k - f0] - 1 ) level *= 1 + r out.append((d1, level, p1[0 ])) return out` **Listing 10.2.** A long WTI position rolled over the 5th–9th trading days. code/markets-3/10-forward-curves-storage-and-convenience-yield/python/m3_curves.py
3. **Run** `m3_curves.samuelson()` , `decomposition()` , `roll_cost()` and `fig_curves.py` .

**What to change next.** Roll into the fourth contract instead of the second and compare the [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll); roll on the last five days before expiry and see what the negative price of April 2020 does to the position.

## 10.7 Build: the commodity curve object

**Purpose.** Every commodity desk of the miniature firm prices, hedges and rolls along a [forward curve](#def-m3-forward-curves-storage-and-convenience-yield-curve): the curve object interpolates it, reads its [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage), and schedules and measures rolls.

**Interface.** `ForwardCurve(taus, prices).price(tau)`, `.shape()`; `net_convenience_yield(f1, f2, dt, r)`; `full_carry_spread`; `roll_yield`; `roll_weights(business_day, start, end)`; `decompose(excess_log, spot_log, collateral_log)`.

**Rules.** Prices must be positive and maturities increasing (a negative-price day is refused, not interpolated); interpolation is linear in log price; rates are continuously compounded.

**Acceptance tests.** `code/firm/commcurve/tests/`: interpolation and shape; the carry identities; the 20% a day schedule; the decomposition.

**Stretch.** Seasonal curves (gas, power) with a seasonal factor per month; the curve from futures with different expiry calendars (Brent against WTI); the index’s roll cost measured on real spreads.

Sources and further reading

- N. Kaldor, “Speculation and economic stability”, *Review of Economic Studies* , 1939; H. Working, “The theory of price of storage”, *American Economic Review* , 1949; M. Brennan, “The supply of storage”, *American Economic Review* , 1958.
- P. Samuelson, “Proof that properly anticipated prices fluctuate randomly”, *Industrial Management Review* , 1965.
- G. Gorton and K. G. Rouwenhorst, “Facts and fantasies about commodity futures”, *Financial Analysts Journal* , 2006.
- Y. Mou, “Limits to arbitrage and commodity index investment: front-running the Goldman roll”, 2010 (SSRN 1716841).
- S&P Dow Jones Indices, *S&P GSCI Methodology* ; Bloomberg, *BCOM* methodology.
- EIA, NYMEX WTI contracts 1–4; FRED series DTB3.
- US Energy Information Administration, *This Week in Petroleum* , 21 October 2020.

## 10.8 Exercises

**Exercise 10.1 ★.**

Spot is $80, the rate 4%, storage 3% a year and the [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) 5%. Give the one-year forward.

**Solution of Exercise 10.1.**

$80\,e^{(0.04 + 0.03 - 0.05)} = 80\,e^{0.02} = \$81.62$.

**Exercise 10.2 ★.**

With the rate at 4% and storage at 3%, what is the largest one-month contango on an $80 barrel?

**Solution of Exercise 10.2.**

[Full carry](#def-m3-forward-curves-storage-and-convenience-yield-carry): $80\,(e^{0.07/12} - 1) = \$0.47$ a barrel.

**Exercise 10.3 ★.**

Why can backwardation be arbitrarily steep but contango cannot?

**Solution of Exercise 10.3.**

A contango steeper than [full carry](#def-m3-forward-curves-storage-and-convenience-yield-carry) is closed by the [cash-and-carry trade](#def-m3-forward-curves-storage-and-convenience-yield-carry), which anyone with storage can do. Arbitraging backwardation requires selling the commodity now and buying it back later, which only holders of inventory can do, and they hold it because they need it: the [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) has no upper bound.

**Exercise 10.4 ★★.**

The front contract is at $70.00 and the second at $71.20, a month apart; the rate is 5%. Give the net [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) and say what it means.

**Solution of Exercise 10.4.**

$0.05 - 12\ln(71.20/70.00) = -15.4\%$ a year: the curve is in contango by more than financing, so the market is paying for storage; [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage) is near zero and inventories are ample.

**Exercise 10.5 ★★.**

A rolled position earned 5.55% a year and the spot rose 3.08%. With a [collateral return](#def-m3-forward-curves-storage-and-convenience-yield-roll) of 3.18%, what was the [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll)?

**Solution of Exercise 10.5.**

$5.55 - 3.08 - 3.18 = -0.71\%$ a year.

**Exercise 10.6 ★★.**

In [Proposition 10.11](#prop-m3-forward-curves-storage-and-convenience-yield-rollcost), what does the roll cost per barrel if the index rolls in one day instead of five? In ten?

**Solution of Exercise 10.6.**

One day: $0.004 \times 50 \times 1 = \$0.20$ a barrel. Ten days: $0.004 \times 5 \times 5.5 = \$0.11$. Spreading the roll lowers the cost but lengthens the window others can trade ahead of.

**Exercise 10.7 ★★★.**

*Coding.* With `samuelson`, give the volatilities of contracts 1 to 4 and the ratio of the fourth to the first. What mean-reversion speed would an Ornstein–Uhlenbeck spot give for that ratio over three months?

**Solution of Exercise 10.7.**

40.9%, 38.3%, 35.3% and 33.6%; the ratio of the fourth to the first is 0.82. With $e^{-\kappa \times
0.25} = 0.82$, $\kappa = 0.79$ a year (a half-life of about 0.88 years).

**Exercise 10.8 ★★★.**

*Find the flaw.* “Oil rose 3% a year since 1985, so a commodity fund tracking oil futures earned 3% a year plus interest.”

**Solution of Exercise 10.8.**

The fund holds futures, not oil: it earns the spot change plus the [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) plus interest. With the curve in contango more than half the time, the roll cost 0.71% a year from 1985 to 2024, and more in some decades; fees and the index’s own roll costs come on top.

## 10.9 Problem: Front-Running the Roll

**Problem 10.1.**

Weekend problem — an index, its window and the traders ahead of it

Index money equivalent to 50 million barrels of WTI rolls each month from the second to the third contract over five known days. Each million barrels traded in a day moves the spread by $0.004 until the window ends (illustrative).

**Part I — The roll.**

1. How many barrels does the index roll each day?
2. By how much does each day’s trade move the spread?
3. What is the index’s average cost per barrel against the pre-window spread?
4. And per month, in dollars?
5. And per year?

**Part II — The front-runner.**

6. What position does a trader take before the window?
7. When does it close it, and what does it earn per barrel?
8. What limits how much it can do?
9. What happens to the index’s cost as more traders do this?
10. Why is this not manipulation?

**Part III — Design.**

11. What would rolling in one day cost? In ten?
12. Why do index providers keep the window public?
13. How does an index that rolls to deferred contracts change the [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) ?
14. How did Mou measure the impact, and what did he find?
15. What does the index investor see in its returns?

**Part IV — Judgement.**

16. Is a published roll a cost or a service to the index investor?
17. Why does contango make the roll more expensive to index investors even without front-running?
18. Would you invest in a [commodity index](#def-m3-forward-curves-storage-and-convenience-yield-index) today? What would you check?
19. State the *named result* : the cost of the predictable roll per barrel and per year.
20. In one sentence: who earns the [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) ?

**Solution of Problem 10.1.**

**1.** 10 million barrels. **2.** $0.04. **3.** $0.04 \times 3 = \$0.12$ a barrel. **4.** USD 6 million. **5.** USD 72 million. **6.** It sells the second contract and buys the third, the same spread the index will trade. **7.** During the window, selling the spread back to the index: it earns the spread’s rise, up to $0.20 a barrel on positions taken before the first day. **8.** Capital, margin, the risk that the spread moves for other reasons, and competition from other front-runners. **9.** Early positioning moves the spread before the window: the index still pays, but the gain is shared among more traders. **10.** The traders buy and sell at market prices on public information; they take the other side of a known trade, which is liquidity provision in advance. **11.** $0.20 in one day, $0.11 over ten. **12.** Transparency and replicability: products tracking the index must reproduce it exactly. **13.** Deferred contracts sit where the curve is flatter, so the [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) in contango is less negative. **14.** By comparing spread returns inside and outside the roll period, 2000 to March 2010: statistically significant price impact, front-running Sharpe ratios as high as 4.39, and about 3.6% of annual return lost by index investors. **15.** A lower return than the spot suggests, from both [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) and roll cost. **16.** Both: it makes the index replicable and cheap to run, but charges the investor the impact. **17.** In contango the new contract is dearer than the old: the position rolls into more expensive contracts every month. **18.** The curve’s shape ([roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll)), the index’s roll rule and its impact, fees, and the [collateral return](#def-m3-forward-curves-storage-and-convenience-yield-roll). **19.** *Named result:* $0.12 a barrel per roll, USD 6 million a month and USD 72 million a year in the illustrative model. **20.** Whoever provides the storage or the inventory the curve pays for: holders of the commodity in backwardation, storers in contango.

## 10.10 Interview questions

**Interview question 10.1 ★ trader.**

What is the [convenience yield](#def-m3-forward-curves-storage-and-convenience-yield-storage), and when is it high?

**Solution of Interview question 10.1.**

The implicit benefit of holding the physical commodity: the option to use it now. It is high when inventories are low and a stock-out is costly, which shows as backwardation.

*What the interviewer is looking for: inventory dependence and the curve’s shape.*

**Interview question 10.2 ★ trader, researcher.**

Decompose the return of a commodity futures index.

**Solution of Interview question 10.2.**

[Spot return](#def-m3-forward-curves-storage-and-convenience-yield-roll) (the nearby price’s change), [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll) (convergence of held contracts, positive in backwardation) and [collateral return](#def-m3-forward-curves-storage-and-convenience-yield-roll) (interest on the margin cash).

*What the interviewer is looking for: three parts, and the sign of [roll yield](#def-m3-forward-curves-storage-and-convenience-yield-roll).*

**Interview question 10.3 ★★ researcher.**

Why are near futures more volatile than far ones, and how would you model it?

**Solution of Interview question 10.3.**

Inventories and supply respond to shocks over time, so shocks to near delivery are larger than to far: the [Samuelson effect](#def-m3-forward-curves-storage-and-convenience-yield-samuelson). Model the spot as mean-reverting (Ornstein–Uhlenbeck) plus a slow factor: each future’s volatility is $\sigma e^{-\kappa\tau}$ plus the long-run factor’s.

*What the interviewer is looking for: mean reversion and a two-factor curve.*

**Interview question 10.4 ★★ trader.**

The curve is in steep contango and tankers are cheap. What trade do you consider, and what can go wrong?

**Solution of Interview question 10.4.**

[Floating storage](#def-m3-forward-curves-storage-and-convenience-yield-floating): buy the near, charter a tanker, sell the far. Risks: charter rates rising with demand, financing, operational losses, and the spread narrowing before you can lock it.

*What the interviewer is looking for: the carry trade and its costs.*

**Interview question 10.5 ★★ researcher, risk.**

How would you test whether an index’s [roll window](#def-m3-forward-curves-storage-and-convenience-yield-index) moves prices?

**Solution of Interview question 10.5.**

Event study: spread returns on the window’s days against other days, controlling for curve level and seasonality, over many months; test whether the effect scales with index size; placebo windows.

*What the interviewer is looking for: an event study with controls and placebos.*

**Interview question 10.6 ★★★ developer, researcher.**

Build a continuous futures series for backtesting. What choices matter and what are the traps?

**Solution of Interview question 10.6.**

Roll date (expiry, volume switch, fixed days), adjustment (none, difference, ratio), which contract to hold, and the handling of negative prices. Traps: ratio adjustment across negative prices, back-adjusted prices that no one traded, and signals computed on adjusted levels.

*What the interviewer is looking for: roll rules, adjustment choices and their artefacts.*
