# Options Volume and Open Interest

Options volume and open interest are related, but they are not the same signal. Volume counts activity during a session. Open interest is the number of open contracts after prior clearing and assignment effects. A scanner that treats them as interchangeable will overstate what it knows.

Use this guide with the [Unusual Options Activity Scanner](/unusual-options-activity), [Unusual Options Activity Scanner Model](/docs/unusual-options-activity-scanner-model), [Option Chain docs](/docs/option-chain), [Options Chain API](/options-chain-api), [Options Open Interest API](/options-open-interest-api), and [Options Trades docs](/docs/trades).

## Definitions

| Term | Meaning | Common mistake |
| --- | --- | --- |
| Contract volume | Same-day printed activity for one option contract | Calling every print new positioning |
| Open interest | Existing open contracts after prior clearing | Treating OI as intraday live positioning |
| Volume/OI ratio | Same-day volume divided by existing open interest | Reading it as guaranteed opening activity |
| Premium | Option price times volume times contract multiplier | Assuming large premium reveals buyer intent |
| Notional premium | Estimated capital exposure in a contract row | Ignoring bid/ask and spread quality |
| OI update lag | Open interest normally updates after the close | Expecting intraday OI to reflect every print |

The [Options Chain Scanner Architecture](/docs/options-chain-scanner-architecture) doc explains how these fields fit into broader chain-ranking logic.

## Why volume alone is weak

Volume is a reasonable first filter because inactive contracts are rarely worth a closer look. But raw volume can be misleading:

- cheap far-OTM contracts can trade many tickets with little capital
- liquid ETF contracts can show high volume every day
- earnings weeks can inflate activity across many strikes
- rolls and spreads can create large prints without simple directional intent
- a row can have volume but no tight current quote

For a scanner, volume is a prompt. It says "look here." It does not say "this is informed buying."

## Why open interest matters

Open interest gives a baseline. A contract with 20,000 volume and 200,000 open interest may be busy but ordinary. A contract with 2,000 volume and 50 open interest may be more interesting because the activity is large relative to the prior open position base.

That does not prove new exposure. Open interest is not a same-second field. It can reflect opening, closing, assignment, exercise, clearing, and end-of-day update mechanics. A careful scanner labels volume/OI pressure as an attention signal, not as a fact about intent.

Use [Options Flow False Positives](/docs/options-flow-false-positives) when a high volume/OI ratio needs caveats.

## Volume/OI pressure

Volume/OI pressure normalizes activity across contracts. It helps compare a busy SPY weekly with a smaller single-stock contract, but it should be paired with DTE, moneyness, premium, and quote quality.

| Volume/OI pattern | Possible interpretation | Follow-up check |
| --- | --- | --- |
| High volume, high OI | Active contract with existing crowding | Check premium, spread, and trade concentration |
| High volume, low OI | Fresh-looking activity or thin contract | Check bid/ask, price, and whether OI updates next day |
| Low volume, high OI | Dormant crowded strike | Check whether it is a legacy position or hedge |
| Low volume, low OI | Thin contract | Usually reject unless the event context is strong |

The [Options Chain API](/options-chain-api) and [Option Chain docs](/docs/option-chain) are the first place to inspect these fields together.

## Premium context

Premium gives volume an economic scale. A contract with 500 volume at $12.00 represents a very different row from 20,000 contracts at $0.02.

Estimate:

```text
estimated_premium = contract_volume * option_price * 100
```

Use midpoint when available, but keep the quote context visible. A midpoint estimate is cleaner when the bid/ask spread is tight. If the spread is wide, the premium estimate can overstate how cleanly the contract could be traded.

Pair this with [Historical Options Quotes API](/historical-options-quotes-api), [Quotes](/docs/quotes), and [Options Slippage Modeling](/options-slippage-modeling) when a scanner result turns into research.

## DTE and moneyness

The same volume/OI ratio means different things at different expirations and strikes.

- 0DTE and 1DTE contracts can show large activity from event hedging, gamma management, or lottery-ticket speculation.
- 7DTE and 21DTE contracts often mix tactical flow and short-term positioning.
- 45DTE and longer contracts may reflect structures, hedges, or volatility positioning.
- Far-OTM contracts can look exciting while having weak probability and poor liquidity.
- ATM contracts may have stronger price sensitivity but more routine activity.

Keep DTE, strike, underlying price, delta, IV, and moneyness visible. The [Options Expiration Data Workflow](/options-expiration-data-workflow), [Options Greeks API](/options-greeks-api), and [Options Implied Volatility API](/options-implied-volatility-api) pages support that context.

## Trade tape follow-up

After a scanner flags a contract, use trades to inspect activity and quotes to inspect market quality. Trades answer what printed. Quotes answer what bid/ask market was available. They should stay separate.

Follow-up sequence:

1. Select the OCC ticker from the chain row.
2. Pull [trades](/docs/trades) for the alert window.
3. Pull [quotes](/docs/quotes) for the same window.
4. Compare prints against bid, ask, midpoint, and spread percent.
5. Record whether the row remains inspectable after quote-quality filters.

This keeps unusual activity from becoming a screenshot-only signal.

## Terms to store in dashboards

For production dashboards and scanners, store:

- `volume`
- `open_interest`
- `volume_oi_ratio`
- `estimated_premium`
- `expiration_date`
- `dte`
- `strike`
- `contract_type`
- `delta`
- `implied_volatility`
- `bid`
- `ask`
- `midpoint`
- `spread_percent`
- `quote_age`
- `last_trade_price`
- `last_trade_timestamp`
- `scanner_score`
- `reject_reason`

Those fields create a defensible bridge between [Unusual Options Activity](/unusual-options-activity), [Options Liquidity Scanner](/options-liquidity-scanner), [Quote vs Trade Timeline](/quote-vs-trade-timeline-options), and [Options Backtesting API](/options-backtesting-api).

## Related pages

- [Unusual Options Activity Scanner Model](/docs/unusual-options-activity-scanner-model)
- [Options Flow False Positives](/docs/options-flow-false-positives)
- [Build an Options Chain Scanner That Is Quote-Aware](/blog/build-options-chain-scanner-quote-aware)
- [Options Data API](/options-data-api)
- [Options Data Provider Evaluation](/docs/options-data-provider-evaluation)
