Markets III: Commodities, Energy and Crypto · Markets
2Crude Oil
At 14:30 New York time on Monday 20 April 2020 the May contract on West Texas Intermediate crude settled at minus 37.63 dollars a barrel. The session had opened on Sunday evening at plus 17.73. The contract had never traded below zero since it was listed in 1983, and it expired the next day at plus 10.01. For about twenty minutes that afternoon a holder of the contract had to pay tens of dollars a barrel to be rid of oil it would otherwise have had to collect, in a town in Oklahoma whose tanks were three-quarters full and whose remaining space was already spoken for. This chapter explains what a crude benchmark is, how the three that price most of the world’s oil are built, and why the storage behind a benchmark matters as much as the oil in it.
2.1 Crude quality and the benchmarks
Crude oil is not one commodity but hundreds of grades, each a mixture of hydrocarbons whose value to a refinery depends on what it can make from it (Chapter 3). Two numbers summarise most of that value.
Definition 2.1 (API gravity)
The API gravity of a crude oil is
where is its specific gravity at relative to water. Water has 10 degrees API; the lighter (less dense) the oil, the higher its API gravity.
Definition 2.2 (Sweet crude, sour crude)
A crude oil is sweet crude if its sulphur content is low, conventionally below 0.5% by weight, and sour crude if it is higher. (The US Energy Information Administration’s statistics use a 1% threshold.)
Light, sweet crudes yield more gasoline and diesel with less processing and are worth more; heavy, sour ones need more complex refineries. A crude of specific gravity 0.827 has 39.6 degrees API. Physical contracts adjust for quality with escalators: so much per degree API above a reference, so much off per tenth of a percent of sulphur. With per degree and per 0.1% of sulphur, a 42° crude with 0.25% sulphur is worth more than a 38° reference with 0.40%.
Definition 2.3 (Benchmark crude)
A benchmark crude is a crude oil (or a basket of crudes) whose price is assessed or traded with enough volume and transparency that the prices of other grades are set as differentials to it.
Three families of benchmarks price most of the world’s oil: the North Sea complex built around Dated Brent, the US inland barrel WTI delivered at Cushing, Oklahoma, and the Middle-East benchmarks Dubai and Oman, now joined by Murban.
2.2 The North Sea complex
The seaborne benchmark is not one price but a set of linked markets, from physical cargoes loading in the next weeks to futures years ahead (Figure 2.1).
Definition 2.4 (Dated Brent, forward Brent, Brent CFD)
Dated Brent is the price-reporting agency’s daily assessment of physical North Sea cargoes with loading dates already fixed in the coming weeks, set by the most competitive of a basket of grades after quality adjustments. Forward Brent is the market in forward contracts for a cargo of one of the basket grades loading in a named future month, whose grade and loading dates the seller nominates later. A Brent CFD is a short-dated swap that exchanges the average of Dated Brent over one week for a fixed price agreed against forward Brent.
The basket exists because the output of the original Brent field fell long ago; more grades make the benchmark harder to squeeze. Each grade enters with a quality premium or de-escalator, and on each day the lowest net price sets the assessment. If on one day Forties is offered at and the other grades, net of their premiums, at or more, Dated Brent is .
As of September 2026 — The basket
Platts’ Dated Brent reflects Brent, Forties, Oseberg, Ekofisk and Troll and, since June 2023 deliveries, WTI Midland, a US grade delivered into Rotterdam, with assessments kept on an FOB basis, for cargoes of 700 000 barrels (up from 600 000) loading from ten days to a month ahead. Platts describes the benchmark as the reference point for around two-thirds of the world’s oil trade. ICE Brent futures are cash-settled against the ICE Brent Index, with an exchange for physical into forward cargoes.
2.3 The US inland benchmark
WTI is a pipeline crude, and its futures contract is physically delivered at a single inland hub: Cushing, Oklahoma, a town of tank farms where pipelines from the producing basins meet the lines to refineries. Because the futures are delivered there, the storage at Cushing is part of the contract.
Definition 2.5 (Last trading day)
The last trading day of a futures contract is the last day on which it can be traded. A position still open at its close must be settled by delivery (or, for a cash-settled contract, at the final settlement price).
As of September 2026 — The WTI futures
NYMEX Light Sweet Crude Oil futures: 1 000 barrels, delivery free on board at any pipeline or storage facility in Cushing, Oklahoma. Trading terminates three business days before the 25th calendar day of the month before the delivery month (three business days before the last business day preceding the 25th if it is not a business day). The active month rolls to the next contract some days before expiry, and the other months then settle from calendar-spread trades.
Most US pipeline crude does not price on a single day either.
Definition 2.6 (Calendar month average)
A calendar month average (CMA) price is the average of a benchmark’s daily settlements or assessments over the business days of a calendar month.
A barrel delivered in a month and priced on the CMA of the futures is exposed, on each day of that month, to the front contract, which changes identity when it expires in the middle of the month: CMA formulas are therefore often quoted with a “roll” adjustment for the part of the month priced on the second contract.
2.4 Middle-East pricing
The large Gulf producers sell most of their crude on term contracts to refiners, not in a spot market, at prices they set themselves.
Definition 2.7 (Official selling price)
An official selling price (OSP) is the monthly differential a national oil company publishes for each grade and destination region, to be added to a named benchmark average over the loading month to price its term cargoes.
For Asia the reference has long been the average of Dubai and Oman assessments; for August 2025 Saudi Aramco set its Arab Light for Asia at above that average. In March 2021 a futures exchange in Abu Dhabi began trading the first futures on Murban, a light (40° API) grade physically delivered at Fujairah, and in June 2021 the Abu Dhabi producer moved its Murban OSP to that contract.
As of September 2026 — The Gulf in 2026
After US and Israeli air strikes on Iran on 28 February 2026, flows of crude and products through the Strait of Hormuz fell, in the International Energy Agency’s words, “from around 20 mb/d before the war to a trickle”. The IEA called it the largest supply disruption in the history of the global oil market. Brent futures traded “within a whisker of $120/bbl” in March; IEA members agreed on 11 March to make 400 million barrels of emergency stocks available. The strait was “effectively closed again in early July”; Dated Brent ended July at . The seaborne benchmark rose far above the inland one (Figure 1.3).
2.5 20 April 2020 step by step
In the first quarter of 2020 an already oversupplied market lost a large share of its demand to the pandemic. US crude stocks rose by 15.8 million barrels a week for four weeks. Cushing, with 75.8 million barrels of working storage capacity, went from about half full in mid-March to about 76% on 17 April, and press reports said most of the remaining space was committed. A holder of the May contract at expiry had to take 1 000 barrels a contract at Cushing, which needed tank space or pipeline capacity booked in advance; most holders who were not in that business had to sell before the close on 21 April.
Proposition 2.8 (The storage floor)
If a trader can take delivery of the near contract, store the oil for months at cost per barrel-month and deliver it into the far contract, then, ignoring financing, the near price and the far price satisfy . The spread can exceed the cost of storage only if storage cannot be had at that cost.
Proof. Otherwise buy the near contract, take delivery, store, and sell the far contract: the cash flows are with no risk. ∎
On 20 April the June contract settled at : the May–June spread went from on the Friday to , the widest in the EIA’s daily history since 1985 (the next widest is $8.49). A trader who could have stored a barrel at Cushing for a month would have been paid $58.06 for doing so, against storage that CME Group reports had cost about 50 cents a barrel in a Cushing storage auction in March. Nobody with access to empty tanks was left to take the trade, and the floor of Proposition 2.8 did not bind.
Three features of the contract turned a glut into a negative price. It was physically delivered at one place whose storage was nearly full. Open interest in the May contract, 634 727 contracts at the start of April, was still 108 593 contracts at the start of the 20 April session, higher than usual for the penultimate day. And the settlement, taken from spread trades in a two-minute window, came at the end of the session in which those positions were being closed. Funds that held front-month futures moved away from it: United States Oil Fund, an exchange-traded oil fund that normally held the front contract, spread its holdings over later months in the days around the event. The exchange had warned its members earlier in April that prices could go negative, and it switched its option models to the Bachelier model (One Quant Book 2, chapter 13), which allows negative underlying prices. Figure 2.4 shows how exceptional the day was: in 39 years of daily data the spread exceeded $5 on only 25 days.
2.6 Tutorial: the expiry calendar and the storage floor
Goal. Compute the last trading day of any WTI contract and the storage cost the market implied on 20 April 2020. End state: Figures 2.2 and 2.4, expiry on 21 April 2020 and an implied storage cost of $58.06 per barrel-month.
The calendar. Business days, then the expiry rule of the dated box.
def is_business_day(d: dt.date, holidays: frozenset[dt.date] = frozenset()) -> bool: return d.weekday() < 5 and d not in holidays def shift_business_days(d: dt.date, n: int, holidays: frozenset[dt.date] = frozenset()) -> dt.date: """The n-th business day before d (n > 0), not counting d itself.""" while n > 0: d -= dt.timedelta(days=1) if is_business_day(d, holidays): n -= 1 return d def cl_last_trading_day(year: int, month: int, holidays: frozenset[dt.date] = frozenset()) -> dt.date: """Last trading day of the WTI futures for delivery month (year, month): three business days before the 25th calendar day of the preceding month; if the 25th is not a business day, three business days before the last business day preceding it.""" y, m = (year, month - 1) if month > 1 else (year - 1, 12) d = dt.date(y, m, 25) while not is_business_day(d, holidays): d -= dt.timedelta(days=1) return shift_business_days(d, 3, holidays)Listing 2.1. Business days and the WTI last trading day. code/firm/crude/firm_crude.py The floor. Proposition 2.8 and its inverse.
def storage_floor(far: float, storage_per_month: float, months: float, rate: float = 0.0) -> float: """No-arbitrage floor on the near futures price when storage is available: buying the near contract, storing and delivering into the far one must not earn a riskless profit, so near >= (far - storage cost) / (1 + rate * months / 12).""" return (far - storage_per_month * months) / (1.0 + rate * months / 12.0) def implied_storage_cost(near: float, far: float, months: float = 1.0) -> float: """Storage cost per barrel-month at which the near-far spread is exactly the carry (no financing).""" return (far - near) / monthsListing 2.2. The storage floor and the implied storage cost. code/firm/crude/firm_crude.py - Run
m3_crude.april_20(),spread_stats()andfig_crude.pyon the EIA series of contracts 1 to 4.
What to change next. Add the exchange holiday calendar and list every expiry since 2015; compute the implied storage cost from contracts 2 and 3 in the same weeks and see how much less extreme it was.
2.7 Build: the crude toolkit
Purpose. The miniature firm prices physical crude against three benchmark families: it needs quality arithmetic, the most-competitive-grade rule, the expiry calendar of the futures it hedges with, calendar-month averages and the storage floor that tells it when a spread is paying for tanks.
Interface. api_gravity(sg), specific_gravity(api); quality_adjusted(price, api, sulphur, ref_api, ref_sulphur, per_api, per_tenth_sulphur); basket_benchmark(grade_prices, premiums); cl_last_trading_day(year, month, holidays); calendar_month_average; storage_floor; implied_storage_cost.
Rules. Business days are weekdays not in the holiday set; a month with no settlement is an error; ties in the basket go to the alphabetically first grade, so the result is deterministic.
Acceptance tests. code/firm/crude/tests/: water at 10° API; the May 2020 contract expiring on 21 April 2020; the January 2024 contract with and without the Christmas holiday; the 20 April 2020 implied storage cost.
Stretch. Feed firm.contracts (One Quant Book 1, chapter 18) with the expiry dates; a CMA with the roll adjustment for the part of the month priced on the second contract.
Sources and further reading
- CFTC, Interim Staff Report on Trading in NYMEX WTI Crude Oil Futures Contract Leading up to, on, and around April 20, 2020, November 2020.
- NYMEX Rulebook, chapter 200 (Light Sweet Crude Oil Futures), via a clearing member’s specification page; ICE Brent Crude futures specification.
- S&P Global Platts, release of 8 June 2022 on WTI Midland in Dated Brent; Specifications Guide: Europe and Africa Crude Oil, November 2025, and Brent FAQ (Internet Archive copies).
- CME Group, “The Peaking of Storage” (education article, 2020; Internet Archive copy).
- US Energy Information Administration: glossary (API gravity); Today in Energy on Murban futures (2021); daily NYMEX futures prices, contracts 1–4.
- IEA, Oil Market Report, March and August 2026.
- United States Oil Fund, Form 8-K filings, April 2020.
2.8 Exercises
Exercise 2.1 ★
A crude has specific gravity 0.87. What is its API gravity? Is it lighter or heavier than a 39.6° crude?
Solution
Solution of Exercise 2.1.
° API: heavier (denser) than a 39.6° crude.
Exercise 2.2 ★
Give the last trading day of the WTI contract for December 2026 (25 November 2026 is a Wednesday; ignore holidays other than weekends).
Solution
Solution of Exercise 2.2.
The 25th of November 2026 is a business day, so trading ends three business days before it: Friday 20 November 2026.
Exercise 2.3 ★
Why is Dated Brent assessed from a basket of grades rather than from Brent alone?
Solution
Solution of Exercise 2.3.
A single field’s output falls over time and a small deliverable supply can be squeezed: whoever controls most cargoes of a month can move the price. Several grades, with quality adjustments and the most-competitive-grade rule, make the deliverable supply larger and the benchmark harder to manipulate.
Exercise 2.4 ★★
Using the escalators of the text, what is a 36° crude with 0.60% sulphur worth against a reference of at 38° and 0.40%?
Solution
Solution of Exercise 2.4.
.
Exercise 2.5 ★★
Storage at Cushing costs a month and money is free. The second contract is at . What is the floor on the front contract? What does a front price of $18 tell you?
Solution
Solution of Exercise 2.5.
. A front price of $18 implies a storage cost of $7 per barrel-month: storage at $0.40 is not available to those who could arbitrage, or the front contract is being liquidated faster than storage can be found.
Exercise 2.6 ★★
Arab Light for Asia is priced at the loading month’s Oman/Dubai average plus the OSP. With an OSP of and an average of , what does the buyer pay for a 2-million-barrel cargo?
Solution
Solution of Exercise 2.6.
USD 147.1 million.
Exercise 2.7 ★★★
Coding. With load_wti, count the days on which the second contract exceeded the front by more than $5, and give the widest and the second-widest spread in the history.
Solution
Solution of Exercise 2.7.
25 days above $5; the widest spread is $58.06 (20 April 2020), the second-widest $8.49.
Exercise 2.8 ★★★
Find the flaw. “Negative prices are impossible for a commodity with any use: someone will always take free oil.” Correct it.
Solution
Solution of Exercise 2.8.
A buyer of a physically delivered contract takes oil at a specific place and date. If there is nowhere to put it and moving it costs money, the oil at that place and date has a negative value to anyone without storage: it is a liability to be disposed of. “Free oil” is worth its value elsewhere, later, minus the cost of storing and moving it, which can exceed that value.
2.9 Problem: The Last Day of the May Contract
Problem 2.1
Weekend problem — 20 April 2020 from the long side
On the morning of Monday 20 April 2020 a fund holds 1 000 May WTI contracts. It has no storage at Cushing and no pipeline space. On the Friday the May contract settled at and the June at ; normal Cushing storage leases cost a month (illustrative).
Part I — The position.
- How many barrels does the fund have to take if it holds to expiry?
- When is the last trading day, and why is 20 April the penultimate day?
- What is the fund’s mark-to-market value at Friday’s settlement?
- What was the May–June spread on Friday, and what storage cost did it imply?
- Was that consistent with the normal lease?
Part II — The day.
- The May contract settles at . What is the fund’s one-day variation margin?
- What storage cost does the May–June spread now imply?
- How many times the normal lease is that?
- Why did the storage floor not bind?
- What would a trader with 1 million barrels of empty tank at Cushing have earned by buying May and selling June at settlement, storing for a month at the normal cost?
Part III — The alternatives.
- What would the fund have paid to roll into June at Friday’s settlements?
- What does a long-only fund lose from rolling in contango, per barrel, at Friday’s spread?
- Why did holding later months protect a fund?
- Why did the settlement method (spread trades in a two-minute window) matter?
- Which model did the exchange switch its options to, and why?
Part IV — Judgement.
- Who was on the other side: who can buy a contract at ?
- What does the day say about the difference between a cash-settled and a physically settled benchmark?
- Would a Brent futures contract have gone negative on the same day? Why?
- State the named result: the storage cost the market implied on 20 April.
- In one sentence: what is a physically delivered futures price a price of?
Solution
Solution of Problem 2.1.
1. 1 000 000 barrels. 2. 21 April 2020: 25 April was a Saturday, the last business day before it Friday 24 April, and three business days before that is Tuesday 21 April; 20 April is the day before. 3. USD 18.27 million. 4. $6.76, a storage cost of $6.76 per barrel-month. 5. No: about 17 times the normal lease; storage was already scarce. 6. USD 55.90 million. 7. $58.06 per barrel-month. 8. About 145 times. 9. Nobody who could still take delivery and store had space left, so the arbitrage of Proposition 2.8 could not be done at scale. 10. USD 57.66 million. 11. $6.76 a barrel, USD 6.76 million. 12. $6.76 a barrel, 27% of the June price, in a month. 13. Later months were further from delivery and priced with the expected recovery; a fund in them was not forced to sell into the settlement window. 14. The price was set by the average of spread trades between 14:28 and 14:30, when holders without storage were forced to sell: a small window at the worst moment. 15. The Bachelier model, which allows a negative underlying; lognormal models cannot price options on a negative future. 16. Holders of storage or pipeline space, refiners, and traders short the May contract with delivery capacity: for them oil at was paid storage. 17. A physically settled benchmark prices the commodity at one place and date, including the cost of taking it; a cash-settled one prices an index and cannot be forced into delivery. 18. No: ICE Brent is cash-settled on an index of a seaborne market with ships as storage; the EIA’s Brent spot price fell no lower than $9.12 (21 April 2020). 19. Named result: $58.06 per barrel for one month, about 145 times the illustrative lease. 20. Of the commodity at the delivery place and date, net of what it costs to take and keep it there.
2.10 Interview questions
Interview question 2.1 ★ trader
What is the difference between Dated Brent and the Brent futures price?
Solution
Solution of Interview question 2.1.
Dated Brent is an agency’s assessment of physical North Sea cargoes loading in the coming weeks; ICE Brent futures are exchange-traded contracts for a month months ahead, cash-settled against an index of the forward market. The CFDs and the forward market link them.
What the interviewer is looking for: physical versus paper, the time dimension, the linking instruments.
Interview question 2.2 ★ trader, researcher
How can the price of a commodity be negative?
Solution
Solution of Interview question 2.2.
When the price is for delivery at a place and time where taking the commodity costs more than it is worth: full storage, no transport, disposal costs (power in a congested hour, gas in a full network). Paper follows the physical at delivery.
What the interviewer is looking for: the price is of a delivered good; storage and logistics set a floor only if available.
Interview question 2.3 ★★ researcher
You backtest a front-month WTI strategy on a continuous series and find a trade on 20 April 2020 that made a fortune. What do you check?
Solution
Solution of Interview question 2.3.
Whether the continuous series rolled before the penultimate day as any real fund would, whether the strategy could have held the May contract at all (delivery, accountability levels), whether the fill at the settlement was achievable, and whether the P&L comes from one day; a log-return series breaks on a negative price.
What the interviewer is looking for: roll conventions, feasibility, the negative price as a data bug trap.
Interview question 2.4 ★★ trader
The front WTI spread is and a month of Cushing storage costs $0.40. What trade does this suggest, and what can go wrong?
Solution
Solution of Interview question 2.4.
A spread of $1.50 against $0.40 of storage pays $1.10 for cash-and-carry: buy the front, take delivery, store, sell the second month. Risks: storage and pipeline scheduling, financing, quality and losses, and the possibility that the spread widens further before delivery, which costs margin.
What the interviewer is looking for: the carry trade, and its operational and liquidity risks.
Interview question 2.5 ★★ developer, risk
Your pricing library computes option prices with the Black formula on the log of the futures price. What breaks when the futures go negative, and what do you do?
Solution
Solution of Interview question 2.5.
is undefined for : prices, implied volatilities and Greeks fail. Switch to a normal (Bachelier) model or a shifted lognormal, re-mark the surface in that model, and make the code refuse a log of a non-positive price rather than return NaN.
What the interviewer is looking for: Bachelier, shifted models, defensive code.
Interview question 2.6 ★★★ trader, risk
Why does a benchmark based on a basket of grades and several markets resist squeezes better than a single-grade physical contract, and what does it cost?
Solution
Solution of Interview question 2.6.
Several grades mean more deliverable supply and more sellers, so cornering the cheapest grade is expensive; the price is the most competitive grade’s. The cost is complexity: quality premiums must be set and revised, and the benchmark’s grade can change from day to day, which adds basis for hedgers.
What the interviewer is looking for: deliverable supply against squeezes; quality-adjustment and basis costs.