Strasmore Research
Deep dive investigation Matt ConnorBy Matt Connor · Updated 2026-08-08

IV Term Structure: Wetin the Curve Dey Tell You

IV term structure na implied volatility plotted by expiration. See wetin upward and inverted curves mean, with real option data wey show their shape.

IV term structure na implied volatility wey dem plot against expiration, with one reading for each expiry, using options wey get strike close to the current share price. Two shapes cover almost everything wey you go see: upward slope for quiet market conditions, where distant expirations get the higher number, and inverted curve when dated event dey for the front month. Both shapes below come from per-contract option data, no be textbook diagram.

Wetin IV term structure dey measure

Implied volatility na the annualized size of the move wey option price dey imply for the underlying stock. Dem dey quote am per contract, so one stock fit get hundreds of readings at any moment. Each reading na for different strike and expiration wey dey the board. If you keep strike near current price and make expiration dey change, the readings go line up into curve. Na this curve be the term structure.

How you sample the data matter pass wetin most explanations dey admit. Every panel here dey use contracts wey absolute delta dey between 0.35 and 0.65. Na standard way to describe near the money without tying the analysis to one strike. Then e dey take median implied volatility inside each maturity band. Median, no be average: one stale quote for contract wey hardly trade fit show strange number, and average go carry that number enter the result.

Na here be the curve for six liquid names across the June 2026 sessions.

QueryIV term structure, six liquid names: median near-the-money implied volatility by expiry band, June 2026
The exact SQL behind every number
WITH (
    SELECT quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker))
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'KO', 'JNJ', 'PG')
      AND date >= toDate('2026-06-01')
      AND date < toDate('2026-07-01')
      AND iv_converged = 1
      AND volume > 0
      AND implied_volatility BETWEEN 0.03 AND 3
      AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
      AND days_to_expiry BETWEEN 5 AND 20
) AS front_band_iv
SELECT multiIf(days_to_expiry <= 20, '5-20 days',
               days_to_expiry <= 45, '21-45 days',
               days_to_expiry <= 90, '46-90 days',
               days_to_expiry <= 180, '91-180 days',
               '181-365 days') AS expiry_band,
       round(100 * quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)), 1) AS median_iv_pct,
       round(100 * (quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)) - front_band_iv), 1) AS pts_vs_front_band,
       count() AS contract_count
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('SPY', 'AAPL', 'MSFT', 'KO', 'JNJ', 'PG')
  AND date >= toDate('2026-06-01')
  AND date < toDate('2026-07-01')
  AND iv_converged = 1
  AND volume > 0
  AND implied_volatility BETWEEN 0.03 AND 3
  AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
  AND days_to_expiry BETWEEN 5 AND 365
GROUP BY expiry_band
ORDER BY min(days_to_expiry)
Run this yourself

Median implied volatility measured 19.6% for the 5-20 days band and 21.5% for the 181-365 days band, 1.9 points above the front. The shape get name wey futures markets lend am: contango, where later delivery get higher price. If the curve turn upside down, dem dey call am backwardation.

Why curve dey usually slope upward

Two mechanics dey keep the normal shape in place.

The first one na event density. Contract wey go expire in nine days cover nine days of calendar risk. For large-cap stock wey get nothing scheduled inside that period, most of those days na normal trading days. Contract wey go expire in one year cover four quarterly reports, several central bank meetings, plus every unscheduled headline wey fit happen in between. More known unknowns for each contract dey push the annualized number wey market ready to pay higher.

The second one na how volatility itself dey behave. Realized volatility dey cluster: quiet weeks dey follow quiet weeks, and violent weeks dey follow violent weeks. When market dey quiet, near-dated options dey price close to today’s quiet reading. Options wey go expire one year from now dey price nearer the long-run average, and that average dey higher. The same arithmetic dey work in reverse after shock. For the sessions after crash, the front expiry dey print the highest implied volatility for the board. The curve dey invert across the whole length, while the far months remain anchored near their usual level.

Curve dey flip because of one dated event

