Max Pain in Options: What It Is and How to Use It
Max pain is the strike where option buyers lose the most at expiry. The formula, why price drifts toward it, and how to check any ticker live.
Your account is ready. Here's everything you need to start.
Keep your API key secure. Do not share it in public repositories or client-side code.
curl -H "X-Api-Key: YOUR_KEY" \
"https://lab.flashalpha.com/v1/exposure/gex/AAPL?expiration=2026-06-19"
pip install FlashAlpha
from flashalpha import FlashAlpha
fa = FlashAlpha("YOUR_KEY")
gex = fa.gex("AAPL", expiration="2026-06-19")
print(f"Gamma flip: {gex['gamma_flip']}")
Max pain is the strike where option buyers lose the most at expiry. The formula, why price drifts toward it, and how to check any ticker live.
Max pain is the strike price at which the total intrinsic value paid out to option holders at expiration is smallest, computed by summing call and put payouts across open interest at each candidate expiration price. Price is sometimes observed to drift toward heavy-OI strikes into expiration, though pinning evidence is mixed.
Max pain is the strike price at which the total intrinsic value paid out across all open call and put contracts at expiration is at its minimum, meaning the largest dollar amount of options expires worthless. You sold a credit spread on SPY with two days to expiry. The trade looked perfect - positive theta, short strikes well outside the expected move. Then expiration Friday hit and SPY drifted three dollars in the wrong direction, slowly, against no news. Your spread went from 60% profit to a scratch. What happened?
Odds are, you got pinned. SPY didn't move toward your strikes because of fundamentals or flow - it moved toward the strike where options dealers collectively lose the least money. That strike is called max pain.
The settlement price where total option holder payouts across all calls and puts are minimised. At this price, the most options expire worthless and dealers keep the most premium. It acts as a gravitational centre for the underlying as expiration approaches.
If SPY is trading at $548 and the max pain strike is $545, the theory predicts gravitational pull toward $545. Not because of some conspiracy - but because of the mechanical hedging flows created by dealer gamma exposure. Understanding max pain means understanding the force that moves your trades on expiration week.
Max pain rests on one observation: options are a zero-sum game between buyers and sellers. When options expire worthless, sellers (dealers) keep the entire premium. When options expire in-the-money, sellers pay out intrinsic value. The max pain strike is where sellers pay out the least.
Options dealers collectively hold the short side of trillions of dollars in notional options exposure. Their delta-hedging activity creates real buying and selling pressure in the underlying stock. As expiration approaches, this hedging activity tends to push price toward the strike where dealers have the least payout obligation - which is max pain.
For every possible settlement price, you compute the total intrinsic value that would be paid out across all open option contracts:
Here S is the candidate settlement price and K are the strikes. The max pain strike is the value of S that minimises Pain(S). In practice, you iterate over every strike in the chain, compute the total payout at each, and pick the minimum.
The key inputs are:
Consider SPY with three strikes. Assume 100-share contracts:
| Strike | Call OI | Put OI |
|---|---|---|
| $540 | 12,000 | 28,000 |
| $545 | 35,000 | 42,000 |
| $550 | 18,000 | 8,000 |
If the stock settles at $545:
Repeat for $540 and $550. If $545 produces the lowest total, that is the max pain strike. In real chains with hundreds of strikes, the same logic scales - but you need a computer.
Price does not always settle at max pain. But empirical data shows a measurable tendency, especially for high-OI names in the last 2-3 days before expiration. The mechanism is delta hedging.
When a market maker sells you a call, they immediately delta-hedge by buying shares. As expiration approaches:
Max pain is not a target dealers actively aim for. It is an emergent outcome of their mechanical hedging. Dealers do not collude to pin the price - but their collective rebalancing activity creates a gravitational field that is strongest near max pain.
| Condition | Max Pain Signal Strength |
|---|---|
| High OI concentration at a few strikes | Strong - more contracts = more hedging flow |
| Near expiration (1-3 DTE) | Strong - gamma is highest, hedging is most aggressive |
| Positive gamma regime | Strong - dealers buy dips, sell rallies (mean-reverting) |
| Low external catalysts | Strong - hedging flows dominate in quiet markets |
| Negative gamma regime | Weak - dealers amplify moves, price can blow through max pain |
| Earnings / FOMC / macro events | Weak - directional flow overwhelms hedging |
| Low OI (small caps) | Weak - insufficient hedging volume to move the stock |
On a typical monthly OpEx week, SPY opens Monday at $578 - five dollars above the max pain strike of $573. Over the next four sessions, with no major catalysts on the calendar, here is what tends to happen:
This is not a guaranteed outcome. It is a tendency - strongest in positive gamma, with concentrated OI, and no competing catalysts. But when it works, it explains the maddening expiry-week drift that every directional trader has experienced.
Max pain and gamma exposure (GEX) are different measurements of the same underlying reality: dealer options positioning. They complement each other.
The most powerful signal occurs when max pain aligns with GEX levels. The FlashAlpha max pain endpoint computes this automatically as a dealer alignment overlay:
curl -H "X-Api-Key: YOUR_KEY" \
"https://lab.flashalpha.com/v1/maxpain/SPY"
The response includes both the max pain analysis and the GEX overlay in a single call:
{
"max_pain_strike": 545,
"distance": { "percent": 0.61, "direction": "above" },
"dealer_alignment": {
"alignment": "converging",
"gamma_flip": 546,
"call_wall": 555,
"put_wall": 538
},
"pin_probability": 68,
"regime": "positive_gamma"
}
Max pain is a single number, but the pain curve around it tells you much more. A sharp V-shaped curve means strong gravitational pull - even small deviations from max pain cost option holders significantly. A flat curve means the pin is weak - price can settle across a wide range without much difference in total payout.
The pain_curve array in the API response gives you the call pain, put pain, and total pain at every strike - you can chart it directly.
The put_call_oi_ratio tells you whether the chain is put-heavy or call-heavy:
When you call /v1/maxpain/SPY without an expiration filter, you get max pain computed across the full chain plus a per-expiry breakdown:
"max_pain_by_expiration": [
{ "expiration": "2026-04-11", "max_pain_strike": 547, "dte": 2, "total_oi": 520000 },
{ "expiration": "2026-04-17", "max_pain_strike": 545, "dte": 8, "total_oi": 1840000 },
{ "expiration": "2026-05-16", "max_pain_strike": 540, "dte": 37, "total_oi": 980000 }
]
This calendar view helps you:
Not every max pain signal is equally strong. The pin_probability score (0-100) combines four factors:
| Factor | Weight | What It Measures |
|---|---|---|
| OI concentration | 30% | How much OI is concentrated at the top 3 strikes vs. spread evenly |
| Magnet proximity | 25% | How close the current price is to the max pain strike |
| Time remaining | 25% | Closer to expiry = higher pin force (gamma increases) |
| Gamma magnitude | 20% | Absolute net GEX - more gamma = more aggressive hedging |
A score above 70 indicates strong pin conditions. Below 30, max pain is more of a reference point than an active force.
Max pain is not a standalone trading signal - it is a contextual layer that improves other strategies. Here are the most common applications.
If pin probability is high and the gamma regime is positive, selling an iron condor centred at max pain with wings at the call and put walls can capture theta decay while the pin holds price in range.
Sell the iron condor when: pin_probability > 60, regime = positive_gamma, alignment = converging, DTE ≤ 5. Place short strikes at max pain ± 1 strike width, long wings at the call wall and put wall.
On expiration day (0DTE), if SPY trades away from max pain into the call wall or put wall, look for mean-reversion back toward max pain. The 0DTE endpoint gives you real-time gamma acceleration and expected move to confirm the setup.
When near-term max pain and next-month max pain diverge, calendar spreads can profit from the convergence. For example, if this week's max pain is $547 but the monthly is $540, selling a near-term put spread at $547 while buying the monthly put at $540 captures the term-structure difference.
Even if you are not trading max pain directly, knowing where it is helps with trade management:
When max pain fails: Earnings, FOMC decisions, CPI prints, and other macro catalysts can overwhelm hedging flows entirely. Do not rely on max pain during event-driven sessions. Check the exposure summary for regime and dealer hedging estimates - if net GEX is negative, dealers are amplifying moves, not dampening them.
The /v1/maxpain/{symbol} endpoint returns everything you need in one call: max pain strike, distance from spot, pain curve, OI by strike, dealer alignment, expected move context, pin probability, and multi-expiry calendar.
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://lab.flashalpha.com"
# Full-chain max pain with multi-expiry breakdown
resp = requests.get(
f"{BASE}/v1/maxpain/SPY",
headers={"X-Api-Key": API_KEY}
)
data = resp.json()
print(f"Max Pain: ${data['max_pain_strike']}")
print(f"Spot: ${data['underlying_price']:.2f}")
print(f"Distance: {data['distance']['percent']:.1f}% {data['distance']['direction']}")
print(f"Pin Probability: {data['pin_probability']}/100")
print(f"Dealer Alignment: {data['dealer_alignment']['alignment']}")
print(f"Regime: {data['regime']}")
# Single-expiry max pain
resp = requests.get(
f"{BASE}/v1/maxpain/SPY?expiration=2026-04-17",
headers={"X-Api-Key": API_KEY}
)
expiry_data = resp.json()
print(f"\nApril 17 Max Pain: ${expiry_data['max_pain_strike']}")
print(f"P/C OI Ratio: {expiry_data['put_call_oi_ratio']:.3f}")
# Full chain
curl -H "X-Api-Key: YOUR_KEY" \
"https://lab.flashalpha.com/v1/maxpain/SPY"
# Single expiry
curl -H "X-Api-Key: YOUR_KEY" \
"https://lab.flashalpha.com/v1/maxpain/SPY?expiration=2026-04-17"
The full max pain endpoint is included on the Basic plan and above. It tells you not just where max pain sits, but whether it's actually tradeable:
The difference is knowing that max pain is $545 vs knowing that max pain is $545, the pin probability is 72/100, dealer alignment is converging, and price is within the expected move - which means this is a high-conviction pin setup worth trading. Basic plan: $63/mo, 250 requests/day.
Max pain is most powerful when layered with other exposure data:
| Endpoint | What It Adds to Max Pain |
|---|---|
/v1/exposure/gex |
Per-strike gamma shows where hedging pressure is concentrated |
/v1/exposure/levels |
Gamma flip, call/put walls - confirms or contradicts the max pain pin |
/v1/exposure/zero-dte |
0DTE pin risk, expected move - critical on expiration day |
/v1/exposure/summary |
Regime (positive/negative gamma), net exposures, dealer hedging estimates |
/v1/exposure/narrative |
Plain-English interpretation of the full exposure landscape |
See SPY's live max pain and GEX levels
Max pain strike, pin probability, dealer alignment, gamma flip, walls
Max pain does not predict where the stock will close. It identifies the equilibrium where dealer hedging flows create the most gravitational pull. The actual close depends on order flow, news, and macro forces that can overwhelm hedging mechanics.
Open interest changes daily. New positions can shift max pain by several strikes within a week. Always use current data - max pain from Monday may be irrelevant by Thursday.
Monthly options (third Friday) have far more OI than weeklies, which means stronger pinning force. The weekly max pain is often less reliable because the OI is thinner and more concentrated in speculative flow.
SPY, QQQ, AAPL, TSLA - these have enough OI and dealer hedging activity to generate measurable pin effects. Small-cap names with 500 contracts of OI will not show meaningful max pain behaviour.
Max Pain API Docs Get API Access Try in Playground
Options-on-futures analytics span 21 CME contracts: equity index (ES, NQ, RTY, YM and the MES/MNQ micros), metals (gold, silver), the full Treasury curve, grains, and regulated CME Bitcoin and Ether. Each root is priced with Black-76 on the forward and carries its own CME contract multiplier, so dollar gamma is comparable across the complex and against an equity book. Every root is on the futures hub.
Max pain is one of the most intuitive signals in options analytics: find the strike where option sellers win the most, and expect gravitational pull toward it as expiration approaches. Combined with real-time GEX data - gamma flip, call walls, put walls, and dealer alignment - max pain becomes a powerful contextual layer for trade timing, strike selection, and risk management. The FlashAlpha max pain API computes it all in a single call.
Trading index futures? The same applies to CME index futures - see max pain & levels on ES & NQ futures.
by Tomasz Dobrowolski
by Tomasz Dobrowolski
by Tomasz Dobrowolski
Get fast visibility into market shifts with full-chain analytics over low-latency REST and MCP polling.
Screen millions of option pairs per second using your custom EV rules, filters, and setups.
Export structured signals to your own execution stack or broker integration - FlashAlpha delivers the analytics, you keep control of order routing.