Free, no account, no credit card. Daily gamma levels are also published as open data.

Market tide: cumulative options premium

Net call premium and net put premium, added up from the session open. The curves are built from repeated readings of a delayed options chain, so each contract contributes the premium behind its volume for the day. These are not prints and this is not a tape.

Computed from a delayed options chain, not from a signed tape. Side is inferred from where the last trade sat relative to the quote, and contracts that printed mid-market stay unknown and are left out of the signed totals. Machine-readable version.

Session 2026-09-10, last completed session

$0$100.0M$200.0M07:0008:00CallsPuts
Cumulative net call premiumCumulative net put premium
Net call premium
$106.4M
Bought minus sold, calls only
Net put premium
-$28.3M
Bought minus sold, puts only
Net tide
$134.7M
Net calls minus net puts
Unknown side
$86.3M
12.3% of all premium observed. Mid-market and quote-less, excluded from the signed totals.

488 distinct contracts have entered the curve so far, captured every 15 seconds, last updated 12:59 PT.

The same numbers as a table

Roughly one row per half hour, so nothing on the chart is readable only by colour.

TimeNet callsNet putsNet tideContracts
06:30 PT$27.7M$0$27.7M20
07:00 PT$24.4M-$26.1M$50.5M195
07:31 PT$116.1M$465K$115.6M270
08:02 PT$16.2M-$26.2M$42.3M322
08:33 PT-$119.6M$5.3M-$124.9M353
09:10 PT$9.6M-$35.6M$45.2M371
09:40 PT$93.8M-$47.1M$140.9M392
10:10 PT$91.9M-$30.3M$122.1M407
10:42 PT-$25.3M-$4.4M-$20.9M420
11:12 PT-$5.0M-$14.0M$9.0M435
11:42 PT$73.0M-$13.6M$86.6M449
12:13 PT$24.3M$9.7M$14.6M473
12:44 PT-$38.9M-$12.6M-$26.3M486
12:59 PT$106.4M-$28.3M$134.7M488

The symbols behind the curve

This is not the whole market. The scanner rotates through 20 symbols, 2 of them every 8 seconds, so any one name is re-read about every 80 seconds. A contract only enters the curve when its volume is at least 1.5 times its open interest, which is the unusual activity filter the scanner already applies.

AAPL, MSFT, GOOGL, AMZN, NVDA, META, TSLA, AMD, NFLX, SPY, QQQ, IWM, COIN, PLTR, SOFI, BAC, JPM, GS, XOM, V

How the accounting works

The curve covers 20 symbols, not the whole market. The scanner reads 2 of them every 8 seconds, so any one name is re-read about every 80 seconds and whatever happens between two readings of a name is never seen on its own.

A contract enters the curve only when its volume is at least 10, its open interest is at least 1, and its volume is at least 1.5 times its open interest. Each reading of a symbol keeps only the 20 highest-scoring contracts on that symbol, so ordinary strikes never reach the curve at all.

Premium on contracts whose side could not be inferred is totalled on its own and shown beside the curves. It is never added into them, so the signed totals cover less than all of the premium observed.

Each contract carries one estimate and one inferred side, and a reading that shows more volume replaces both. When a contract counted as bought is later counted as sold, its whole estimate moves across, so the signed curve shifts by twice that estimate. A large jump can be a reclassification of premium already on the chart, not that much new buying or selling.

Copy for chat

SquawkFlow market tide, session 2026-09-10 (last completed)
Cumulative net call premium: $106.4M
Cumulative net put premium: -$28.3M
Net tide (calls minus puts): $134.7M
Unknown-side premium excluded from the signed totals: $86.3M, 12.3% of all premium observed
Contracts tracked: 488. Peak on the chart scale: $200.0M.
Universe: the 20 symbols the scanner rotates through, 2 every 8 seconds.
A contract enters the curve only when its volume is at least 10, its open interest is at least 1, and its volume is at least 1.5 times its open interest. Each reading of a symbol keeps only the 20 highest-scoring contracts on that symbol, so ordinary strikes never reach the curve at all.
Each contract carries one estimate and one inferred side, and a reading that shows more volume replaces both. When a contract counted as bought is later counted as sold, its whole estimate moves across, so the signed curve shifts by twice that estimate. A large jump can be a reclassification of premium already on the chart, not that much new buying or selling.
Computed from a delayed options chain, not from a signed tape. Side is inferred from where the last trade sat relative to the quote, and contracts that printed mid-market stay unknown and are left out of the signed totals.
Source: https://squawkflow.com/market-tide

How to read this

Is this the same as Unusual Whales Market Tide?
It is the same idea, built from different inputs. Both plot cumulative net call and net put premium through the session. Theirs is computed on trade prints. Ours is computed from repeated snapshots of a delayed options chain, so a contract contributes its day-cumulative volume rather than one trade at a time, and the symbol list is 20 names rather than the whole market.
Is this real time?
No. The upstream is a delayed options chain, and the scanner reads two symbols every eight seconds, so a given symbol is refreshed about every 80 seconds. Each point on the curve carries the time it was captured.
How is the buy side and the sell side decided?
It is inferred, not reported. A contract whose last trade sat at or near the ask is counted as bought and one at or near the bid as sold. A contract that printed mid-market, or that has no usable quote, stays unknown. Unknown premium is totalled separately and left out of the signed curves rather than assigned by guess.
Why do the curves only ever rise?
They are cumulative sums of premium that has already traded, so they carry every earlier reading forward. A single large contract early in the session lifts the level for the rest of the day. Read the slope, which is what is happening now, rather than the level, which is what has happened since the open.
Why did the curve jump by more than the activity behind it?
Because the curve holds one estimate per contract and replaces it whole on every new reading. That estimate carries a single inferred side, so a contract counted as bought and later counted as sold comes off the buy side and goes on the sell side in one step, and the signed curve moves by twice the estimate. A contract seen at 100 lots near 1.00 counts as about 10,000 dollars of buying; the next reading at 101 lots inferred as sold counts as about 10,100 dollars of selling instead, a swing of roughly 20,100 dollars on one extra contract of volume. Premium is also re-priced whenever volume rises: the whole day is valued at the current quote midpoint, so a quote that has moved since the last reading revalues everything already counted and not only the new lots. Read a sudden jump as a possible reclassification of premium already on the chart rather than as that much new buying or selling.
What resets it?
The session open, 06:30 America/Los_Angeles. Each session gets its own curve, and the previous session stays readable here after the close until the next one starts.

Nothing on this page is advice or a recommendation, and none of it is a forecast. See the risk disclosure.

Related