gammagrid Open app →
← Learn

Max pain didn't pin. On 57 expiries, price moved away from it twice as often.

The theory says price gets pulled toward the strike where option holders lose the most. I had the chains, so I checked instead of arguing — and the answer came out backwards, with one caveat that matters more than the result.

Written by the person building GammaGrid · August 2026

Max pain is the strike at which the largest total value of open options expires worthless. The theory attached to it is that price drifts toward that strike into expiry, because the people who are short those options — mostly market makers — have an interest in it landing there and enough size to nudge it.

Search for whether this works and you get a wall of articles that all say the same careful nothing: the evidence is mixed, it works probabilistically, it is a tendency rather than a rule. Every one of them is hedging, and not one of them shows you a number they measured themselves. I had a database full of option chains, so rather than write the twelfth version of "the evidence is mixed", I ran it.

The method, in full, so you can disagree with it

For every expiry that passed while my collector was running, I took two snapshots: the last one from the trading day before expiry, and the last one from expiry day itself. On average those are 22.9 hours apart — evening before, then the close.

From the first, I computed max pain the standard way: for every strike, sum what all the open contracts would be worth if price finished exactly there, and pick the strike where that total is smallest.

From the second, I took the price of the underlying. Then two questions:

That gave 57 expiries across seven tickers. Write that number down; I come back to it.

What came out

Across 57 expiries
Median distance from max pain at expiry2.04%
Average distance2.83%
Finished within 0.5% of max pain8 of 57
Finished within 1%15 of 57
Moved toward max pain19
Moved away from max pain38

The first four lines say price was not pinned in any useful sense. A median of 2% away, on an index ETF around $760, is roughly fifteen dollars. If you were trading a strike because max pain said price would land there, it landed a long way from there most of the time.

The last two lines are the ones I did not expect. Price moved away from max pain twice as often as toward it. Not "no effect" — the opposite of the stated effect.

Before reading anything into that: 19 out of 57 is far enough from an even split to be worth taking seriously. If toward and away were equally likely, getting 19 or fewer has a probability of about 0.008, so this is not simply a small sample wobbling. Whatever it is, it is not noise around zero.

The caveat that matters more than the result

Here is the part the headline number does not tell you, and the reason I am not claiming to have debunked anything.

My sample is almost entirely large, liquid ETFs. Of the 57 expiries, 48 belong to SPY, GLD, QQQ and SLV. There is not one small-cap or thinly-traded name in the whole set — because those are not the tickers I happen to collect.

And the academic work on max pain says, fairly consistently, that whatever effect exists is strongest in small-cap and illiquid stocks and weak to absent in the most liquid names. Which means my result is not evidence against max pain. It is evidence about the exact corner of the market where nobody claimed it worked in the first place.

You can see the shape of it inside the sample too, in the direction the theory would predict:

TickerExpiriesToward / awayMedian distance
SPY177 / 101.04%
QQQ104 / 61.38%
MO43 / 11.99%
PBR41 / 33.15%
GLD112 / 93.57%
SLV102 / 85.35%

SPY and QQQ, the two with the deepest option markets, finish closest to max pain — around 1%. The metal ETFs finish three to five times further away. That is consistent with a mechanical reading rather than a mystical one: where open interest is enormous and spread across hundreds of strikes, max pain sits near the middle of the distribution, which is near the current price anyway. It looks like a magnet because it is standing where the market already is.

MO is the only ticker that moved toward max pain more often than away, on four expiries. Four. I mention it because leaving it out would be the kind of tidy omission this article exists to complain about, not because it means anything.

What I think is actually going on

Max pain is a real calculation over real data, and it is not useless. What it is not is a forecast.

The number tells you where open interest is concentrated, which is genuinely worth knowing — it is the same information that makes call walls and put walls interesting, viewed from a different angle. Concentrated open interest is where dealer hedging has the most to do, and that does shape how price behaves around those strikes.

The leap from "open interest is concentrated here" to "price will therefore go here" is the part that does not survive contact with the data, at least not in liquid names. On my sample it did worse than a coin flip, and the honest explanation is probably not a conspiracy in either direction: it is that price goes where it goes for reasons that dwarf the hedging flow, and a strike computed from yesterday's open interest has no particular claim on tomorrow.

It is the same shape of mistake I found testing whether unusual options activity predicts direction: a real, correctly computed number about positioning gets treated as a forecast, and the forecast is the part that does not hold up.

Check it yourself, and check my sample first

Every number above comes from stored option chains — the whole thing is one query over snapshots that were already sitting there. If you have a year of chains for a basket of small-cap names, you can run the same test where the theory actually claims to work, and I would genuinely like to see the result.

What you cannot do is run it against a live options screen. Max pain from the evening before requires the evening before to still exist somewhere, and a screen that shows you the chain as it is right now has already thrown it away. That is the whole reason this question gets settled by citation rather than measurement.

My sample will also get better on its own, at roughly twenty expiries a month, and my opinion is allowed to change when it does. That is the difference between a measurement and a position.

Max pain on your own tickers, with the history behind it

GammaGrid computes max pain per expiry and keeps every chain it collects, so the strike, the open interest behind it and the price that actually printed are all still there afterwards. The hosted version is open and free while it is in beta.

Open GammaGrid →

Would rather run it yourself? It is open source: github.com/gammagrid/gammagrid