Market Regime Classification with FlashAlpha: Gamma, Volatility & Dealer-Flow Regimes

Market Regime Classification with FlashAlpha: Gamma, Volatility & Dealer-Flow Regimes

A complete guide to classifying market regime with FlashAlpha - the gamma regime (positive vs negative, with the repriced flip as the boundary), the volatility regime (VRP, term structure, skew), the vanna/charm overlays, and the intraday flow regime - every input read straight from the API, with a worked example and a strategy-gating matrix.

T
Tomasz Dobrowolski Quant Engineer
Jun 17, 2026
47 min read
Regime GEX VolatilityRegime DealerPositioning VRP Guide

A regime is a persistent state of the market that changes how price behaves - how far it travels, whether it trends or mean-reverts, and whether options are priced richly or cheaply for that behavior. Most "regime" tools hand you a single black-box score. FlashAlpha does the opposite: it exposes the explicit, explainable inputs - the gamma sign, the repriced flip, net VRP and its percentile, the term-structure slope, the vanna and charm tilts - so you can classify the state yourself and always know why you're in it. Every field below is returned by a documented endpoint, so the entire classification is reproducible and automatable.

1. The gamma regime: dampening vs amplifying

The headline regime read is the sign of net dealer gamma, because it controls the feedback loop between price and dealer hedging. Options market makers run delta-neutral: when their inventory gamma is positive, a move against them is hedged by trading with mean reversion; when it's negative, they hedge with the move, feeding it.

  • Positive gamma (dealers long gamma). To stay neutral, dealers buy dips and sell rips. That hedging leans against price, so realised volatility is dampened, intraday ranges compress, and price tends to mean-revert toward high-gamma strikes. This is the classic "pinned, range-bound" tape. FlashAlpha returns the read verbatim - the interpretation.gamma string reads "Dealers long gamma - moves dampened, mean reversion likely."
  • Negative gamma (dealers short gamma). Now dealers sell into weakness and buy into strength to stay neutral, which pushes price further in the direction it's already going. Realised volatility is amplified, moves trend and extend, and air pockets open up. This is the "trend day / gap-and-go / waterfall" tape.
  • Magnitude matters, not just sign. A large absolute net_gex means a thick cushion of stabilising (or destabilising) hedging flow; a near-zero net GEX means the regime is fragile and easily tipped. The summary also returns a hedging_estimate - the dealer share-flow and notional implied by a ±1% move - so you can size the cushion in dollars rather than guess.

The gamma flip - the regime boundary

The gamma_flip is the spot level where net GEX crosses zero: the boundary between the two regimes. Above it you're in the dampening state; below it, the amplifying state. FlashAlpha does not read a noisy zero-crossing off the raw strike grid - it reprices net GEX across candidate spot levels (backing each leg's implied vol out of its stored gamma, then recomputing gamma at each candidate underlying) and walks a band around spot to the first regime-consistent sign change, refining by bisection. The result is a stable pivot rather than a jittery number, and it's the single most important level on the board: reclaiming or losing it is the moment dealer behavior inverts. Watch it migrate versus spot intraday - a flip drifting up toward price as the session sells off is an early warning that the cushion is thinning.

Call wall, put wall - the in-regime rails

Within a positive-gamma regime, the call wall (the out-of-the-money strike of greatest call gamma) acts as resistance and the put wall (greatest put gamma below spot) as support - dealer hedging intensifies as price approaches them, so they behave like magnets and brakes. In a negative-gamma regime those same levels are far weaker; once price punches through a wall with dealers short gamma, the hedging that would have defended it now accelerates the break. The summary and levels endpoint return call_wall, put_wall, gamma_flip, max_pain and highest_oi_strike together.

Worked example. Suppose the summary returns regime: "positive_gamma", spot a couple of points above a gamma_flip just below it, a large positive net_gex, and a hedging_estimate showing dealers would buy several million shares on a 1% dip. Read: stabilising regime, mean reversion favored, the put wall below is real support, and you should fade stretches toward the walls rather than chase. If price then loses the flip and net_gex goes negative, the same board inverts - stops should widen and momentum should be respected, not faded.

