Options HUD Metrics
Implementation spec for the Options Viewer's summary banner: Expected Move (ATM straddle vs. Black-Scholes fallback), Max Pain and why it's suppressed without open interest, Volume vs. OI put/call ratios, and how the ~55 SPX expirations get filtered and ranked by measured liquidity instead of just DTE.
Overview
Implementation spec for the summary metrics at the top of SOPHIE's Options Viewer, plus the expiration-cycle selector beneath them. These are the numbers that frame every other view — what the market expects to move, where dealers are positioned, and which expirations are actually worth looking at.
All calculations assume standard ^SPX conventions: European exercise, cash settlement, and a $100 contract multiplier.
Two Scopes: Market-Wide vs. Selected Cycle
The single most important thing to know when reading the top of the viewer is which scope a number belongs to. There are exactly two, and they are deliberately separated into two components:
| Scope | Component | What it covers |
|---|---|---|
| Market-wide | MarketOverviewBar (dark band) | Index level, vol regime, and the whole dealer book — every listed expiration summed together |
| Selected cycle | CycleSummaryPanel (below the date strip) | One expiration only — whichever chip is selected |
This split exists because it was previously wrong. The old single banner computed Expected Move, Max Pain, put/call ratios and total volume/OI from the selected expiration alone, then presented them in a top-level banner that read as a market summary. A reader could reasonably conclude the whole SPX board had 2.3M contracts of open interest when that was one monthly cycle's figure, and the put/call ratio shown was one cycle's flow rather than the market's.
The fix is structural rather than cosmetic: market-wide aggregates are computed across expirationDates in full, per-cycle figures are computed on the selected slice, and the two live in visually distinct components. The cycle panel carries an explicit "figures on this row are for <date> only" note, and the market band is badged "Whole book · N cycles."
What lives in the market-wide band
- Index level — spot, change, and live VIX from the Cboe feed.
- Vol regime — the regime label (Harvest / Thin / Stressed Premium / Crisis), quoted VRP and its z-score, trailing 20-session realized vol, VIX rank, and the VIX3M−VIX term slope. These come from the pipeline's precomputed daily table, not the chain feed — a 252-day percentile and an EWM z-score cannot be derived from a live quote. See Volatility Regime & VRP Methodology.
- Dealer book — whole-book net GEX, the gamma flip level, and book-wide call/put walls, plus whole-book put/call ratios and total OI/volume. See GEX Calculation Methodology.
What lives in the cycle panel
Expected Move, ATM IV, Max Pain, that cycle's net GEX and its share of the book, that cycle's own call/put walls, and its put/call ratios — each defined below. Because a single cycle's gamma can carry the opposite sign to the whole book's, the cycle panel reports its own sign rather than inheriting the band's.
One GEX implementation
Net GEX, the gamma flip and the walls are computed by a single shared module (lib/options/gex.ts) used by the GEX tab, the market band, and the cycle panel. Keeping one implementation is deliberate: three separate copies would be free to drift, and a viewer showing two different flip levels for the same chain on two different rows is worse than showing none. The module sums duplicate strikes rather than overwriting them — see the SPX/SPXW note in GEX Calculation Methodology.
At-the-Money Implied Volatility
The implied volatility of the contract nearest spot:
When both call and put IVs are quoted at the ATM strike, the mid-market average is reported.
Expected Move
How far the underlying is priced to travel by expiration. Two methods, in preference order:
Primary — ATM straddle implied range. The market-maker rule of thumb:
Fallback — Black-Scholes dispersion. Used when single-leg straddle quotes are missing:
The 0.85 factor in the straddle method is an empirical adjustment: a raw straddle price overstates the one-standard-deviation move because it prices the full expected absolute deviation, not the band. Verified against independent options-education sources — this is a widely used shortcut, popularised by tastytrade, for turning a live at-the-money straddle price into a 1σ range without running a Black-Scholes model at all.
How it's used: Expected Move is the standard reference for sizing a strangle or iron condor's short strikes — placed just outside the expected move to keep the position's probability of touching a short strike relatively low. It is also the go-to gauge for earnings and other binary events: traders compare the pre-event expected move (implied) against the stock's typical historical move on similar events (realized) to judge whether the options market is pricing the event rich or cheap, which is the entire basis for "buy the move" vs. "sell the move" earnings strategies.
Max Pain Strike
The settlement price at which option buyers collectively lose the most — equivalently, where sellers pay out the least:
Suppression rule: when open interest is unavailable (EOD snapshots sometimes omit OI fields), Max Pain is hidden rather than displayed. Without OI every strike ties at zero payout and returns an arbitrary strike — a confidently-rendered meaningless number, which is worse than showing nothing.
How it's used, and why to be skeptical: Max Pain is popularly cited as a "pin" traders expect price to gravitate toward into expiration, particularly for weekly and 0DTE options. The mechanism, to the extent one exists, runs through dealer hedging (see GEX) rather than the payout curve itself exerting any force — the curve describes an outcome, not a cause. Academic and practitioner studies of the "max pain effect" find it weak and inconsistent once normal price drift is controlled for, so treat it as one input among many rather than a reliable target.
Put/Call Ratios
The two answer different questions. Volume PCR reads today's directional flow: above 1.0 is put-heavy (bearish tilt), below 1.0 call-heavy. OI PCR reads accumulated structural positioning and moves far more slowly.
How it's used: PCR is a classic contrarian sentiment indicator, not a directional signal to trade with. Extreme readings — very high put volume relative to calls — are conventionally read as excessive fear or hedging demand, which contrarians treat as a bullish setup on the theory that sentiment is overextended; extreme call-heavy readings suggest complacency. Desks and volatility funds also track the CBOE's own equity and index PCR series over longer windows the same way they'd use VIX rank — as a regime gauge, not a single-day trade trigger.
Expiration Cycle Selection
SPX lists roughly 55 expirations — dailies, Friday weeklies, standard monthlies, quarterlies and LEAPS out several years. Listing all of them makes the selector unusable, so the default Key Expiries filter keeps only the cycles that carry real liquidity:
- Near-term dailies — every cycle with . At this horizon weekday does not matter; 0DTE and 1DTE are among the most actively traded SPX contracts.
- Friday weeklies — the next 4 non-monthly Friday expiries.
- Standard monthlies — the next 4. These are the 3rd Friday of the month (always falling on days 15–21), AM-settled, and carry the deepest open interest on the board.
- LEAPS anchor — the monthly cycle nearest ~365 DTE, so the strip still reaches a one-year horizon without listing every LEAPS.
On a representative chain this reduces 56 cycles to 14, of which only one is a non-Friday.
Cycle Liquidity Tiering
Cycle chips are ranked by measured open interest, not inferred from the weekday. Each cycle's share of the busiest visible cycle:
| Tier | Threshold | Rendering |
|---|---|---|
| Deep | Solid accent bar, bold weight | |
| Active | Translucent accent bar | |
| Thin | Grey bar, dimmed |
The spread this captures is roughly three orders of magnitude: on live SPX data monthlies clear 3.5–5.4M contracts of open interest while a mid-week daily can sit under 2K. Date proximity alone is a poor proxy — a 2-DTE daily can be far thinner than a 27-DTE monthly.
Key Takeaways
- Expected Move prefers the ATM straddle (with its 0.85 adjustment) and only falls back to Black-Scholes when quotes are missing.
- Max Pain is deliberately suppressed rather than guessed when OI is absent.
- Volume PCR reads flow; OI PCR reads structure. They frequently disagree, and that disagreement is informative.
- The expiration strip is filtered by cycle type but ranked by measured open interest.
Related Reading
- Options Viewer Methodology — index of all viewer specs
- Option Liquidity Scoring — per-contract execution quality
- Volume & Open Interest Analysis — the underlying concepts