How to Read Volatility Term Structure: Contango, Backwardation & Event Pricing
Volatility term structure plots ATM implied volatility across expirations, revealing whether the market is in contango or backwardation. Learn how to read term structure shape, extract event-implied moves using total variance, and build a Python term structure analyzer using the FlashAlpha API.
Volatility term structure is a plot of at-the-money implied volatility (ATM IV) across all available option expirations for a given underlying. Each point on the curve represents the market's annualized volatility expectation for that specific time horizon. A 30-day option priced at 25% IV tells you the market expects annualized 25% volatility over the next month. A 90-day option at 28% IV tells you the same market expects slightly higher annualized volatility over the next quarter.
The shape of this curve is what matters. Two stocks can have identical ATM IV for the front month, but completely different term structures — and those shapes carry very different information about market expectations, event risk, and trading opportunities.
Term structure is distinct from the volatility smile or skew, which plots IV across strikes for a single expiration. Term structure plots IV across time at a fixed delta (typically ATM or 50-delta). Together, term structure and skew form the full volatility surface.
Why This Matters
Term structure shape is one of the fastest regime indicators available. A single glance tells you whether the market is calm, fearful, or pricing a discrete event — and each state implies a different optimal trading strategy. If you trade options without checking term structure, you are ignoring half the information the market is giving you.
Contango: The Normal State
In calm markets, volatility term structure slopes upward — shorter-dated options have lower IV than longer-dated options. This is called contango, borrowing the term from commodity futures where the same upward-sloping pattern appears.
Contango is the default state because of a fundamental property of uncertainty: the further into the future you look, the more things can happen. A stock might be quiet this week, but over the next six months it faces earnings cycles, macro events, sector rotations, and general market risk. Longer-dated options must price in all of these possibilities, so their IV is naturally higher.
~65%
Of trading days, SPX term structure is in contango
2-5%
Typical IV slope from 30d to 90d in calm markets
+0.15
Average annualized slope per month in steady contango
The steepness of contango also carries information. A steep contango — where far-dated IV is significantly higher than near-term — suggests the market is extremely complacent in the short run but sees risk on the horizon. A flat contango, where the curve barely slopes upward, suggests the market expects current conditions to persist.
Backwardation: The Warning Signal
When the term structure inverts — shorter-dated IV exceeds longer-dated IV — the curve is in backwardation. This is the abnormal state, and it signals one of two things: the market is under stress right now, or a specific near-term event is inflating front-month IV.
Stress-Driven Backwardation
During market selloffs, fear spikes short-term IV far above long-term IV. Traders rush to buy near-term puts for protection, driving front-month IV sharply higher. The back end stays relatively anchored because the market assumes the crisis will eventually resolve. VIX term structure inverted during COVID (March 2020), the 2022 rate shock, and every meaningful correction in between.
Event-Driven Backwardation
Individual stocks frequently enter backwardation before earnings, FDA decisions, or other binary events. The front expiration — the one that brackets the event — inflates while expirations after the event stay normal. This is not fear. It is the market pricing a known uncertainty that resolves on a specific date.
Contango (Normal)
Short-term IV < long-term IV
Market is calm, no imminent risk
Calendar spreads benefit from positive theta
Front-month premium selling is less attractive
Volatility risk premium is typically positive
Backwardation (Inverted)
Short-term IV > long-term IV
Market stress or event pricing
Calendar spreads face headwinds
Front-month premium selling is richly compensated
Realized vol often spikes above implied
Figure 1. Contango vs backwardation term structure. In contango (green), IV increases with time to expiration. In backwardation (red dashed), near-term IV exceeds longer-dated IV, signaling stress or event pricing.
Event Pricing and Implied Moves
Discrete events — earnings announcements, FOMC decisions, CPI releases — create visible bumps in the term structure. The expiration that brackets the event has elevated IV relative to surrounding expirations. This bump is not noise; it is the market's consensus estimate of the event's impact.
You can extract the implied move for a specific event using the total variance method. The key insight is that variance (IV squared times time) is additive, but volatility is not. By comparing total variance across expirations that straddle the event, you can isolate the event's contribution.
Total Variance Method
Total variance for an expiration is calculated as IV² × T, where T is time to expiration in years. To extract the event-implied move: compute total variance for the expiration just after the event and the expiration just before the event. The difference is the event variance. The implied move is the square root of the event variance, typically expressed as a percentage of spot price.
For example, if a stock has a weekly option expiring before earnings with 30% IV (T = 0.02 years) and a weekly option expiring after earnings with 55% IV (T = 0.04 years):
This tells you the market is pricing in approximately an 11% move from the earnings announcement. Compare this to the stock's historical earnings moves to assess whether the market is over- or under-pricing the event.
The total variance method works because variance is additive across independent time intervals. If the pre-event period and the event itself are approximately independent, you can subtract the "background" variance to isolate the event. This method assumes the pre-event and post-event periods contribute independently to total variance — a reasonable approximation when the event window is short relative to the total time to expiration. This is the standard approach used by institutional desks and volatility arbitrage funds.
Figure 2. Event bump in term structure. The Apr 25 expiration (which brackets earnings) shows elevated IV compared to the smooth baseline. Pre-event and post-event expirations anchor the "normal" curve, allowing you to isolate the event-implied variance.
Term Structure Slope as a Regime Indicator
The slope of the term structure — the difference between short-dated and long-dated IV — acts as a real-time regime indicator. You do not need sophisticated models to read it. The signal is in the shape.
Slope
State
Signal
Trading Implication
Steep contango
30d IV << 90d IV
Near-term complacency, longer-term risk priced
Sell far-dated vol, buy near-dated; ratio calendars
Flat
30d IV ≈ 90d IV
Transition zone — watch for directional shift
Neutral; avoid calendar spreads, prefer verticals
Mild backwardation
30d IV > 90d IV by 1-3%
Elevated near-term risk, event premium
Sell front-month premium; calendar spreads short front
Figure 3. Term structure regime gauge. The slope (30d IV minus 90d IV) maps to a spectrum from deep backwardation (left, red) through flat (center, gray) to steep contango (right, green). The marker shows a sample reading of +3.2% slope, indicating mild contango.
Tracking the slope over time reveals regime transitions before they become obvious in price. When a stock's term structure flattens from steep contango over several days, it often precedes a volatility expansion — the market is gradually pricing in growing near-term uncertainty even before a visible catalyst appears.
Pull Term Structure with the FlashAlpha API
The Volatility Analysis endpoint (/v1/volatility/{symbol}, Growth plan) returns term structure data including the contango/backwardation state and slope percentages. For a free-tier view of the surface, the Surface endpoint (/v1/surface/{symbol}) provides IV across strikes and expirations. Free tier includes 10 requests per day.
Here is a complete Python script that pulls term structure, identifies the regime, and extracts the earnings-implied move:
from flashalpha import FlashAlphaClient
import math
client = FlashAlphaClient(api_key="your_api_key")
# --- Step 1: Pull term structure and regime ---
vol = client.get_volatility("NVDA")
print(f"NVDA ATM IV: {vol['atm_iv']}%")
print(f"Term Structure: {vol['term_structure']['state']}")
print(f"Slope (30d-90d): {vol['term_structure']['slope_pct']}%")
# Access per-expiration ATM IV
for exp in vol["term_structure"]["expirations"]:
print(f" {exp['expiry']} IV={exp['atm_iv']}% DTE={exp['dte']}")
# --- Step 2: Identify regime ---
state = vol["term_structure"]["state"]
slope = vol["term_structure"]["slope_pct"]
if state == "backwardation":
print(f"\n⚠ BACKWARDATION detected (slope: {slope}%)")
print(" Near-term IV elevated — check for upcoming event")
elif state == "contango" and slope > 5:
print(f"\n✓ Steep contango (slope: {slope}%)")
print(" Calendar spreads and front-month premium selling favored")
else:
print(f"\n— Mild contango (slope: {slope}%)")
print(" Neutral regime — no strong term structure signal")
# --- Step 3: Extract earnings implied move ---
exps = vol["term_structure"]["expirations"]
# Find the two expirations that straddle earnings
# (Assumes you know approximate earnings date)
earnings_date = "2026-04-23" # example
pre_event = None
post_event = None
for exp in exps:
if exp["expiry"] < earnings_date:
pre_event = exp
elif exp["expiry"] >= earnings_date and post_event is None:
post_event = exp
if pre_event and post_event:
tv_pre = (pre_event["atm_iv"] / 100)**2 * (pre_event["dte"] / 365)
tv_post = (post_event["atm_iv"] / 100)**2 * (post_event["dte"] / 365)
event_var = tv_post - tv_pre
if event_var > 0:
implied_move = math.sqrt(event_var) * 100
print(f"\nEarnings Implied Move: ±{implied_move:.1f}%")
print(f" Pre-event: {pre_event['expiry']} IV={pre_event['atm_iv']}%")
print(f" Post-event: {post_event['expiry']} IV={post_event['atm_iv']}%")
else:
print("\nNo event premium detected between these expirations")
else:
print("\nCould not find expirations straddling earnings date")
Calendar Spread Trading with Term Structure Signals
Calendar spreads are the natural expression of a term structure view. You sell the expiration with relatively high IV and buy the expiration with relatively low IV — profiting when the term structure normalizes.
Selling Backwardation (Post-Event Normalization)
When a stock enters backwardation before earnings, the front expiration is inflated. A calendar spread — short the front expiration, long the back expiration at the same strike — profits from the IV collapse in the front leg after the event resolves, while the back leg holds its value. This is the purest expression of selling event premium.
Selling Steep Contango
When long-dated IV is unusually elevated relative to short-dated, a reverse calendar — long the front, short the back — bets on flattening. This is less common and riskier, because contango can persist for extended periods. It works best when the back-end elevation is driven by a specific identifiable factor (e.g., an election, a regulatory decision) that is likely to resolve.
Calendar spreads are not pure volatility bets. They also carry directional risk — a large gap in the underlying can overwhelm the vol differential. Size calendars to the maximum loss (the debit paid) and use ATM strikes to minimize directional exposure. If you want pure term structure exposure, use variance swaps or VIX futures spreads at the index level.
Figure 4. Calendar spread structure for selling backwardation. Sell the inflated near-term option (red) and buy the normally-priced far-term option (blue). After the event, near-term IV collapses while far-term IV holds steady, generating profit from term structure normalization.
Practical Workflow
Check term structure state
Use the /v1/volatility/{symbol} endpoint to confirm contango or backwardation and read the slope percentage.
Identify the event
If in backwardation, determine whether the cause is an earnings date, macro event, or market-wide stress. The trade differs for each.
Extract the implied move
Use total variance to isolate the event contribution. Compare to historical moves to assess if the market is over- or under-pricing.
Structure the calendar
Sell the inflated expiration, buy the adjacent expiration. Choose ATM strikes for the cleanest term structure expression.
Monitor post-event
After the event, front IV should collapse. Close the spread once normalization occurs rather than holding to full expiration.
Track Term Structure with FlashAlpha
The /v1/volatility/{symbol} endpoint (Growth plan) returns everything you need for term structure analysis: per-expiration ATM IV, contango/backwardation state, slope percentages, and VRP data. For visualizing the full IV surface across both strikes and expirations, the /v1/surface/{symbol} endpoint is available on the free tier with 10 requests per day.
Monitor Term Structure in Real-Time
Detect contango/backwardation shifts, extract event-implied moves, and track slope changes across your watchlist.
Volatility term structure is a curve that plots at-the-money implied volatility across different option expirations for a given underlying. It shows how the market's volatility expectations change as you move further into the future. When the curve slopes upward (contango), the market is calm. When it inverts (backwardation), the market is pricing elevated near-term risk.
Contango means longer-dated options have higher implied volatility than shorter-dated options — this is the normal state in calm markets. Backwardation means shorter-dated options have higher IV than longer-dated options, signaling near-term stress or an upcoming event like earnings or an FOMC decision. The terms are borrowed from commodity futures where similar curve dynamics occur.
Use the total variance method. Calculate total variance (IV squared times time to expiration) for the expiration just before earnings and the expiration just after earnings. Subtract the pre-event variance from the post-event variance to isolate the event's contribution. The square root of this event variance gives you the implied percentage move the market is pricing for the earnings announcement.
Calendar spreads profit from term structure normalization. In backwardation (e.g., before earnings), sell the inflated front-month option and buy the back-month option at the same strike. After the event, front IV collapses while back-month IV holds steady, and the spread gains value. Use ATM strikes to minimize directional exposure and size positions to the maximum loss, which is the debit paid.