IV Dispersion

How much implied volatility varies across strikes and expirations — measuring the roughness or smoothness of the volatility surface.

Definition

A measure of how much implied volatility varies across strikes (cross-strike dispersion) and expirations (cross-expiry dispersion). High dispersion = rough, uneven surface with pricing opportunities. Low dispersion = smooth, uniform surface with consensus pricing.

Measurement
cross_strike = std(IV) across strikes at fixed expiry
cross_expiry = std(ATM IV) across expirations

Both are expressed as volatility-point standard deviations. Higher values indicate more dispersion across the respective dimension.

Dimensions
cross_strike cross_expiry
Output
iv_dispersion.cross_strike iv_dispersion.cross_expiry
Interpretation
  • Low dispersion: the surface is smooth and well-agreed. Spread trades are tightly priced; edge in vol arb is thin.
  • High cross-strike: specific strikes carry unusual demand or supply. Look for skew dislocations or event-driven strike clustering.
  • High cross-expiry: a term-structure kink exists. One expiry is priced very differently from its neighbours — possible event premium or roll effects.

Live Example: SPY

Current SPY volatility surface as of 2026-04-12 (cached):

ATM IV
15.4%

Note: IV dispersion values (cross_strike and cross_expiry) are available via the /v1/volatility/SPY API endpoint. High cross-strike dispersion on SPY often occurs around FOMC, CPI, or large options expiration dates when specific strikes attract unusual flow.

Get IV Dispersion via API

Endpoint
GET /v1/volatility/{symbol}
Tier
Growth+
Response shape (iv_dispersion section)
{
  "symbol": "SPY",
  "iv_dispersion": {
    "cross_strike": number,
    "cross_expiry": number
  }
}
curl -H "X-Api-Key: YOUR_KEY" \
  https://lab.flashalpha.com/v1/volatility/SPY
import requests
r = requests.get(
    "https://lab.flashalpha.com/v1/volatility/SPY",
    headers={"X-Api-Key": "YOUR_KEY"}
)
d = r.json()
disp = d["iv_dispersion"]
print(f"Cross-strike: {disp['cross_strike']:.2f}  Cross-expiry: {disp['cross_expiry']:.2f}")
const r = await fetch(
  "https://lab.flashalpha.com/v1/volatility/SPY",
  { headers: { "X-Api-Key": "YOUR_KEY" } }
);
const d = await r.json();
const disp = d.iv_dispersion;
console.log(`Cross-strike: ${disp.cross_strike}  Cross-expiry: ${disp.cross_expiry}`);

Why IV Dispersion Matters for Trading

TL;DR

IV dispersion measures surface roughness. Smooth surfaces are reliable for pricing; noisy ones are red flags for stale or crossed quotes.

What it measures
Standard deviation of IV across strikes and expiries — a scalar summary of surface roughness.
What it signals
How trustworthy the fitted vol surface is. Low dispersion = clean model fit; high dispersion = noisy or distorted surface.
Why we measure it
You can only trade what you can price. A rough surface breaks pricing models and invalidates Greek calculations.
Who uses it
Quants, structured-products desks, market makers, systematic vol traders.

How to read IV Dispersion

Low dispersion
  • Clean SVI fit possible
  • Greeks reliable
  • Safe for complex trades (dispersion, wing trades)
  • Typical liquid index
Good for: model-based strategies, wing trades
High dispersion
  • Stale or crossed quotes
  • Model fits unreliable
  • Wing vol trades dangerous
  • Common in illiquid names
Bad for: model-driven trades
Moderate
  • Typical for mid-cap names
  • Acceptable for ATM-only strategies
  • Caution on far strikes
  • Standard reading
Usable

Rules of thumb

  • Thresholds are name-specific. SPX has lower dispersion than TSLA by orders of magnitude. Compare to a name's own history.
  • Event days spike dispersion temporarily. Earnings mornings routinely produce rough surfaces — it clears by midday.
  • Wing vol is the first to go noisy. Deep OTM IVs get crossed first. Cap your strategy to ATM-to-15-delta if dispersion rising.
  • Pair with SVI fit quality. SVI residuals are the formal fit error; dispersion is the informal cousin.
  • Illiquid names are structurally dispersed. Don't try to model a thin name like a liquid one — the surface is just noise.

How to Read IV Dispersion

Cross-strike dispersion tells you how much IV varies across strikes within a single expiration. In a perfectly smooth Black-Scholes world this would be zero — every strike would share the same IV. In practice, supply-demand imbalances at specific strikes create bumps. High cross-strike dispersion signals that the market is pricing specific strikes very differently, creating potential opportunities in vertical spreads or butterflies that exploit the relative mispricing.

Cross-expiry dispersion tells you how much ATM IV varies across the term structure. A smooth term structure has low dispersion. A kinked surface — where one expiry is priced much higher or lower than its neighbours — has high cross-expiry dispersion. This often occurs when an event (earnings, FOMC, CPI) falls between two expirations, causing the nearest post-event expiry to carry excess premium. Calendar spreads and diagonal spreads benefit from identifying these kinks.

When both dimensions show high dispersion simultaneously, the entire surface is rough. This often coincides with regime transitions, large flow imbalances, or illiquid conditions where market makers widen skew to protect themselves.