How accurate is the SPX expected move?

A calibration of the ATM-implied move to the close: 1,088 sessions, 82,378 readings

Published 2026-08-27 · Addendum 2026-08-27 (the variance test: unbiased, so the coverage gap is shape, not level) · Sample SPX regular session, 2022-04-14 to 2026-08-26, 1,088 trading days, five-minute readings with at least 15 minutes to the close · Data per-strike implied vols and one-minute index prints from the public session files · Status measurement, not a signal

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

thresholdtheorymeasured
inside 1.0 × EM68.3%72.4% ± 0.9
inside 0.8 × EM (straddle breakeven)57.5%62.0% ± 0.9
inside 0.5 × EM38.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.

Addendum (2026-08-27): the variance test — right variance, wrong shape

Coverage asks how often the close lands inside the quote; it does not ask whether the quote is the right size. Published the same day, here is the other half, using the standard tools of the volatility-forecasting literature. Let z be the realised move over the quoted one. If the expected move is the true one-sigma, then E[z²] = 1 exactly. Measured, day-clustered: E[z²] = 1.034 ± 0.062 — the quote is an essentially unbiased variance forecast, roughly uniformly across the day (1.09 in the first hours, 0.94–0.99 in the last). A Mincer–Zarnowitz regression of the squared net move on the implied variance agrees (slope 1.69 ± 0.87, consistent with one; the squared-move proxy is noisy, which is why the constrained z² line above is the tight test). And under the QLIKE loss the implied quote beats a trailing-realised-volatility benchmark decisively: 1.50 against 2.05, a difference of −0.55 ± 0.13 — the market's number is better than the cheap alternative, whose own Mincer–Zarnowitz slope is 0.28.

This rewrites the headline's mechanism. "Conservative by four points of coverage" reads as overpricing — it is not. The variance is priced right, and yet more closes land inside ±1 EM than the lognormal predicts. Both are true at once only if the distribution of the net move is leptokurtic relative to the lognormal: more mass in the middle and fatter far tails, at the same variance. The one-line summary of this whole study is therefore sharper than the one we published in the morning: the expected move has the right variance and the wrong shape. Sizing against it as a one-sigma is honest; treating the 28% outside as lognormal tails is not — the excess lives further out than the lognormal puts it.

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://firmtape.com/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:

pythonreproduce
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 FirmTape research. Measured on the free session archive; every session is free to replay.