How accurate is the SPX expected move?
A calibration of the ATM-implied move to the close: 1,088 sessions, 82,378 readings
Every 0DTE dashboard quotes an expected move — the one-sigma range to the close implied by at-the-money volatility. The terminal quotes one too. Folklore says the straddle "overstates the move most days", sellers repeat it as an edge, and as far as we can find, nobody has published the number: when the screen says ±X points to the close, how often does the close land inside?
The measurement
At every five-minute frame of every session: the ATM implied vol (the mid of the
per-strike call and put IVs, interpolated at spot), the expected move
EM = S · σ · √τ with τ the year-fraction to 16:00, and then the fact of the
matter — did the session's close land within EM of that reading's spot? Under the
lognormal reading of the quote the answer should be yes 68.3% of the time; the
straddle-breakeven reading (0.8 EM, roughly what the straddle costs) should cover 57.5%.
Frames with under 15 minutes left are excluded from the headline — a shrinking σ√τ makes
the ratio noisy — and reported separately. Shares are day-clustered: a session's ~76
frames count through their session mean, not as 76 observations.
The answer: conservative by four points, everywhere
| threshold | theory | measured |
|---|---|---|
| inside 1.0 × EM | 68.3% | 72.4% ± 0.9 |
| inside 0.8 × EM (straddle breakeven) | 57.5% | 62.0% ± 0.9 |
| inside 0.5 × EM | 38.3% | 42.4% ± 0.8 |
The folklore is right in sign and modest in size: the quoted move overstates what the close delivers by about four percentage points of coverage — and the four points sit at every threshold, which says the overstatement is a level of implied volatility, not a fat-tail premium concentrated in the wings.
The overstatement is also remarkably uniform. By time of day, coverage at 1 EM runs 71.0% (open to 10:30), 71.4%, 73.6%, 73.6%, 73.4%, 72.3% (last half hour kept in the headline), and 76.3% in the final quarter hour that is excluded. By year: 71.8, 71.6, 72.4, 74.2, 71.4 for 2022 through 2026. No hour and no regime gives the quote away as badly priced; nothing here has drifted as 0DTE volume grew.
One observation the naive story does not predict
Cut the same readings by the dealer state at that minute — the net-gamma percentile the terminal displays, and the tape-signed 0DTE book's sign — and the gradient runs backwards from intuition. Short gamma is supposed to mean more volatility; if implied vol underpriced that, coverage should fall in the short-gamma tail. It rises: 74.5% ± 1.1 when the gamma percentile is at or below 20, against 71.0% ± 1.3 at or above 80; 74.3% against 71.0% by the measured book's sign. Implied volatility prices short-gamma days even more conservatively than the extra movement they actually deliver to the close. The gaps are two to three standard errors — an observation to check, not a result to lean on.
What this is not
A calibration of the close, not the path: distance is measured on minute closes, so a session that pierced the expected move intraday and came back counts as inside. It says nothing about overnight moves, nothing about whether selling the straddle is profitable after spreads — the round-trip cost study is that question — and nothing here is investment advice; see the Terms.
Reproduce it
Everything needed is in the public session files at
https://gex.live/snapshots/YYYY-MM-DD.json (dates at
/sessions; ~7 MB per day — fetch sequentially). Each file's
frames array carries per-strike ivc/ivp and a
t stamp; minutes and spot give the index path and
the close. Per frame:
iv = (ivc + ivp) / 2 # per-strike mid IV, percent sigma = interp(spot_t, strikes, iv) / 100 # ATM vol at the frame's spot tau = minutes_to_1600 / (60 * 24 * 365) em = spot_t * sigma * sqrt(tau) hit = abs(close - spot_t) <= em # then average per day, then across days
Drop frames with fewer than three finite near-the-money IVs, clip σ to [1%, 200%], and require at least 15 minutes to the close for the headline number.
Part of gex.live research. Measured on the free session archive; every session is free to replay.