Scheduled earnings report na the clearest inversion wey you fit watch. The report go come out after market close on known date. Every expiry wey settle after that date go contain the move, while every expiry wey settle before am no go contain am. The nearest expiry wey cover the event get the fewest normal days to spread the move across, so e annualized reading go rise pass. Six-month option go spread the same event across roughly 125 trading days, so e barely show for the reading.

NVIDIA report after market close on Wednesday, February 26, 2025. The panel read the whole curve two times: for the last session before the print, February 25, and the first session after am, February 27.

QueryNVDA term structure for both sides of the February 26, 2025 report: median near-the-money IV by expiry band
The exact SQL behind every number
SELECT multiIf(days_to_expiry <= 20, '5-20 days',
               days_to_expiry <= 45, '21-45 days',
               days_to_expiry <= 90, '46-90 days',
               days_to_expiry <= 180, '91-180 days',
               '181-365 days') AS expiry_band,
       round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                toDate(date) = toDate('2025-02-25')), 1) AS iv_before_print_pct,
       round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                toDate(date) = toDate('2025-02-27')), 1) AS iv_after_print_pct,
       round(100 * (quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                 toDate(date) = toDate('2025-02-25'))
                  - quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                 toDate(date) = toDate('2025-02-27'))), 1) AS iv_drop_pts
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
  AND date >= toDate('2025-02-25')
  AND date < toDate('2025-02-28')
  AND iv_converged = 1
  AND volume > 0
  AND implied_volatility BETWEEN 0.05 AND 5
  AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
  AND days_to_expiry BETWEEN 5 AND 365
GROUP BY expiry_band
HAVING countIf(toDate(date) = toDate('2025-02-25')) >= 3
   AND countIf(toDate(date) = toDate('2025-02-27')) >= 3
ORDER BY min(days_to_expiry)
Run this yourself

The 5-20 days band read 84.9% for the session before the print and 66.4% for the session after am, na change of 18.5 points. The 181-365 days band move 1 points across the same two closes, just small part of the front band move. Na one underlying and one event, but the two ends of the curve experience am differently. That front-end collapse na IV crush, and na for the term structure you fit see am ahead of time.

How the curve dey build and collapse

One session before or after report na just snapshot. The build dey take weeks, and e dey show as the gap between the two ends of the curve dey widen.

QueryNVDA front band versus 91-180 day band: median near-the-money IV per session, Feb 10 to Mar 14, 2025
The exact SQL behind every number
SELECT toDate(date) AS session_date,
       round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                days_to_expiry BETWEEN 5 AND 20), 1) AS front_iv_pct,
       round(100 * quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                days_to_expiry BETWEEN 91 AND 180), 1) AS back_iv_pct,
       round(100 * (quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                 days_to_expiry BETWEEN 5 AND 20)
                  - quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                                 days_to_expiry BETWEEN 91 AND 180)), 1) AS front_minus_back_pts
FROM global_markets.options_greeks
WHERE underlying_symbol = 'NVDA'
  AND date >= toDate('2025-02-10')
  AND date < toDate('2025-03-15')
  AND iv_converged = 1
  AND volume > 0
  AND implied_volatility BETWEEN 0.05 AND 5
  AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
  AND ((days_to_expiry BETWEEN 5 AND 20) OR (days_to_expiry BETWEEN 91 AND 180))
GROUP BY session_date
HAVING countIf(days_to_expiry BETWEEN 5 AND 20) >= 3
   AND countIf(days_to_expiry BETWEEN 91 AND 180) >= 3
ORDER BY session_date
Run this yourself

The gap between the bands be 12.4 points for the first session of the window and 3.3 points for the last one, across 24 sessions. Watch the shape of the front line instead of the level: e dey climb as the report dey near, e reach top for the sessions around am, then e drop back within one session after. The back line hardly move throughout. Earnings and the option greeks explain wetin the same event dey do to vega and theta for the individual contracts.

How often curve dey inverted?

Inversion no be rare, and how much time one name dey spend there fit differ well-well across tickers.

