Accuracy ledger // measured, not asserted

Does max pain work?

Every site in this space sells the max pain number; none of them check it. This page is the check: for each expiration we track, the final pre-expiry max pain against the delayed close on expiration day. No cherry-picking, no backfill — the ledger starts the day we started measuring (2026-07-28) and grows one settled expiration at a time.

Settled expirations675on 66 expiration dates
Median miss1.16%|max pain − settle| / settle
Previous close, median miss0.90%the no-change forecast, n=671

Record from 2026-07-28 (the first settled expiration), measured from 2026-07-28 (the first snapshot): a gap of 0 days. Nothing in the record predates the measurement.

Max pain against a no-change forecast

At every tolerance in the table, the previous close landed near the settle more often than max pain did, and resampling the expiration dates does not close the gap.

Miss of at mostMax pain withinMax pain missed by morePrevious close withinPrevious close missed by moreMax pain minus previous close
0.5%23%18 to 28%77%72 to 82%31%26 to 35%69%65 to 74%-7.6 points-13.0 to -2.1
1%44%39 to 50%56%50 to 61%53%47 to 58%47%42 to 53%-8.3 points-13.8 to -3.1
2%66%61 to 72%34%28 to 39%77%73 to 81%23%19 to 27%-11.0 points-15.7 to -6.6

Small figures under each share are 95% intervals. Max pain counts all 675 settlements on 66 expiration dates. The previous close is the price at our snapshot the evening before expiration day, from the same feed and at the same time of day as the settle: the forecast that says nothing will change. 667 of its 671 readings were taken on the session before expiration day, 4 on a market holiday (2026-09-07), which carries the last trade before it. 4 settlements on the ledger's first day have no earlier reading, so the previous close covers 671 settlements on 65 dates. Intervals: the expiration dates are the unit, resampled with replacement 2,000 times from a fixed seed, so every build prints the same numbers, keeping the middle 95% of the results. Settlements on one date move together, so resampling single settlements would print intervals that are too narrow. At 1%, the 675 settlements carry about as much information as 311 independent ones.

Set your own tolerance

Pick the largest miss you would still count as a hit. Both forecasts are rescored on every settlement at that tolerance, and the curve shows every tolerance up to 5% at once.

%
Max pain44% within 1%56% missed by more95% interval 39 to 50% · missed by more 50 to 61%
Previous close53% within 1%47% missed by more95% interval 47 to 58% · missed by more 42 to 53%
Max pain minus previous close-8.3 points95% interval -13.8 to -3.1 · max pain ahead in 0 of 2,000 resamples
0%25%50%75%100%0%1%2%3%4%5%
Share of settlements that landed within each miss, 0 to 5%. The line marks your tolerance; hover to read any point, click to set it.

Rescored on all 675 settlements on 66 expiration dates in your browser, with the same method as the table: the expiration dates resampled with replacement 2,000 times from a fixed seed, so every build prints the same numbers, keeping the middle 95% of the results. At 0.5, 1 and 2 percent it prints the table's numbers exactly.

By volatility regime

Calmer half · IV30 ≤ 28.3%0.69%median miss · within 1%: 65% · missed by more: 35% · n=338
Wilder half · IV30 > 28.3%2.28%median miss · within 1%: 24% · missed by more: 76% · n=337

Split at the sample’s median IV30 at the final pre-expiry reading — a property of the data, not a tuned constant. Backtests elsewhere report pinning working better in calm tape than wild tape; this is our live measurement of that claim.

Who is in the ledger

Every expiration of 20 tickers that has expired since snapshots began: SPY, QQQ, SPX, IWM, AAPL, TSLA, NVDA, MSFT, AMZN, META, GOOGL, AMD, PLTR, COIN, MSTR, GME, HOOD, SOFI, F and VIX. The list was fixed on 2026-07-28, before the first snapshot, as liquid, option-heavy names people search max pain for, and it has not changed. It was not chosen by how well max pain did on them. An expiration enters the ledger when it expires. On its last day it is the nearest listed expiration, which every snapshot records, so the ledger scores every expiration of these tickers rather than a sample of them. Tickers with daily expirations carry the most settlements. Tracked but not settled: 0 with no expiration-day snapshot and 0 with an unusable settle price.

By ticker

