How do you read a GEX heatmap? SPY gamma exposure by strike

A GEX heatmap shows estimated dealer gamma by strike. Read the largest positive and negative strikes, where the sign changes, the total and the regime.

A GEX heatmap shows estimated dealer gamma exposure by strike: strikes where dealers are assumed long gamma, whose hedging leans against moves, show as positive, and strikes where dealers are assumed short gamma, whose hedging follows moves, show as negative. You read it by finding the largest positive and negative strikes, where the sign changes, and then the total and the regime badge. This post walks through one real SPY map, strike by strike, as of 3:45 pm ET on 2026-10-16.

Our GEX heatmap page shows this map by strike for SPY and other tickers, and the SPY gamma exposure page describes SPY's own map. Some people search for it as a gamma heat map; it is the same chart.

What the map is built from

Gamma is how much an option's delta is expected to change for a one-point move in the underlying, and it is higher for at-the-money options and closer to expiration.1 Open interest is the number of option contracts still open, meaning not yet closed out, exercised or expired.2

CaymanBot multiplies each contract's gamma by its open interest, by 100 shares and by the price squared, counts calls as positive and puts as negative, and sums the result per strike. The stored figure is dollar gamma per a 100% move, and the app divides it by 100 to show the per 1% move figure most tools quote.3 Our full guide to gamma exposure covers the formula and its assumptions in detail.

The key assumption is that dealers are long the calls and short the puts that customers trade, and that they hedge exactly to delta.4 Open interest does not show who holds a contract, so the sign at any strike is a model convention. A strike where customers bought calls or sold puts would carry the opposite sign in reality.

The SPY map as of 2026-10-16

The snapshot comes from CaymanBot's public delayed dataset, taken at 3:45 pm ET on Friday 2026-10-16.5 SPY was at $762.03. The map lists 153 strikes, from 686 to 838.

ItemValue
SPY price$762.03
Total GEXabout -$20.31B per 1% move
Regime badgeNegative
Flip levelnone found on the map
Largest negative strike760, about -$2.94B per 1% move
Largest positive strike800, about $575M per 1% move
Strikes with the most open interest750, 760 and 800
Put open interest ÷ call open interest5,381,807 ÷ 3,220,793 = 1.67

The strikes nearest the price, in millions of dollars per 1% move:

StrikeCall GEXPut GEXNet GEXCall OIPut OI
750241-1,393-1,15251,125258,140
755133-885-75223,505114,314
760820-3,764-2,94445,975205,779
762472-2,190-1,7186,56432,275
765603-2,992-2,38939,502135,897
770786-1,101-315103,061100,353
775573-38518896,59747,241
800592-17575219,5723,841

Reading it strike by strike

Step 1: convert the units

The file stores dollar gamma per a 100% move, so the total, in dollars, converts like this:

per 1% move=per 100% move100=−2,030,654,088,460.19100=−20,306,540,884.60\text{per 1\% move} = \frac{\text{per 100\% move}}{100} = \frac{-2{,}030{,}654{,}088{,}460.19}{100} = -20{,}306{,}540{,}884.60

That is about -$20.31B per 1% move. Always check which unit a GEX number uses before you compare two tools, because the two scales differ by a factor of 100.

Step 2: find the largest negative strike

Net GEX at a strike is the call figure plus the put figure. At 760, in millions of dollars per 1% move:

net=call GEX+put GEX=820+(−3,764)=−2,944\text{net} = \text{call GEX} + \text{put GEX} = 820 + (-3{,}764) = -2{,}944

That is about -$2.94B per 1% move, the largest negative strike on the map. On its own it is a sizeable share of the total:

share=760 nettotal=2.9420.31=14.5%\text{share} = \frac{\text{760 net}}{\text{total}} = \frac{2.94}{20.31} = 14.5\%

Where it sat relative to the price:

gap=1−strikeprice=1−760762.03=0.27%\text{gap} = 1 - \frac{\text{strike}}{\text{price}} = 1 - \frac{760}{762.03} = 0.27\%

The put side drives it: 205,779 puts were open at 760 against 45,975 calls. The strike nearest the price, 762, was negative too:

net=472+(−2,190)=−1,718\text{net} = 472 + (-2{,}190) = -1{,}718

Step 3: find the largest positive strike

At 800, in millions of dollars per 1% move:

net=call GEX+put GEX=592+(−17)=575\text{net} = \text{call GEX} + \text{put GEX} = 592 + (-17) = 575

That is about $575M per 1% move, with 219,572 calls open and 3,841 puts. It sat above the price by:

gap=strikeprice−1=800762.03−1=5.0%\text{gap} = \frac{\text{strike}}{\text{price}} - 1 = \frac{800}{762.03} - 1 = 5.0\%