Read it: /v1/exposure/summary/{symbol} returns regime, net_gex, gamma_flip, the walls, the interpretation block, the hedging_estimate, and a zero_dte breakdown in one call; /v1/exposure/levels/{symbol} returns just the levels. Single-expiry GEX and key levels are on the Free tier for individual equities; the full-chain summary is Growth.

2. The volatility regime: rich vs cheap, calm vs stressed

The gamma regime tells you how price moves; the volatility regime tells you whether options are worth owning or selling for that behavior. Two orthogonal signals classify it.

Rich vs cheap - the volatility risk premium

The volatility risk premium (VRP) is implied volatility minus realised volatility: VRP = IVATM − HV20. Positive VRP is a premium-rich regime - options price in more movement than the underlying is actually delivering, which structurally favors net sellers. Negative VRP is premium-cheap - realised is outrunning implied, which favors owning convexity. The VRP endpoint returns far more than a single number:

  • VRP across horizons - vrp_5d, vrp_10d, vrp_20d, vrp_30d (ATM IV against 5/10/20/30-day realised), so you can see whether the premium is a short-term spike or a structural state. The 20-day is the headline.
  • Percentile and z-score - today's VRP against its own trailing history (percentile, z_score, history_days), so "rich" or "cheap" is judged relative to this name, not an absolute. These are leak-bounded (built only from data strictly before the as-of date), which is what makes them safe to use inside a backtest.
  • Fair vol and convexity premium - fair_vol (a model estimate of justified volatility) and convexity_premium quantify how far priced vol sits from fair and how much you're paying for the tails.
  • Directional (skew) VRP - the directional block splits the premium into put-wing and call-wing (25-delta) IV against downside/upside realised, so you can see whether the richness is concentrated in downside protection (the usual case) or calls.
  • A classified label - a vrp_regime string (for example cheap_convexity) so you don't have to threshold the raw numbers yourself.

Tier note. The VRP endpoint (/v1/vrp/{symbol}) is Alpha tier. On Growth you can still classify the volatility regime: the same vrp_percentile, vrp_z_score, vrp_regime and per-structure strategy scores (net_harvest_score, short_put_spread_score, short_strangle_score, iron_condor_score, calendar_spread_score) come back per symbol from the screener (/v1/screener), and the raw spreads from /v1/volatility/{symbol}. The GEX/vanna-conditioned VRP, term curve, 25-delta wing internals and history series are the Alpha-only extras.

Worked example. A read of ATM IV ≈ 13 against 20-day realised ≈ 16 gives vrp_20d ≈ −3, with a percentile in the single digits and a negative z-score - i.e. premium is not just negative but historically cheap for this name, classified cheap_convexity. The actionable read: this is a poor environment to sell strangles and a relatively good one to own gamma, regardless of what the gamma regime says.

Calm vs stressed - the term structure

The IV term structure is the second axis. A normal, upward-sloping curve (contango) - near-dated IV below longer-dated - is a calm regime: the market sees no acute near-term risk. An inverted curve (backwardation), where near-dated IV exceeds longer-dated, signals concentrated near-term stress: an event, a shock, or a risk-off scramble for short-dated protection. The volatility endpoint returns the term structure, and the VRP endpoint surfaces a term_vrp array (VRP by days-to-expiry) plus macro context including the VIX term slope. Watching the curve flip from contango to backwardation into a known event - an FOMC, a CPI print, an earnings date - is the cleanest "regime about to change" signal the surface gives you.

Contracting vs expanding - the realised-vol trend

Rich-vs-cheap and calm-vs-stressed are levels; the third question is direction - is volatility contracting or expanding right now? The VRP block answers it without a separate call: compare the short realised window to the long one. When rv_5d sits well above rv_20d, realised vol is accelerating (expanding); when it sits below, the tape is cooling (contracting). The term_vrp array and the macro vix_term_slope corroborate it - a slope falling toward or below 1.0 (front-month VIX catching up to the 3-month) is the market pricing expansion. This axis matters because the same gamma sign behaves very differently with vol expanding versus contracting: positive gamma into contracting realised vol is the textbook calm grind, while positive gamma into expanding realised vol is a regime under pressure - the stabilising cushion is being tested and may not hold. Stack this on the rich/cheap overlay below and you have the four volatility states (calm-cheap, calm-rich, stressed-cheap, stressed-rich) that turn the gamma sign from a label into a read.

