IV Crush Explained — What Happens to Options After Earnings (With Data)
IV crush = implied volatility dropping 30-60% overnight after earnings. See real AAPL, TSLA, NFLX examples with charts. Learn how to track it and avoid losing premium.
IV crush = implied volatility dropping 30-60% overnight after earnings. See real AAPL, TSLA, NFLX examples with charts. Learn how to track it and avoid losing premium.
Implied volatility reflects the market's expectation of future price movement. Before an earnings announcement, that uncertainty is at its peak - nobody knows the numbers, nobody knows guidance, and the stock could gap in either direction. Options market makers price this uncertainty in by inflating IV.
The moment the earnings call ends, that uncertainty is resolved. Even if the numbers are surprising, the unknown has become known. IV drops sharply - often 20-60% in a single session. This mechanical, repeatable phenomenon is IV crush.
It's not a theory or an edge case. It happens on virtually every earnings announcement, every quarter. The magnitude varies, but the direction doesn't - IV goes up into earnings, IV comes down after. If you're trading options around earnings and you don't account for this, you're flying blind.
IV crush means you can be right on direction and still lose money on a long options position. The stock moves 3% in your favor, but IV drops 40%, and your option is worth less than you paid for it. Understanding this is the difference between profitable and losing earnings trades.
Quantitatively, the P&L of a long option position decomposes into directional and volatility components:
When IV crush is large, the \(\nu \cdot \Delta\sigma\) term (vega × change in IV) overwhelms the \(\Delta \cdot \Delta S\) gain. For example, a call with vega = 0.30 and a 15-point IV drop loses $4.50 in vega P&L - even if delta gains $3.00 from the underlying move, you're net negative.
The 0.85 multiplier is the 1-standard-deviation adjustment. If the ATM straddle trades at $12, the market expects roughly a $10.20 move - up or down. IV crush strategies profit when the actual move is smaller than this priced-in expectation.
Pull historical volatility data around an earnings date to see the spike-and-collapse pattern. Here's how to visualize it using the Volatility Analysis endpoint:
from flashalpha import FlashAlphaClient
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime, timedelta
import numpy as np
client = FlashAlphaClient(api_key="your_api_key")
# Pull current vol data for NVDA
vol = client.get_volatility("NVDA")
print(f"NVDA ATM IV: {vol['atm_iv']}%")
print(f"NVDA RV (20d): {vol['realized_vol']['rv_20d']}%")
print(f"IV-RV Spread: {vol['iv_rv_spreads']['vrp_20d']}%")
print(f"Assessment: {vol['iv_rv_spreads']['assessment']}")
print(f"\nTerm Structure: {vol['term_structure']['state']}")
# Check skew for nearest expiry
if vol.get("skew_profiles"):
nearest = vol["skew_profiles"][0]
print(f"\nNearest Expiry Skew:")
print(f" 25d Risk Reversal: {nearest.get('rr_25d', 'N/A')}")
print(f" Smile Ratio: {nearest.get('smile_ratio', 'N/A')}")
Before earnings, you'll typically see ATM IV significantly elevated above realized vol - the VRP widens as the market prices in the earnings event. After earnings, ATM IV collapses back toward realized vol levels.
The pattern is consistent: a gradual ramp in the 2-3 weeks before earnings, a sharp spike in the final 2-3 days, and then an overnight collapse of 30-50%.
The magnitude of IV crush varies by sector and individual stock volatility profile:
| Sector | Typical IV Drop | Examples |
|---|---|---|
| Mega-cap tech | 30-50% | AAPL, MSFT, GOOGL, AMZN |
| High-beta tech | 35-55% | TSLA, NVDA, AMD, NFLX |
| Biotech | 40-70% | MRNA, BIIB, REGN |
| Financials | 20-35% | JPM, GS, BAC, WFC |
| Consumer staples | 15-30% | COST, WMT, PG, KO |
| Utilities | 15-25% | NEE, DUK, SO |
Biotech names see the largest crush because binary outcomes (FDA approvals, trial results) create extreme pre-event uncertainty. Utilities see the smallest because their earnings are predictable and low-vol by nature.
These are averages - individual stocks vary quarter to quarter. The only way to know the actual IV premium going into a specific earnings event is to measure it. That's what the tracker below does.
This script identifies which stocks have the highest IV premium going into earnings - the ones most likely to experience significant crush:
from flashalpha import FlashAlphaClient
import pandas as pd
client = FlashAlphaClient(api_key="your_api_key")
# Stocks with upcoming earnings (manually maintained or from external source)
earnings_watchlist = [
"NVDA", "TSLA", "AAPL", "MSFT", "AMZN", "GOOGL", "META", "NFLX",
"AMD", "CRM", "ORCL", "MU", "AVGO", "COIN", "PLTR", "NKE",
"JPM", "GS", "BAC", "UNH", "JNJ", "LLY", "PFE", "COST"
]
results = []
for ticker in earnings_watchlist:
try:
vol = client.get_volatility(ticker)
rv_20 = vol["realized_vol"]["rv_20d"]
atm = vol["atm_iv"]
vrp = vol["iv_rv_spreads"]["vrp_20d"]
# IV premium ratio: how much IV exceeds RV
iv_premium_pct = ((atm - rv_20) / rv_20 * 100) if rv_20 > 0 else 0
results.append({
"ticker": ticker,
"atm_iv": atm,
"rv_20d": rv_20,
"vrp": vrp,
"iv_premium_%": round(iv_premium_pct, 1),
"assessment": vol["iv_rv_spreads"]["assessment"],
"term_state": vol.get("term_structure", {}).get("state", "unknown")
})
except Exception:
continue
df = pd.DataFrame(results)
df = df.sort_values("iv_premium_%", ascending=False)
print("\n=== Earnings IV Crush Candidates ===")
print("Sorted by IV premium over realized vol\n")
print(df.head(15).to_string(index=False))
Sample output:
=== Earnings IV Crush Candidates ===
Sorted by IV premium over realized vol
ticker atm_iv rv_20d vrp iv_premium_% assessment term_state
COIN 48.70 31.20 7.50 56.1 moderate_premium backwardation
TSLA 52.30 35.80 6.50 46.1 moderate_premium backwardation
PLTR 45.20 31.40 6.30 43.9 moderate_premium backwardation
MU 34.50 24.80 4.70 39.1 fair_premium contango
AMD 39.50 28.90 4.30 36.7 fair_premium backwardation
NFLX 32.40 24.10 4.50 34.4 fair_premium contango
NVDA 42.80 32.60 3.70 31.3 fair_premium backwardation
COIN 30.50 23.50 4.70 29.8 fair_premium contango
NKE 31.80 25.20 5.40 26.2 fair_premium contango
The iv_premium_% column shows how much IV exceeds realized vol as a percentage. COIN at 56% means IV is pricing in 56% more movement than the stock has actually been making. That premium has to go somewhere after earnings - and most of it gets crushed.
Also note the term_state column: backwardation (near-term IV higher than far-term) is the classic earnings setup, confirming that the front expiration is inflated by the event.
Sell an ATM straddle or OTM strangle 1-2 days before earnings. You collect premium inflated by the IV spike. If the stock stays within the expected move, you profit from the vol collapse.
This is the most direct IV crush play, but also the highest risk. An ATM straddle has unlimited loss potential in both directions. A strangle gives you a wider breakeven range but still has undefined risk. Position size conservatively - this is not a strategy for overleveraging.
The defined-risk version: sell an OTM call spread + OTM put spread, creating a range where you profit. Your maximum loss is capped at the spread width minus premium received. The expected move (priced into the straddle) gives you a natural reference for where to set your short strikes.
Iron condors work best when IV crush is large enough that the premium received is meaningful relative to risk. Stocks with 40%+ IV premium are ideal candidates.
The purest IV crush play: sell the front-month option (earnings expiry) and buy the back-month option at the same strike. Front IV collapses after earnings while back-month IV holds relatively steady. You profit from the IV differential.
Calendars have limited risk (you can't lose more than the debit paid) and directly isolate the crush effect. The tradeoff is that a large gap in the underlying can overwhelm the vol benefit.
IV crush is not free money. The expected move is priced in for a reason. If TSLA's straddle prices in a $15 move and the stock gaps $40, the crush on your short straddle saved you $5 but the directional loss destroyed you by $25.
Earnings surprises that exceed the expected move are not rare - they happen ~30% of the time across the market. When they do, IV crush on a short vol position is a rounding error compared to the directional loss.
Risk management for IV crush strategies:
The Volatility Analysis endpoint gives you everything needed to assess IV crush risk:
Monitor Earnings IV in Real-Time
Know when premium is rich, when it's fair, and when to stay away.
Get API Key → Try the Playgroundby Tomasz Dobrowolski
by Tomasz Dobrowolski
by Tomasz Dobrowolski
Get tick-by-tick visibility into market shifts with full-chain analytics streaming in real time.
Screen millions of option pairs per second using your custom EV rules, filters, and setups.
Instantly send structured orders to Interactive Brokers right from your scan results.