TanukiTradeDocs

Learn

Max pain

Max pain is the candidate strike at which the combined intrinsic payout of the included calls and puts is smallest, weighted by open interest. The expiry summary returns that strike for each expiration.

What the calculation minimizes

Hold the reported OI book fixed and test a hypothetical settlement price S. Calls pay intrinsic value above their strike K; puts pay intrinsic value below it. TanukiTrade weights each payoff by OI and its 100 multiplier, then adds both sides:

Call payout(S) = 100 × Σ[call OI(K) × max(S − K, 0)]
Put payout(S) = 100 × Σ[put OI(K) × max(K − S, 0)]

The total is call payout + put payout. The minimum across candidate strikes gives max pain. Each candidate strike is a trial settlement price; its total includes the payouts from the entire expiration’s OI book, not just options with that strike.

A small worked example

Suppose one expiration has 10 calls and 10 puts, all at strike 100, with a 100 multiplier. These are illustrative quantities, not market data.

Trial settlement priceCall payoutPut payoutTotal payout
90$0$10,000$10,000
100$0$0$0
110$10,000$0$10,000

The minimum is at 100. Premiums paid or received, earlier trades, spreads, and hedges are absent from this arithmetic, so the payout is not the participants’ actual profit or loss.

One expiration, and ties

Max pain is defined at one expiration’s settlement, so TanukiTrade computes it from that expiration’s OI only (standalone). Options that expire on other dates do not settle at that price, so the API does not combine expirations; do not average separate expirations’ max-pain strikes either.

The payout total can have a broad or flat minimum. When candidate strikes tie, TanukiTrade chooses the strike closest to the snapshot spot, then the lower strike if they are equally distant. The selected label does not make the minimum uniquely concentrated. With no OI, max_pain_strike is null.

The endpoint

Max pain by expiry documents POST /api/v1/chain/max-pain-summary and MCP list_chain_max_pain_summary. Supply at least one of symbol or expiry: a symbol returns its expirations, an expiry alone returns that expiration across symbols.

Each row is flat: read max_pain_strike, distance_pts, and distance_pct with spot_price and snapshot_at. Distance is max-pain strike minus spot: negative means below spot. Call and put open interest per expiration is in expiry distribution.

Use it as an OI-based reference

Max pain does not establish where price will settle, a probability of pinning, or a dealer’s hedge direction. It uses contract counts and intrinsic payoffs; GEX instead weights the book by gamma. The two levels need not coincide.

OI does not identify each holder’s cost or complete portfolio. Read the OI reporting clock and the actual expiration before comparing snapshots. For dealer-hedging levels, use the key levels and net GEX by strike instead. The OIC’s open-interest explanation covers what the contract count records.

TanukiTrade documentation. Levels are context, not a recommendation. tanukitrade.com