Lesson 063 min read

Rollover & Term Structure: The Contango Bleed

November 05, 2026

// TL;DR

Futures expire, so to hold a view past expiry you must ROLL: close the expiring contract and open the next month. This isn't free. In CONTANGO (future above spot, the usual state), the next month is dearer, so a rolling long PAYS the gap each time — e.g. near 24,138, next 24,290 costs 152 points, roughly +0.6%/month ≈ 7.6%/year DRAG (the 'contango bleed' that quietly kills naive long-and-hold futures strategies, especially in natural gas and crude). In BACKWARDATION (future below spot), the roll PAYS you (e.g. +128 points, a tailwind). This is ROLL YIELD, and it's a real, countable cost/income — not optional. Roll a few days BEFORE expiry (liquidity and volatility spike at expiry), and for backtesting stitch contracts into a continuous, back-adjusted series (Lesson 11) or your results are fiction.

Here is a cost that catches almost everyone who treats a future like a stock: you cannot just “buy and hold” it, because it expires. To keep a position you must roll it, and depending on the term structure, rolling quietly costs or pays you. This is the contango bleed, and it has destroyed many naive strategies.

Rolling, and the two regimes

Rollover, contracts expire so you must roll, and the shape of the term structure quietly helps or hurts a long. Contango, future above spot, the normal state: near-month 24,138, next-month 24,290; rolling a long means sell near and buy next, so you pay 152 points to roll, about plus 0.6 percent per month equals roughly 7.6 percent per year drag on a long, the contango bleed that kills naive long-and-hold futures strategies. Backwardation, future below spot: near-month 24,138, next-month 24,010; rolling a long means sell near and buy next, so you gain 128 points to roll, about minus 0.5 percent per month equals roughly 6.4 percent per year tailwind, signalling tight supply where a long who rolls is actually paid to hold. Rollover is not optional, plan for it: every future expires so to hold a view beyond expiry you must roll by closing the expiring contract and opening the next month; in contango the next month is dearer so a repeated-rolling long pays the gap each time, a steady drag; in backwardation the roll pays you; so always know your term structure, roll a few days before expiry when liquidity and volatility spike, and for backtests stitch contracts into a continuous series correctly.

To roll is to close your expiring contract and open the same position in the next month. What it costs depends on the term structure (Lesson 3):

  • Contango (the normal state). The next month trades above the near month. Rolling a long means selling the cheaper near and buying the dearer next — so you pay the gap every roll. Example: near-month 24,138, next-month 24,290 — rolling a long costs 152 points. Annualised, that is roughly +0.6% per month ≈ 7.6% per year of drag on a long position. This is the famous “contango bleed”, and it is why “just hold the future” quietly loses money even when the spot price is flat — especially brutal in natural gas and crude, which are often in steep contango.
  • Backwardation. The next month trades below the near month. Rolling a long means selling the dearer near and buying the cheaper next — so you gain the gap. Example: near 24,138, next 24,010 — rolling a long gains 128 points, a tailwind of ~6.4%/year. Backwardation signals tight current supply, and a long who rolls is effectively paid to hold.

Roll yield

This cost-or-gain from rolling is called roll yield, and it is a real, countable component of your return — separate from the price move itself:

def roll_yield(near, far, side="long"):
    # cost (negative) or gain (positive) of rolling, per roll, in points
    gap = far - near
    return (-gap if side == "long" else gap)

roll_yield(24138, 24290, "long")    # -152  (contango: a long PAYS to roll)
roll_yield(24138, 24010, "long")    # +128  (backwardation: a long is PAID to roll)

Your total return on a held-and-rolled future ≈ price change + roll yield. In persistent contango, the roll yield can quietly eat all of a modest price gain. Any strategy that holds futures across expiries must account for roll yield — ignoring it is how backtests lie and real accounts bleed.

How to roll properly

  • Roll a few days before expiry, not on the day. Liquidity thins and volatility spikes at expiry, so rolling early gets you better fills and avoids expiry-day chaos.
  • Watch the term structure to time it — if you are long and the market is in steep contango, be aware you are paying each roll and factor it into whether the trade is worth holding.
  • For backtesting, use a continuous, back-adjusted series (Lesson 11). If you naively glue monthly contracts together, the price jumps at every roll and your backtest invents fake profits/losses. Back-adjustment shifts the old data by the roll gap so the series is continuous and your results are real.

Pitfalls

  • “Buy and hold the future” in contango. The roll bleed erodes you steadily even if spot is flat. Futures are not stocks; holding has a carrying cost.
  • Rolling on expiry day. Thin liquidity and wild volatility give bad fills. Roll a few days early.
  • Backtesting on naively-stitched contracts. The roll gaps create fake P&L. Use a back-adjusted continuous series or your backtest is fiction.

Recap

Futures expire, so holding a view means rolling to the next contract, and the term structure decides the cost: in contango a rolling long pays the gap (the ~7.6%/yr contango bleed), in backwardation it gets paid. This roll yield is a real part of your return — total ≈ price change + roll yield. Roll a few days early, know your term structure, and backtest on a back-adjusted continuous series.

Next: Lesson 7 — Directional Strategies, putting it together with trend, breakout and mean-reversion systems.