3. The regime matrix: combining gamma and volatility

Neither axis is sufficient alone - the power is in the intersection. Crossing the gamma regime (how price moves) with the VRP regime (how options are priced) yields four working quadrants:

 Rich VRP (premium expensive)Cheap VRP (premium cheap)
Positive gamma (dampened, mean-reverting)The premium-selling sweet spot: range-bound and overpriced. Defined-risk income (iron condors, credit spreads), fade the walls.Calm but cheap: ranges are tight yet options aren't paying you to sell them. Be patient, prefer calendars/diagonals that are long back-month vol, avoid naked shorts.
Negative gamma (amplified, trending)Dangerous to sell despite rich premium: moves can outrun the cushion. If selling, stay far OTM and small; respect momentum and the flip.The own-convexity regime: trending and cheap. Favor long gamma/vega, directional debit structures, and wide stops; this is where short premium gets run over.

The VRP endpoint operationalises exactly this overlay: it returns a gex_conditioned block (VRP read conditioned on the gamma regime, with a harvest_score and a plain-English interpretation such as "Dealers long gamma but premium is thin - limited harvest opportunity") and per-structure strategy_scores (short put spread, short strangle, iron condor, calendar spread), plus an aggregate net_harvest_score and a dealer_flow_risk gauge. That is the matrix above, scored for you.

4. The vanna and charm overlays

Gamma and VRP classify the current state; vanna and charm tell you how the state will shift as two things change that always change: implied volatility and time. They're the second-order regime modifiers, and the exposure summary returns both (net_vex, net_chex) with interpretation strings.

  • Vanna (VEX) - the vol-shock modifier. Vanna is how dealer delta moves when IV moves. Because spot and vol are negatively correlated, a vol spike mechanically forces dealers to re-hedge even with spot unchanged. The summary's interpretation.vanna spells out the direction - e.g. "Vol up = dealers sell delta - downside amplified if vol spikes." A benign positive-gamma regime with large negative vanna is a trap door: stable until vol pops, then suddenly not.
  • Charm (CHEX) - the time-decay modifier. Charm is how dealer delta drifts purely with the passage of time. It intensifies into expiry and drives the end-of-day and into-OPEX rebalancing flow - the summary's interpretation.charm reads like "Time decay pushing dealers to sell - pressure into close." Charm is why a pinned morning can resolve into a directional afternoon as dated positioning bleeds off.

The VRP endpoint adds a vanna_conditioned outlook (e.g. "Negative vanna but spot above flip: potential for rapid vol expansion if spot drops") that fuses the vanna tilt with where price sits relative to the flip - a forward-looking regime-fragility read.

5. The intraday flow regime

Everything above, computed on settled open interest, describes the regime as of the last exchange settlement - stamped to the prior close and static through the day. The flow regime answers the question settled GEX can't: has positioning changed today?

FlashAlpha's flow analytics recompute the dealer book on intraday effective open interest - settled OI plus a flow-classified estimate of today's net opening trades, where each side-classified contract contributes a calibrated fraction of estimated OI change. A regime that opened positive-gamma can drift toward the flip and tip negative on a heavy directional session, and flow GEX surfaces that shift hours before the next settlement reveals it. On CME index futures - which trade nearly 24 hours - the flow regime can change overnight, before the US cash session even opens. Read it from /v1/flow/gex/{symbol}, /v1/flow/levels/{symbol}, /v1/flow/dealer-risk/{symbol} and /v1/flow/pin-risk/{symbol} (Growth tier).

6. The 0DTE regime

Same-day expiry is its own regime layer. The summary's zero_dte block reports the 0DTE share of total gamma (pct_of_total_gex) and its net GEX for the target expiration - when that share is large, intraday hedging is dominated by contracts whose gamma and charm explode into the bell, so the regime can be calm at the open and violent into the close even with the headline gamma sign unchanged. For the dedicated 0DTE reads - pin-risk score, remaining-session expected move, gamma acceleration - use /v1/exposure/zero-dte/{symbol} and flow-adjusted pin risk.

