Methodology
Everything on the map comes from the math below. Where we measure, we say measured. Where we assume, we say assumed. Nothing here is a signal or advice.
Data
- Options chain: real-time OPRA options data (trades, quotes, greeks, IV, open interest) from a licensed real-time feed. Open interest is an end-of-day figure (OCC publishes T+1): it updates once per day, before the open.
- Spot: for stocks, derived live from the option quotes themselves: put-call parity (call − put + strike) across near-the-money strikes on the nearest expiry, median of the qualifying strikes, sanity-checked against the exchange feed. For indices (SPX/NDX), the real-time index value. If the derivation is briefly unavailable, the last verified value serves until it recovers, and the terminal labels it instead of dressing it as live.
- Independent cross-check: we verified our per-strike open interest and spot against CBOE's own published data: every strike matched exactly. The data layer is verified; what's built on top of it is a model, covered next.
The dealer-positioning model
Dealer positioning is modeled from the full chain using the industry-standard convention: dealers are treated as long calls, short puts against customer flow, so per contract:
GEX = gamma × OI × 100 × spot² × 0.01 (calls +, puts −)
The levels
- Call wall / put wall: the strikes carrying the largest positive / negative dealer gamma. Interpreted as the levels where hedging pressure tends to lean against price.
- Gamma flip: the spot price where total signed dealer gamma crosses zero: found by re-pricing every contract's Black-Scholes gamma across a ±18% spot grid and interpolating the zero crossing nearest spot. Not the naive cumulative-by-strike shortcut (which produces nonsense levels; we tried, it's why we rebuilt it).
- King node: the strike with the largest absolute gamma, the level where hedging is most concentrated.
- Expected move: 1σ band = spot × ATM IV × √T for the nearest listed expiry, excluding 0DTE (a 0.5-day floor on T used to fake tight bands; we exclude instead and label the expiry used).
- Max pain: the expiry strike minimizing total option payout.
- Air pockets: near-spot gaps in the gamma profile (within ±4% of spot, minimum 0.8%-of-spot span): zones with little hedging resistance.
- Vanna / charm: computed in-house from Black-Scholes (the feed doesn't provide them), same sign convention, presented with a plain-English directional read.
- 0DTE share: each contract's absolute gamma dollars expiring today vs total, a fragility flag: when most of the map's gamma expires tonight, much of the structure resets overnight.
Live flow & CVD (beta)
- A live tape of options trades for SPY / SPX / QQQ near-the-money contracts (ATM ±11 strikes, two nearest expiries, re-centered every 15 minutes).
- Side classification: a print at or above the NBBO ask = buyer-initiated; at or below the bid = seller-initiated. Prints inside the spread carry no side and are excluded: for options that's a large share of volume, and we display the excluded percentage rather than pretend otherwise.
- CVD (beta): the session-cumulative sum of bought-minus-sold contracts, calls and puts separately. It answers "who's been hitting the buttons today," not "what do dealers hold."
- Tape-inferred side labels cannot see open-vs-close. That's a real limit of live inference: see the checks section below.
How we check ourselves
Two checks, run every session. After each close the map's levels are snapshotted and the next session's candle grades them by fixed rules written in advance. Each night the map is also checked against Cboe's participant-tagged open-close data: whether our walls sit where real open interest concentrates, and, for the series where the customer's side is observable, whether the dealer-side assumption behind the gamma numbers holds. Both checks run automatically and are kept as an internal record while the scoring is rebuilt to measure what the map actually claims: regime accuracy, range containment and flip behavior, rather than a single held-or-broke count per wall.
Honest limits
- Dealer positioning is inferred, not observed. The map is a model of hedging pressure, not a window into anyone's book.
- Open interest is end-of-day: intraday OI shifts are invisible until tomorrow's file. The live tape partially compensates; it does not fully.
- Levels are context, not signals. A wall is where pressure concentrates, not a promise of a bounce. Nothing here is investment advice.
- Coverage differs per instrument (single names are thinner than index products); the map tells you its own confidence where it's low.
Amon Hen is a free tool built by HelmFi. Questions or holes in the methodology? Tell us: the fastest way to make the map better is to attack it. · Terms · Privacy