Help us double down on what's working, instead of guessing. Takes 5 seconds, totally optional.
gammaexposure · 12 min read
Which Expiry Holds the Gamma? SPY & QQQ Expiry Impact API
Measure how much of SPY and QQQ gamma concentration sits in one expiry, see which expiries hold a strike, and read the limits: inputs held fixed, a sign convention and unknown open-interest vintage.
Expiry impact is the difference between the current gamma distribution and the same captured inputs with one expiry removed. Spot, Greeks and open interest are held fixed, so it measures how much of today's concentration depends on that maturity. It is not a forecast of the next session's chain.
Strike dependency is one exact strike's gross and net gamma exposure broken down by expiry. The dominant expiry's share describes concentration at that strike, not a probability that price holds there.
Why one expiry can dominate
Gamma rises as an option approaches expiry, and SPY and QQQ volume concentrates in short-dated contracts: same-day (0DTE) options and the monthly OPEX expiry above all. A strike can therefore carry a large gamma concentration that lives almost entirely in one maturity. When that expiry rolls off, the concentration can disappear even though nothing about the underlying changed. Whole-chain GEX by strike hides that dependency; splitting it by expiry shows it.
How expiry impact works
For every eligible contract, FlashAlpha computes gamma exposure as gamma × open interest × 100 × spot² × 0.01, in USD of delta notional per 1% move. Calls count positive and puts negative. That is a sign convention, not a measurement of dealer holdings.
Gross sums contract magnitudes: how much gamma sits in a slice.
Net applies the sign, so offsetting calls and puts cancel.
Both sides of the comparison come from one captured snapshot, so the difference reflects the excluded contracts only. Omit expiry to use the nearest active expiry. An expiring contract leaves the model at 16:00 ET, and early-close expiries are excluded until their clocks are verified.
Read it as: the selected expiry holds about 21% of the captured gross gamma, and removing it lowers modeled net GEX by $650M without changing its sign. impact.largest_gross_reductions then ranks the strikes that lose the most gamma, which are the levels to check with strike dependency.
The response lists the strike's gross and net GEX by expiry with each expiry's share and returns dominant_expiry with dominant_expiry_share_pct. A wall held by several expiries survives one roll-off; a level held mostly by a same-day expiry may not. The strike must be an observed strike: the API does not round to the nearest one.
What these numbers do not tell you
Not a forecast. The remaining chain is not repriced or advanced in time.
Not dealer inventory. Calls positive and puts negative is a convention.
Unknown open-interest vintage. The source does not record when open interest was published: oi_as_of is null and data_status is partial in normal operation.
Labelled pricing basis. SPY uses cached Greeks at the current spot; QQQ reprices raw quotes at one anchor, as QQQ GEX does. Each response states its pricing_basis.
Scope. Standard SPY and QQQ contracts only.
What each plan unlocks
Both endpoints, and the gamma_concentration block on exposure term structure, require the Growth plan or higher. They are also MCP tools (compare_expiry_impact, get_strike_expiry_dependency) among the FlashAlpha MCP server's 78 tools, so an AI assistant can ask which expiry holds the gamma directly.
Frequently Asked Questions
It compares the current SPY or QQQ gamma distribution with the same captured inputs after removing one expiry, and reports the gross share removed, the net GEX change, whether the modeled net sign changes, and the strikes that lose the most gamma. Spot, Greeks and open interest are held fixed, so it is a sensitivity of today's concentration, not a forecast.
No. The removed gross share uses gross exposure, the sum of contract magnitudes. The legacy pct_of_chain_gex on exposure term structure divides an expiry's absolute net GEX by the sum of absolute expiry-level net GEX. An expiry can hold a large gross share while contributing little net.
No. The strike must be an exact observed strike. A strike with no eligible contracts returns 404 strike_not_found instead of being snapped to a nearby level.
Not by itself. The calculation holds every input fixed and uses a calls-positive, puts-negative sign convention rather than observed dealer inventory. It shows how much of today's modeled concentration depends on the expiring contracts, which is useful context, not a prediction of price or volatility.
A gamma level is only as durable as the expiries that hold it. Expiry impact tells you how much of the chain's concentration depends on one maturity, and strike dependency tells you which maturities hold a particular level. Both hold the captured inputs fixed and state their data quality, so they describe today's book rather than predict tomorrow's. Start with the expiry impact docs and try a request in the playground.