7. Regime strength and transitions: how convinced should you be?

A regime label is binary; conviction is not. FlashAlpha deliberately does not hand you a single black-box "confidence: 87%" number - it returns the measurable inputs so you can build a strength read you can actually audit. Four fields set how much weight the label deserves:

  • Distance to the flip. The further spot sits from gamma_flip, the more entrenched the regime. Compute it as a percentage - (spot − gamma_flip) / spot - and treat it as the headline conviction gauge. Spot 3% above the flip with positive GEX is a deep, stable positive-gamma regime; spot 0.2% above it is the same label with almost none of the conviction, one air pocket from inverting.
  • Magnitude of net GEX. A large absolute net_gex is a thick hedging cushion; a near-zero value is a coin-flip regime that tips on light flow. Read it in dollars via hedging_estimate - millions of dealer shares to buy on a 1% dip is real ballast, a few hundred thousand is noise.
  • Vanna and charm agreement. When the gamma sign, net_vex and net_chex all point the same way, the second-order flows reinforce the regime; when they conflict, they erode it. Positive gamma with vanna and charm that also stabilise is a strong, self-reinforcing calm; positive gamma with large negative vanna (a vol pop forces dealer selling) is a brittle calm wearing a stable label - exactly the vanna_conditioned outlook the VRP endpoint flags as "potential for rapid vol expansion if spot drops."
  • Has it already moved? (transitions). The single most valuable read is not the regime - it is the impending change. Spot 0.5% below the flip is far more actionable than spot 8% below: the first is a regime on the cusp of inverting, the second a settled trend state. Watch the flip migrate toward spot intraday and confirm with the flow regime (§5) - effective-OI GEX tips before the next settlement does. Proximity to the flip is your regime-transition probability, expressed in the one number that matters: how far price has to travel to change dealer behavior.

Same label, opposite trades. A positive-gamma read with spot pinned just above the flip, a modest net_gex, and large negative net_vex is a low-conviction, high-fragility positive-gamma regime - trade it like it could flip, not like a fortress. The same label with spot 3% clear of the flip, a huge net_gex, and vanna/charm aligned is a high-conviction grind you can lean on. The word is identical; the position sizing should not be.

8. Why the gamma sign alone isn't enough - and how to compose one stability read

The gamma sign is the loudest input, not the only one. A complete regime read is a function of several axes FlashAlpha returns alongside it - gamma sign and magnitude, distance to the flip, vanna, charm, VRP and its percentile, the term-structure slope, liquidity, and macro. Two of those are easy to forget and decisive when they bite:

  • Liquidity sets whether the levels are tradable at all. The VRP response already raises the flag - warnings: ["poor_wing_liquidity"] plus a dealer_flow_risk gauge - and the dedicated liquidity endpoint (/v1/liquidity/{symbol}) scores each expiry 0-100 (tight / normal / wide / illiquid) from ATM and OI-weighted spreads. A pristine gamma map on an illiquid chain is a map of a road you can't drive.
  • Macro sets whether an exogenous force is about to overwhelm the dealer cushion. The VRP endpoint returns a macro block - vix, vix_3m, vix_term_slope, the 10-year (dgs10), the high-yield credit spread (hy_spread) and fed_funds - so you can see whether the regime is sitting on a known catalyst or a stressed credit backdrop rather than calm fundamentals.

Because every component is an explicit field, you can compose a single, transparent stability read today - no black box required. A minimal version scores the cushion (gamma sign and magnitude), the conviction (distance to the flip), the fragility (vanna agreement), the backdrop (term slope) and the tradability (liquidity), then sums them:

import requests
H = {"X-Api-Key": "YOUR_KEY"}; BASE = "https://lab.flashalpha.com"
sym = "SPY"
s = requests.get(f"{BASE}/v1/exposure/summary/{sym}", headers=H).json()
v = requests.get(f"{BASE}/v1/vrp/{sym}", headers=H).json()   # Alpha tier; on Growth read vrp_percentile / vrp_z_score / strategy scores from /v1/screener

