Does price actually get pulled toward max pain? I graded 20 expirations so far, every row published
I got tired of seeing "price pins to max pain into opex" stated as fact with zero receipts, so I started keeping score. Every night I write down the front-expiration max pain for \~40 tickers. When those contracts expire, I check where the close actually landed. The forecast exists before the answer does, so there's no hindsight to hide behind.
Scoring is simple. d0 is how far price sat from max pain on the snapshot day, d1 is how far the expiration close finished from that same level, both in percent. If pinning is real, d1 should come in under d0 well over half the time, and the median distance should shrink. If price doesn't know where max pain is, it's a coin flip.
First 20 clean observations (snapshots Jul 10 to Jul 17, 20 tickers):
finished closer to max pain (d1 < d0): 12 of 20 (60%)
median distance, snapshot vs close: 1.35% vs 1.45% (got wider)
settled within 1% of max pain: 5 of 20
settled within 2%: 13 of 20
So the closer-rate says maybe, and the median says no. Two metrics disagreeing on 20 observations is just what noise looks like, and I'm not going to pretend otherwise. The sample regrades itself nightly as more snapshots expire.
The embarrassing part: my first pass had 82 observations and looked a lot more interesting. Then I noticed the upstream open interest file lags the price file by a couple of days, which meant 62 of my "forecasts" carried a price stamped on or after expiration day itself. 24 rows had d0 equal to d1 to the third decimal. That was the tell. I was grading answers against a price that had already seen the answer. Those 62 rows are gone, and the inclusion rule is now strict: both the OI date and the price date have to fall before the expiration.
Caveats I know about: same ticker + same expiration on different nights are correlated rows, not independent samples. Only 2 expiration dates so far. And the actual academic result (Ni, Pearson & Poteshman 2005) is about closes clustering at heavy strikes, which is a much weaker claim than convergence to a whole-chain balance point. Nobody should cite that paper as proof of max pain.
Full table with every row is here (I run the site, it's free, no signup): https://quantdata.uk/research/does-max-pain-pin
If you see a hole in the method I'd genuinely like to hear it. The inclusion rule above only exists because a sanity check caught me about to fool myself once already.