A background diagnostic that tracks, day by day, whether SPX's implied volatility surface is behaving sticky-strike (vol pinned to a fixed strike as spot moves — typical of range-bound markets) or sticky-delta (vol riding along with spot at fixed moneyness — typical of trending markets). It's a read on the market's current character, not a trade signal by itself.
New feature, SPX only for now. Treat the readings as directional guidance — see Limitations.
Free Trial, Premium, and WhiteLabel editions only (or Developer mode) — once the Free Trial period ends, Freeware and Regular users lose access. See the Licensing & Editions guide.
Related:
Each trading day, SOAP2 fits a small local skew curve near SPX's at-the-money (ATM) point (implied vol vs. log-moneyness, across a ladder of strikes spaced at the same interval GEX/VEX uses for SPX) and records three numbers: the spot price, the ATM implied vol, and the local skew slope.
Comparing two consecutive days gives the Sticky-Strike Ratio (SSR):
(yesterday's skew slope) × (today's spot − yesterday's spot): with the usual downward-sloping equity skew, a higher spot predicts a lower ATM vol).SSR = (observed − sticky-delta prediction) ÷ (sticky-strike prediction − sticky-delta
prediction) — which simplifies to observed change divided by the sticky-strike prediction.A single day's SSR is noisy by design — real ATM vol moves for lots of reasons that have nothing to do with the mechanical skew-curve effect this ratio isolates. The dashboard's headline number is a 5-day rolling average of SSR, which is what the regime label and chart bands are based on.
Further reading on the underlying math (mathematical formulation, Greek sensitivities, worked numerical example): Sticky Strike vs Sticky Delta — Quant Finance with Python.
| Rolling-average SSR | Regime | What it suggests |
|---|---|---|
| ≥ 0.7 | Sticky-Strike | Vol at fixed strikes is holding steady as spot moves — consistent with range-bound trading. |
| 0.3 – 0.7 | Transitional / Mixed | No clean read either way right now. |
| 0 – 0.3 | Sticky-Delta | Vol is riding along with spot at fixed moneyness — consistent with a trending market. |
| < 0 | Inverted | ATM vol moved opposite to what the sticky-strike model would have predicted — a sign of active skew reshaping/whipsaw, not a clean trending read either. |
A negative SSR is worth calling out specifically: it isn't just "close to Sticky-Delta," it means the observed move and the sticky-strike prediction pointed in opposite directions, so the dashboard labels it Inverted rather than "Trending". Under the headline, the dashboard explains the regime in plain words (what it means, how long it has lasted, whether a reversal alert is close) and adds a "how much to trust it" line: how many recent readings were usable, how much they disagree, how good the skew fit was, and how many days were skipped because spot barely moved. In Hourly mode the same 5-day/10-day/60-day windows apply (measured in hours), and hourly readings are noisier than daily ones.
The RTH box (Hourly only) chooses regular trading hours (ticked, the default) or also pre/post-market bars (unticked). Extended-hours history is kept separately and never mixed with the regular-hours one, so ticking it back restores the earlier result; expect a fresh backfill the first time. Option quotes outside regular hours are thin, so extended-hours readings are noisier. Daily always uses regular hours, since a daily reading is anchored to the close. Bar times are UTC and mark the bar's open.
The first time you open the dashboard (or whenever there's less than 10 days of history), it automatically pulls about 90 calendar days of historical data for the underlying plus a ladder of ATM-region option contracts — a one-time download, typically a few minutes. A status message tracks progress; the chart populates once it finishes. After that, opening the dashboard again is instant (Refresh re-runs the pull to extend/refresh the history).
Go back to the main help page: SOAP2 Help Guide