What Activity answers
Open Activity and choose a symbol. Activity answers three questions about that symbol's options:
- How much traded today compared with a normal session?
- Which expirations and strikes carried the activity?
- Which individual contracts stood out?
Volume is the volume for today's trading session across all expirations within the selected scope. Volume counts contracts traded. It does not show whether they were bought or sold, opened or closed.
Set up the page
| Control | Choices | What it changes |
|---|---|---|
| Symbol | Any supported symbol | The underlying shown |
| View | Volume, Open Interest, Est. Premium, Call − Put Premium | What the expiry and strike panels measure |
| Data | Snapshot time | Names the session and time the numbers come from |
The symbol is shared with Flow, so switching between the two keeps the same ticker.
Session comparison
While same-time history is incomplete, Session vs recent sessions restores the comparison against the five prior saved daily observations. The header says Daily baseline. Average, Change and Range · 6 sessions use those five observations plus the current session. Saved totals may be partial and are not matched by time of day, so an early intraday total can look low against a later daily observation.
The page automatically changes to Same time vs normal once the latest captured half-hour checkpoint has matching data and comparison details for exactly the five preceding trading sessions. This uses the page's existing refresh cycle; no extra polling loop is added. Readiness belongs to the symbol, session and checkpoint, so a later missing checkpoint can temporarily restore the labeled daily baseline.
Same-time values are cumulative through the checkpoint, not activity during the last half hour. The header identifies the session, nominal checkpoint time in ET and actual capture time. A newer snapshot elsewhere on the page can therefore differ. Missing sessions are never replaced with zeros or older dates.
Both modes compare total/call/put volume and estimated call/put/net premium. The put/call ratio average is the mean of the five individual ratios, available only when all five call-volume denominators are positive. Range dots use the five prior values and current value. 0DTE share remains unavailable in same-time mode; daily mode can show it when supplied by the saved observations.
When neither source has five valid prior observations, current values remain visible where available and unavailable averages stay blank. The footer distinguishes incomplete history, disabled collection and a failed read. The strike panel's Expirations control does not change this all-expirations comparison.
Volume by expiry
All expirations, grouped by calendar days from the session date:
| Bucket | Contents |
|---|---|
| 0DTE | Expirations on the session date. Tagged Expired after the close |
| 1–7 days | The next week |
| 8–30 days | About a month |
| 31–90 days | About a quarter |
| 91+ days | Longer-dated |
Share is each row's part of the session total. Switch to Each expiry to list every expiration on its own.
By strike
Calls go up and puts go down, on a true price axis with spot marked. In the Volume view, outlines show open interest at each strike.
- Expirations: All, 0DTE, Weekly (through the nearest Friday) or Monthly (through the nearest third Friday). Weekly and Monthly both include 0DTE.
- Range: ±20, ±40 or ±60 strikes around spot, or All.
The footer says how many strikes are shown and what share of the group's volume they hold, so you know what the window leaves out.
Top contracts
Up to ten contracts, with expiry, side, volume, open interest, Vol ÷ OI, estimated premium and distance from spot. The control above the table says which kind of list you are seeing:
- Rank by: the server ranks the symbol's contracts and returns the top ten for the ranking you choose: Est. premium, Volume or Vol ÷ OI. Each choice is its own list, so switching can bring in different contracts. Vol ÷ OI only includes contracts with at least 500 contracts traded this session and open interest above zero.
- Sort shown: shown when the server ranking is not available for the snapshot. The same three choices only re-order the ten rows returned; they do not rank the whole option chain.
If the premium ranking cannot be trusted for the current session, the table says Estimated-premium ranking is unavailable until the next complete session instead of showing a partial list. Volume and Vol ÷ OI still work.
The footer counts how many of the rows traded more contracts than their open interest and explains how the premium was estimated.
Hide expired starts on. It hides dates before today's Eastern calendar date and keeps today's expirations. Turn it off to inspect expired rows from the returned snapshot. A missing expiration is labeled Expiration unavailable. Filtering can leave fewer than ten rows; it does not refresh the chain. Check the snapshot time and Eastern comparison date in the footer.
Click a row to mark its strike on the strike chart. A Vol ÷ OI above 1 means more contracts traded today than were open at the start of the day.
Daily history
One observation per session, with sparklines for total volume, put/call ratio, estimated premium, call − put premium and 0DTE share. The dashed line is the five-session average. The daily table also shows when each day was saved.
Read estimates carefully
- Estimated premium is session volume × the latest option price × 100. With the server ranking, contract premium can instead add up each newly reported volume at the option price observed at that time; the Top contracts footer says which method applies. Either way it is an estimate, not actual trade prints, and it differs from the premium actually paid.
- Saved days may be incomplete. Check the saved time in the daily table.
- More call volume does not prove calls were bought.
For how exposure and levels moved through the day, use Flow.