Note the size difference: the largest negative strike was about five times the largest positive one.

Step 4: see where the sign changes

Every listed strike from 750 through 765 is negative. 766 is the first strike above the price with a positive net, about $95M per 1% move, but 767 through 774 turn negative again. From 775 upward the nets are positive, starting with about $188M per 1% move at 775:

net=573+(−385)=188\text{net} = 573 + (-385) = 188

The larger positive strikes above the price were 780 (about $406M), 785 (about $371M), 790 (about $331M), 800 (about $575M) and 810 (about $409M), all per 1% move. So the map was a deep band of negative strikes around the price with a thinner band of positive strikes above it.

Step 5: read the total, the flip and the regime

The flip level is where the running total of net GEX, added from the lowest strike upward, crosses zero. On this map the running total starts negative at 686 and stays below zero all the way to 838, so it never crosses and there is no flip level. The regime badge normally compares the price with the flip; with no flip, it falls back to the sign of the total, which is why it read Negative.

One caution on the total: the snapshot was taken at 3:45 pm ET on the October monthly expiration day, so the map may still include gamma from contracts that expired that afternoon. Our post on what happens to gamma exposure after monthly expiration covers what that removes. Open interest is also a once-a-day figure, so intraday trading does not change the open interest behind the map.

Why options traders look at it

In the usual reading, a negative total means dealers are assumed short gamma, so their hedging may follow a move and add to it, in either direction. A positive total means hedging may lean against moves. Neither reading says anything about which way the price will go, and the whole picture rests on the dealer-side assumption above. Traders use the map as context for how large moves might be, and they compare the shape of the map from one session to the next rather than treating any single strike as meaningful on its own.

The SPY figures above describe one snapshot on one afternoon. They are an estimate built from a model and a set of assumptions about who holds each contract.

How to practice this

Open the GEX view for a ticker you follow and run the same five steps: units, largest negative strike, largest positive strike, sign changes, then the total and regime. CaymanBot's $100K paper account lets you place practice trades on the same tickers without real money. In the first two Learning Mode stages, each trade on the feed comes with a plain-English sentence you can check against the strike, expiry and premium. New accounts start with a 14-day Premium trial.

Educational only, not investment advice.

Notes

  1. Options Industry Council, "Gamma." https://www.optionseducation.org/advancedconcepts/gamma ↩︎

  2. Options Industry Council, "Open Interest: Why It Matters." https://www.optionseducation.org/news/open-interest-why-it-matters ↩︎

  3. CaymanBot GEX method: per contract gamma × open interest × 100 × price², calls positive and puts negative, summed per strike; stored per 100% move and divided by 100 in our app and public pages to show the per 1% move figure. The flip is where the running total from the lowest strike crosses zero. https://caymanbot.com/blog/what-is-gamma-exposure-gex-and-how-to-read-it ↩︎

  4. SqueezeMetrics, "Gamma Exposure (GEX)" white paper, 2017. https://squeezemetrics.com/download/white_paper.pdf ↩︎

  5. CaymanBot delayed options dataset (OPRA data delayed at least two days), SPY snapshot 2026-10-16 3:45 pm ET (19:45:02 UTC); https://caymanbot.com/data/options-symbols/spy-gex.json (read 2026-10-21). ↩︎

  6. Options data from OPRA, delayed at least 60 minutes.

Frequently asked questions

What does a GEX heatmap show?

A GEX heatmap shows estimated dealer gamma exposure by strike, in dollars per 1% move. Positive strikes are where dealers are assumed long gamma, and negative strikes are where they are assumed short gamma.

How do you read a GEX heatmap?

Find the largest positive and the largest negative strikes, see where the sign changes from one strike to the next, then read the total and the regime badge. Those four things describe the whole map.

Why does a GEX map sometimes show no flip level?

The flip level is where the running total of net GEX, added from the lowest strike upward, crosses zero. If that running total stays on one side of zero across every listed strike, there is no crossing, and CaymanBot's regime badge falls back to the sign of the total.

What does a negative GEX total mean?

In the usual reading, a negative total means dealers are assumed short gamma overall, so their hedging may follow a move and add to it in either direction. It says nothing about which direction the price will go.

Is the sign at each strike a fact?

No. Open interest does not show who holds a contract, so GEX assumes dealers are long the calls and short the puts that customers trade. The sign at any strike is a model convention built on that assumption.

Put the research in one place

Start free. Free account: options data delayed 16 minutes. No account: 60 minutes. Premium adds alerts and Strategy Lab, and real-time options data for users who complete the OPRA non-professional attestation.

Start free