QueryShare of sessions wey curve invert: front band dey above the 91-180 day band, twelve months to July 31, 2026
The exact SQL behind every number
WITH daily AS (
    SELECT underlying_symbol,
           toDate(date) AS session_date,
           quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                        days_to_expiry BETWEEN 5 AND 30) AS front_iv,
           quantileDeterministicIf(0.5)(toFloat64(implied_volatility), cityHash64(ticker),
                                        days_to_expiry BETWEEN 91 AND 180) AS back_iv
    FROM global_markets.options_greeks
    WHERE underlying_symbol IN ('NVDA', 'AAPL', 'MSFT', 'AMZN', 'KO', 'JNJ', 'PG', 'SPY', 'XOM', 'WMT')
      AND date >= toDate('2025-08-01')
      AND date < toDate('2026-08-01')
      AND iv_converged = 1
      AND volume > 0
      AND implied_volatility BETWEEN 0.03 AND 5
      AND abs(toFloat64(delta)) BETWEEN 0.35 AND 0.65
      AND ((days_to_expiry BETWEEN 5 AND 30) OR (days_to_expiry BETWEEN 91 AND 180))
    GROUP BY underlying_symbol, session_date
    HAVING countIf(days_to_expiry BETWEEN 5 AND 30) >= 3
       AND countIf(days_to_expiry BETWEEN 91 AND 180) >= 3
)
SELECT underlying_symbol AS ticker,
       count() AS sessions,
       round(100 * countIf(front_iv > back_iv) / count(), 1) AS inverted_pct,
       round(100 * quantileDeterministic(0.5)(front_iv - back_iv,
                                              cityHash64(concat(underlying_symbol, toString(session_date)))), 1) AS median_spread_pts
FROM daily
GROUP BY underlying_symbol
ORDER BY inverted_pct DESC
Run this yourself

For 251 sessions inside the twelve months wey end July 31, 2026, XOM print the front band above the 91 to 180 day band for 68.5% of dem, compared with 19.5% for SPY. Their median gaps dey 1.4 points and -2.1 points apart. Names wey get dated events on regular calendar dey spend more of the year inverted, while broad index fund dey spend most of the time in contango, with inversions gathering around selloffs. IV rank dey measure another thing: where today’s level dey inside the name’s own past year, no be how the curve take shape across expirations.

Wetin flat or inverted curve dey do to calendar spread

Calendar spread dey sell near-dated option and buy longer-dated option for the same strike. Diagonal dey do the same thing across two different strikes. Either way, position dey long the back expiry’s implied volatility and short the front expiry’s. So term structure na im be the main input, no be background detail.

When curve dey slope upward, near leg dey sell at lower implied volatility than the far leg wey dem buy. When front month dey inverted before event, di relationship reverse, and dem open the position into curve wey get somewhere to converge. Afterwards, front collapse toward back, back barely move, and di spread between both readings return to its normal shape. Where position finally land still depend on how far stock move, and curve no dey talk about that. Di expected move page explain that side of the matter.

Flat curve na di awkward case. No slope dey available for either direction, so di result depend almost completely on stock path and time wey pass.

IV term structure FAQ

IV term structure for options na wetin?

Na implied volatility wey dem plot according to options expiry date for options wey dey near the money. Across six liquid names for June 2026, the median reading measure 19.6% for the 5-20 days band and 21.5% for the 181-365 days band.

Inverted IV term structure mean wetin?

Inverted curve dey show the highest implied volatility for the nearest expirations. E dey happen when dated event dey inside the front month. E fit also happen after sharp selloff, when near-dated contracts dey price recent big moves, while distant ones dey closer to long-run average.

Why front-month implied volatility high so before earnings?

Near-dated contract get very few normal trading days to spread one big expected overnight move across. So the annualized figure dey rise to account for am. NVIDIA 5-20 days band read 84.9% for the session before the February 26, 2025 report, and 66.4% for the session after.

Term structure na the same thing as volatility skew?

No. Skew dey compare implied volatility across strikes inside one expiration. Term structure dey keep moneyness roughly fixed and compare across expirations. Volatility skew cover the strike dimension of the same surface.


Every figure above na stored query based on per-contract implied volatility, and the SQL fit expand under each panel. Plot the same curve for any ticker for the Strasmore terminal.