Is the dealer-gamma sign just the leverage effect?
Three books, 1,086 sessions, one control that separates them
Every dealer-gamma screen ever published rests on one sentence: when dealers are short gamma their hedging amplifies moves, and when they are long it damps them. The range version of that claim turned out to be the volatility level wearing a gamma label. This is the other version, and the better one: forget the day's range, ask about volatility itself. If the mechanism is real, the minutes that follow a short-gamma reading should be more volatile than the minutes that follow a long-gamma reading, starting from the same volatility.
They are. The effect is there in all three books the terminal draws, it is not small, and it survives a holdout. Then one more control is added — the obvious one, the one the claim has to survive to mean anything — and two of the three books lose it entirely.
The three books, and why there are three
"The dealer book" is not one number. The terminal publishes three, per minute, and they disagree about the sign of dealer positioning on a large share of the session:
| book | construction | short gamma on |
|---|---|---|
| open interest | call-minus-put open interest × gamma — the convention every public screen uses | 43.8% of minutes |
| volume | the same convention applied to cumulative volume | 40.9% |
| measured | every print signed off the tape against the prevailing quote | 11.7% |
All three are read at the same minute, with no lookahead: open interest is fixed before the open, the volume and measured books accumulate only what has already printed.
The outcome, and the confound that comes with it
The outcome is realised volatility over the next 15 or 30 minutes — the standard deviation of the one-minute log returns that follow, in index points per minute. The window never overlaps the minute it is predicted from, and it never crosses the close.
The confound is that gamma and volatility are largely the same state seen twice, which is exactly what the range study found. So the raw comparison is reported first, because it is the number the folklore actually claims, and then taken apart.
| next 30 minutes, points per minute | open interest | volume | measured |
|---|---|---|---|
| raw gap, short minus long gamma | +0.491 ± 0.059 | +0.218 ± 0.042 | +0.352 ± 0.077 |
Development sample, 1,046 sessions. Day-clustered: the session mean first, then the spread over sessions.
The ladder of controls
Each row adds one control and reports the coefficient on a short-gamma dummy in a regression of log forward volatility. The claim predicts it is positive.
| 30-minute horizon | open interest | volume | measured |
|---|---|---|---|
| + trailing realised volatility | +0.0949 ± 0.0061 | +0.0394 ± 0.0051 | +0.0667 ± 0.0074 |
| + day and minute-of-day fixed effects | +0.0415 ± 0.0128 | +0.0385 ± 0.0073 | +0.0528 ± 0.0103 |
| + the session's return, and the last 30 minutes' | +0.0137 ± 0.0131 | +0.0093 ± 0.0081 | +0.0501 ± 0.0104 |
| the same, on the 40-session holdout | +0.0784 ± 0.0373 | +0.0291 ± 0.0288 | +0.2159 ± 0.0680 |
Standard errors clustered by session throughout. The holdout is the last 40 sessions, 2026-06-26 onward, and was scored once, at the end. Fixed effects are absorbed by two-way demeaning.
Row one. Trailing volatility alone leaves a large, wildly significant coefficient in every book. That is not yet a result: a short-gamma reading and a volatile tape arrive together, and one regression control does not settle which is doing the work.
Row two. Day and minute-of-day fixed effects remove two whole explanations at once. The day effect kills "short-gamma days are volatile days" — the comparison is now between minutes inside one session. The clock effect kills "the short-gamma reading sits late in the day, where volatility ramps anyway". Everything survives, and the volume and measured books barely move.
Row three is the one that matters. On a convention book, "short gamma" means spot has traded below the flip — and the flip normally sits about 75 points under spot. So the dummy partly encodes the market has fallen today, and falling markets are more volatile for a reason that has nothing to do with anyone's hedge: the leverage effect, known since Black in 1976. Day fixed effects cannot remove it, because inside a session spot goes below the flip precisely after a decline. Adding the session's return so far and the last 30 minutes' return does remove it — and the two public conventions collapse, from +0.042 to +0.014 and from +0.039 to +0.009, neither clearing two standard errors any more.
The measured book does not move: +0.053 to +0.050, and its holdout coefficient is the largest number in the table. Whatever its sign is tracking, it is not the market having gone down.
What that is worth, in size
The coefficient is on log volatility, so +0.050 is about 5% more realised volatility over the next half hour. Adding the sign to a regression that already knows the trailing volatility raises R² by 0.001 to 0.007 on a base of 0.68. Both facts belong in the same sentence: the effect is real and out-of-sample, and it is a small conditioning variable rather than something to trade.
What it does not say
It does not say the measured book is right and the conventions are wrong. It says the conventions' apparent power over forward volatility is mostly the market's own direction, and the measured book's is not. Two constructions can both be wrong about dealer positioning while one of them still correlates with something.
The measured book's sign is a coin flip per print. Scored against Cboe's own participant-tagged trades on a single session, the tape-signing rule classifies the initiator almost perfectly and the customer barely better than chance. That number is about one print. This page is about a book aggregated over a session, and the two are not the same claim — but a reader who takes this result as evidence that per-trade signing is accurate has read more into it than is here.
Volatility is not direction. Nothing on this page says which way price goes, and the site's direction tests have died four times. One horizon, one window — 2022 through 2026 — minute closes, and a 40-session holdout, which is 13,200 minute-observations but only 40 independent days. Nothing here is investment advice; see the Terms.
Reproduce it
No licensed data. Every finished session's JSON at
https://gex.live/snapshots/YYYY-MM-DD.json carries minutes,
spot, ngv_conv (the open-interest book's net gamma at spot) and
ngv_meas (the measured book's) as aligned 390-element arrays; the volume
book's twin is sec.ngv_volcp in the per-second block. The dates are at
/sessions. One session, the whole construction:
import json, urllib.request, numpy as np, pandas as pd d = json.load(urllib.request.urlopen( "https://gex.live/snapshots/2026-08-21.json")) # ~7 MB, fetch sequentially s = np.array(d["spot"], float) g = np.array(d["ngv_conv"], float) # or d["ngv_meas"] r = np.diff(np.log(s), prepend=np.nan) H = 30 trail = pd.Series(r).rolling(30, min_periods=10).std().values * s # points per minute fwd = pd.Series(r).rolling(H).std().shift(-H).values * s # the NEXT H minutes ret_d = np.log(s / s[0]) # the session's return so far ret_30 = np.r_[np.full(30, np.nan), np.log(s[30:] / s[:-30])] # per minute: log(fwd) ~ log(trail) + ret_d + ret_30 + 1[g < 0] # pooled over every session, demeaned by day and by minute-of-day, standard errors # clustered on the session. The coefficient on the dummy is the table above.
The three-book comparison needs all of them read at the same minute, which is the point — the disagreement between the books is not noise around one number, it is three different answers to "is the dealer short here". Session pages at /sessions state each day's levels in prose and the MCP server returns the same summaries.
Part of gex.live research. Measured on the free session archive; every session is free to replay.