spot  = s["underlying_price"]
flip  = s["gamma_flip"]
gex   = s["exposures"]["net_gex"]
vex   = s["exposures"]["net_vex"]
dist  = (spot - flip) / spot * 100              # % above/below the flip
vpct  = v["vrp"]["percentile"]
slope = v["macro"]["vix_term_slope"]            # >1 contango (calm), <1 backwardation (stressed)
liq_ok = "poor_wing_liquidity" not in v.get("warnings", [])

score  = 0
score += 2 if gex > 0 else -2                   # cushion direction
score += 1 if abs(dist) > 1.5 else 0            # conviction: clear of the flip
score += 1 if (gex > 0) == (vex > 0) else -1    # vanna agrees with gamma vs trap-door
score += 1 if slope > 1 else -1                 # term structure calm vs stressed
score += 1 if vpct > 50 else 0                  # premium rich enough to be paid to sell
score += 0 if liq_ok else -1                    # tradability

label = ("stable / dampened"      if score >= 3 else
         "fragile / transitional" if score >= 0 else
         "stressed / amplified")
print(f"{sym}: stability {score}  ->  {label}  (flip {dist:+.2f}%, VRP pct {vpct}, slope {slope:.2f})")

That is the spirit of a "market stability score" - but one you control, audit, and can re-weight for your own strategy, rather than a vendor's opaque index. Swap in ES%3DF or NQ%3DF and it classifies CME index futures the same way.

9. When the regime read fails

A regime is a base rate, not a guarantee, and the honest part of any classification system is knowing where it breaks. Positive-gamma stabilisation - the most-traded read - fails most reliably in five situations:

  • Macro catalysts. An FOMC decision, a CPI surprise or a geopolitical shock injects directional flow that swamps the dealer cushion. The macro block and an inverting term structure warn you in advance; size down into known events regardless of the gamma sign.
  • Earnings clusters. Single-name gamma maps are routinely overrun by the post-print gap, and index regimes wobble when a mega-cap reports. Check the calendar before trusting a multi-day mean-reversion read - see trading earnings volatility.
  • Rapidly expanding realised vol. When rv_5d is accelerating away from rv_20d, the flip repositions faster than a static read assumes - positive gamma can be technically true and practically useless. This is the contracting-vs-expanding axis from §2 doing real work.
  • A regime on the cusp. Near-zero net_gex, or spot within a few tenths of a percent of the flip, means the label is one trade from inverting; treat low-conviction regimes (§7) as transitional, not settled.
  • Thin liquidity or OI mis-attribution. The metrics are only as good as the open interest they're built on - a poor_wing_liquidity warning, a stale chain, or a data-quality flag means the levels may be artefacts. Prefer the percentile and relative reads over absolutes when quality is in doubt.

None of these break the framework - they tell you when to widen the error bars, which is exactly what a structural lens is for.

10. Replaying past regimes with the historical API

The fastest way to trust a regime read is to watch how past ones resolved - and FlashAlpha lets you replay the exact classification at any minute since April 2018. The historical mirror takes the same paths with an ?at= timestamp on historical.flashalpha.com, so you can reconstruct the gamma sign, flip, net GEX and hedging estimate as they stood inside any past session:

# The dealer-gamma regime as it stood during the COVID crash
curl -H "X-Api-Key: YOUR_KEY" \
  "https://historical.flashalpha.com/v1/exposure/summary/SPY?at=2020-03-16T15:30:00"

# ... and the volatility regime that same minute
curl -H "X-Api-Key: YOUR_KEY" \
  "https://historical.flashalpha.com/v1/vrp/SPY?at=2020-03-16T15:30:00"

Replay a stress episode and the structure speaks for itself: through the March 2020 unwind and the August 2024 carry-trade VIX spike, index net GEX sat deeply negative with the flip stranded well above spot - the textbook negative-gamma, amplifying regime - then rebuilt toward positive as the panic drained and realised vol collapsed. You don't have to take the narrative on faith; pull the snapshots and measure the range, the flip migration and the VRP percentile yourself. And because the percentile fields are leak-bounded to data strictly before each as-of timestamp, the same calls power a clean backtest - step the at cursor across history and classify every session without lookahead. See replaying GEX, VRP & dealer positioning and the backtesting guide. Historical replay is Alpha tier.