TickerSettlementsMedian missWithin 1%Missed by more than 1%
IWM660.67%58%42%
QQQ660.79%58%42%
SPX660.54%79%21%
SPY660.52%86%14%
AAPL391.16%41%59%
AMD393.06%15%85%
AMZN391.14%46%54%
GOOGL381.16%42%58%
META382.21%21%79%
NVDA382.28%24%76%
TSLA382.04%32%68%
MSFT371.53%41%59%
VIX148.51%withheld below 20
COIN133.83%withheld below 20
F132.28%withheld below 20
GME136.30%withheld below 20
HOOD134.23%withheld below 20
MSTR134.78%withheld below 20
PLTR135.14%withheld below 20
SOFI132.60%withheld below 20

A ticker's shares print from 20 settlements, the same floor as the whole ledger. Each of a ticker's settlements falls on its own expiration date.

Recent settlements

TickerExpiryFinal max painSettle (delayed close)MissPrevious closeIts miss
AAPL2026-10-28345346.50.43%347.110.18%
AMD2026-10-28542.5568.284.54%560.4861.37%
AMZN2026-10-28250254.0881.61%253.650.17%
IWM2026-10-28278282.091.45%279.9950.74%
META2026-10-28627.5615.951.88%619.990.66%
NVDA2026-10-28215213.640.64%217.721.91%
QQQ2026-10-28719719.80.11%720.880.15%
SPX2026-10-287,7057,743.980.50%7,722.60.28%
SPY2026-10-28768769.90.25%769.560.04%
TSLA2026-10-28400402.7490.68%406.70.98%
VIX2026-10-281916.9112.36%17.523.61%
IWM2026-10-27276279.9951.43%276.741.16%
QQQ2026-10-27712720.881.23%712.591.15%
SPX2026-10-277,6907,722.60.42%7,676.770.59%
SPY2026-10-27767769.560.33%765.260.56%
AAPL2026-10-26347.5343.911.04%347.591.07%
AMD2026-10-26520531.252.12%517.52.59%
AMZN2026-10-26250248.930.43%248.570.14%
GOOGL2026-10-26322.5317.571.55%321.31.17%
IWM2026-10-26275276.740.63%276.10.23%
META2026-10-26650633.152.66%641.561.33%
MSFT2026-10-26525532.391.39%524.51.48%
NVDA2026-10-26212.5216.11.67%211.32.22%
QQQ2026-10-26712712.590.08%705.41.01%
SPX2026-10-267,6757,676.770.02%7,623.680.69%
SPY2026-10-26763765.260.30%761.010.56%
TSLA2026-10-26372.5391.7924.92%372.394.95%
AAPL2026-10-23342.5347.591.46%348.010.12%
AMD2026-10-23522.5517.50.97%506.42.14%
AMZN2026-10-23250248.570.58%250.780.89%
COIN2026-10-23175164.776.21%168.812.45%
F2026-10-231211.63.45%11.922.76%
GME2026-10-2324.524.831.33%25.111.13%
GOOGL2026-10-23330321.32.71%324.71.06%
HOOD2026-10-2310095.1945.05%96.3221.18%
IWM2026-10-23277276.10.33%276.390.10%
META2026-10-23670641.564.43%644.950.53%
MSFT2026-10-23527.5524.50.57%5210.67%
MSTR2026-10-23141146.6833.87%144.471.51%
NVDA2026-10-23215211.31.75%212.40.52%

What the research says

The academic record is genuinely mixed, which is exactly why this ledger exists. The best-known study, Ni, Pearson and Poteshman’s “Stock price clustering on option expiration dates” (Journal of Financial Economics, 2005), documented that optionable stocks cluster near strike prices on expiration Fridays more than chance allows, consistent with hedging pressure — but clustering near a strike is a weaker claim than settling at the max pain strike, and later work disputes whether a tradable edge survives costs. We cite the literature and then do the thing the literature can’t: measure our own published numbers, in public, on this page.

Method, exactly

Snapshots run each weekday evening after the close, from Cboe’s delayed public feed. A settlement is counted only when we hold both sides of it: a max pain reading taken on or before expiration day, and the expiration-day snapshot supplying the closing price. If we missed a day, that expiration is skipped — gaps are gaps, not estimates. “Settle” here is the delayed close, not the official OCC settlement value, which can differ slightly for AM-settled index options. Educational information, not investment advice.

The final reading is the snapshot taken on the evening of expiration day. Max pain is computed from open interest alone, and open interest is published once a day before the session opens, so that reading holds the positions as they stood at the open and sees nothing of the day. The previous close is known at the same point: it is the last price before that session.

Keep going: max pain calculator · every register on one rule · options, explained · open interest, defined