11. How the classification is computed

So the labels are auditable, here is what sits behind them - described in full in the methodology:

  • Gamma sign & net GEX - per-contract BSM gamma scaled by open interest and the contract multiplier, summed across the chain with the explicit dealer-positioning convention (calls dealer-long, puts dealer-short). For futures the same math runs under Black-76 with the CME multiplier.
  • Gamma flip - the stable repriced zero-gamma described in §1 (reprice across a spot band, bisection to the sign change), with a Gaussian-smoothed per-strike interpolation as fallback.
  • Walls & max pain - OTM gamma argmax for the walls (smoothed in dense 0DTE chains so a wall doesn't latch onto one noisy strike); OI-weighted minimum-payout strike for max pain.
  • VRP percentile - computed over a trailing window of daily VRP snapshots and leak-bounded to data strictly before the as-of timestamp, so it's backtest-safe.
  • Effective OI (flow) - settled OI plus a confidence-weighted intraday estimate, floored at zero, for the flow-regime variants.

12. Gating strategy on the regime

The point of classification is to switch behavior rather than run one playbook into every tape. A practical decision flow:

  1. Read the gamma sign and the flip first - it sets mean-reversion vs trend and your stop discipline. Above the flip with large positive GEX: fade extremes. Below it or with negative GEX: respect momentum, widen stops.
  2. Read VRP and its percentile - it sets net-seller vs net-buyer. Rich and high-percentile: harvest. Cheap and low-percentile: own convexity, don't sell.
  3. Cross them on the matrix (§3) to pick the structure family - or just read the VRP endpoint's strategy_scores and net_harvest_score, which encode it.
  4. Check the overlays - large negative vanna or heavy charm/0DTE share means the regime is fragile or time-sensitive; trim size or tighten timing even if the headline looks benign.
  5. Confirm intraday with the flow regime - don't trade yesterday's settled state if today's effective-OI read has already tipped.

Because every input is an explicit field, this whole flow encodes cleanly into a screener or bot - no chart-eyeballing required.

13. A classification workflow

One pass that pulls the gamma regime and the volatility regime and derives the quadrant:

import requests
H = {"X-Api-Key": "YOUR_KEY"}
BASE = "https://lab.flashalpha.com"
sym = "SPY"   # or ES%3DF / NQ%3DF for CME index futures

summ = requests.get(f"{BASE}/v1/exposure/summary/{sym}", headers=H).json()
vrp  = requests.get(f"{BASE}/v1/vrp/{sym}", headers=H).json()   # Alpha tier (Growth: same percentile / z-score / regime / strategy scores via /v1/screener)

gamma   = summ["regime"]                       # positive_gamma | negative_gamma
flip    = summ["gamma_flip"]
net_gex = summ["exposures"]["net_gex"]
vrp20   = vrp["vrp"]["vrp_20d"]
vrp_pct = vrp["vrp"]["percentile"]
vol_reg = vrp["regime"]["vrp_regime"]          # e.g. cheap_convexity

rich = vrp20 > 0
if gamma == "positive_gamma" and rich:
    lean = "Sell premium (defined risk); fade the walls"
elif gamma == "negative_gamma" and not rich:
    lean = "Own gamma/convexity; directional debit; wide stops"
else:
    lean = "Mixed regime - size down, prefer calendars / far-OTM"

print(gamma, f"flip={flip}", f"VRP20={vrp20} (pct {vrp_pct})", vol_reg, "->", lean)

14. Reading it from the API

# Gamma regime, net GEX/DEX/VEX/CHEX, flip, walls, hedging, 0DTE - one call
curl -H "X-Api-Key: YOUR_KEY" "https://lab.flashalpha.com/v1/exposure/summary/SPY"

# Volatility regime: VRP across horizons, percentile, term_vrp, strategy scores (Alpha tier)
# Growth: same percentile / z-score / regime / strategy scores per symbol via /v1/screener
curl -H "X-Api-Key: YOUR_KEY" "https://lab.flashalpha.com/v1/vrp/SPY"

# Term structure / realized vol detail
curl -H "X-Api-Key: YOUR_KEY" "https://lab.flashalpha.com/v1/volatility/SPY"

# Intraday flow regime (effective OI)
curl -H "X-Api-Key: YOUR_KEY" "https://lab.flashalpha.com/v1/flow/gex/SPY"

# Liquidity: per-expiry execution quality (tradability of the levels)
curl -H "X-Api-Key: YOUR_KEY" "https://lab.flashalpha.com/v1/liquidity/SPY"

# Plain-English regime read
curl -H "X-Api-Key: YOUR_KEY" "https://lab.flashalpha.com/v1/exposure/narrative/SPY"

# Replay the regime at any past minute (historical mirror, Alpha tier)
curl -H "X-Api-Key: YOUR_KEY" "https://historical.flashalpha.com/v1/exposure/summary/SPY?at=2020-03-16T15:30:00"

Works on CME index futures too. Every endpoint accepts ES=F and NQ=F - URL-encode the = as %3D (e.g. /v1/exposure/summary/ES%3DF) - so you can classify the ES or NQ regime on the contract's own options-on-futures book, priced with Black-76, including the overnight Globex session. See GEX on ES & NQ futures. Prefer a human-readable label? The narrative endpoint verbalizes the gamma regime, flip, walls and hedging implication for LLM pipelines and dashboards. The full-chain summary, the flow analytics and the volatility endpoint are Growth; the /v1/vrp endpoint and historical replay are Alpha. The VRP percentile, z-score, regime and strategy scores are also on the Growth screener (/v1/screener). See pricing.

15. What to keep in mind

  • Dealer positioning is an assumption, not an observation. The gamma regime assumes the standard convention (calls dealer-long, puts dealer-short). Real dealer books aren't observable; heavy customer call buying or an unusual dealer posture can flip the true sign. The metrics are a structural lens on hedging pressure, not a measurement of inventory.
  • A regime is a state, not a forecast. Positive gamma makes mean reversion more likely, not certain, and says nothing about direction.
  • Magnitudes scale with OI accuracy. Absolute GEX/VRP figures are only as good as the open-interest attribution; gate on the published data-quality signals where exact numbers matter, and prefer the percentile/relative reads over absolutes.
  • Regimes change, sometimes fast. The flip can be reclaimed and the term structure can invert intraday; re-read before acting, and confirm with the flow regime.
  • Not investment advice. Options and futures carry substantial risk of loss.

Frequently Asked Questions

By the sign of net dealer gamma. /v1/exposure/summary returns a regime field of positive_gamma (dealers long gamma, hedging buys dips and sells rips - moves dampened, mean reversion likely) or negative_gamma (dealers short gamma, hedging feeds the move - trending, amplified), with the repriced gamma flip as the price boundary between the two. It's summed from the full options chain under an explicit dealer-positioning convention, not a black-box score.
The gamma regime tells you how price moves (dampened vs amplified, mean-revert vs trend). The volatility regime tells you whether options are worth owning or selling - VRP (IV minus realised vol) shows whether premium is rich or cheap, and the IV term structure (contango vs backwardation) shows whether the market is calm or stressed. They're orthogonal; cross them on the regime matrix to pick a strategy family.
The gamma flip is the spot level where net dealer gamma crosses zero - the boundary between the dampening (above) and amplifying (below) regimes. FlashAlpha reprices net GEX across candidate spot levels and walks a band around spot to the first regime-consistent sign change, refining by bisection, so it's a stable pivot rather than a noisy strike-grid zero-crossing. It's returned as gamma_flip on the summary and levels endpoints. Reclaiming or losing it is when dealer hedging behavior inverts.
They're the second-order overlays that tell you how the regime will shift. Vanna (VEX) is how dealer delta moves when IV moves - large negative vanna means a vol spike forces selling, so a calm positive-gamma tape can turn fragile if vol pops. Charm (CHEX) is how delta drifts with time - it intensifies into expiry and drives end-of-day and OPEX flow. Both are returned as net_vex/net_chex on the summary with interpretation strings, and the VRP endpoint adds a vanna-conditioned outlook.
/v1/exposure/summary/{symbol} (gamma regime, net GEX/DEX/VEX/CHEX, flip, walls, hedging, 0DTE), /v1/exposure/levels/{symbol} (just the levels), /v1/vrp/{symbol} (volatility regime: VRP horizons, percentile, term_vrp, strategy scores), /v1/volatility/{symbol} (term structure), /v1/flow/gex/{symbol} (intraday flow regime), and /v1/exposure/narrative/{symbol} (plain English). Single-expiry GEX + key levels are Free for individual equities; full-chain summary, VRP and flow are Growth; advanced volatility and history are Alpha.
Positive gamma + rich VRP is the premium-selling sweet spot (defined-risk condors/credit spreads, fade the walls). Negative gamma + cheap VRP favors owning convexity (long gamma/vega, directional debit, wide stops). Positive gamma + cheap VRP is calm-but-unpaid (be patient, prefer calendars). Negative gamma + rich VRP is sell-with-caution (far OTM, small, respect momentum). The VRP endpoint scores these for you via strategy_scores and net_harvest_score. These are structural leans, not signals - combine with your own execution and risk rules.
No. A regime describes the current state and the behavior it makes more likely - positive gamma makes mean reversion more probable, not certain, and says nothing about which way price goes. It's a structural lens for gating strategy selection and risk, built on an assumed dealer-positioning convention. Use it to choose how to trade, not which way. Not a directional forecast and not investment advice.
No - by design. Instead of a black-box number, the API returns the inputs you'd build conviction from: distance of spot to the gamma_flip (the headline gauge), the magnitude of net_gex and its dollar hedging_estimate, and whether net_vex/net_chex agree with the gamma sign or fight it. A deep-flip, large-GEX, vanna-aligned read is high conviction; a pinned-to-the-flip, small-GEX, negative-vanna read is the same label with little conviction. You can sum these into your own transparent stability score (§8) and re-weight it for your strategy.
Use the historical mirror: the same paths on historical.flashalpha.com with an ?at=YYYY-MM-DDTHH:mm:ss timestamp replay the full classification at any minute since April 2018 (Alpha tier). Pull /v1/exposure/summary and /v1/vrp across a past stress episode - the March 2020 unwind or the August 2024 VIX spike - and you can watch net GEX go deeply negative with the flip stranded above spot, then rebuild as the panic drains. The percentile fields are leak-bounded to data before each timestamp, so the same calls power a lookahead-free backtest.

Regime classification with FlashAlpha is deliberately transparent and complete: the gamma regime (sign, repriced flip, walls, hedging estimate), the volatility regime (VRP across horizons, percentile, term structure, expansion trend, skew), the vanna/charm overlays, the 0DTE layer, and the intraday flow regime - then the parts most tools skip: a conviction read from distance-to-flip and second-order agreement, the liquidity and macro inputs that decide when the gamma sign isn't enough, an honest account of where the read fails, and a historical mirror to replay and backtest any past regime. Every input is an explicit, documented field you can read, explain, automate, and backtest. Classify the state, judge how much to trust it, then gate how you trade on it rather than running one playbook into every tape. Pull it from /v1/exposure/summary, /v1/vrp, /v1/volatility, /v1/flow/gex and /v1/exposure/narrative - equities and ES=F/NQ=F alike - read the regime, gamma flip and VRP concept pages, and see the end-to-end playbook in the complete guide to trading gamma exposure. For exactly how every number is derived, see the methodology.

Live Market Pulse

Get fast visibility into market shifts with full-chain analytics over low-latency REST and MCP polling.

Intelligent Screening

Screen millions of option pairs per second using your custom EV rules, filters, and setups.

Export-Ready

Export structured signals to your own execution stack or broker integration - FlashAlpha delivers the analytics, you keep control of order routing.

Join the Community

Discord

Engage in real time conversations with us!

Twitter / X

Follow us for real-time updates and insights!

GitHub

Explore our open-source SDK, examples, and analytics resources!