Options flow is easy to overread. A contract can show high volume, large premium, volume above open interest, and a dramatic price move without proving informed directional demand. The job of an options-flow workflow is to surface contracts for review, then reject weak rows with clear evidence.
Use this page with Unusual Options Activity, Unusual Options Activity Scanner Model, Options Volume and Open Interest, Options Chain API, Historical Options Quotes API, and Options Trades API.
The main false positives
| False positive | Why it looks interesting | Why it may be weak |
|---|---|---|
| Cheap far-OTM weekly | Large volume and high ticket count | Small premium and poor probability |
| Wide-spread contract | Large last price or dramatic move | Bid/ask market is expensive or stale |
| Routine ETF activity | High volume in SPY, QQQ, IWM, or TLT | Baseline liquidity is already high |
| Earnings-week crowding | Many contracts light up near the event | Activity can be routine event hedging |
| Roll or spread leg | Large prints in one contract | Single-leg view misses the structure |
| Closing activity | Volume above OI appears meaningful | Flow may reduce exposure, not create it |
| Stale last trade | Last price implies activity | No fresh quote supports the row |
The Options Chain Scanner Architecture and Options Data Provider Evaluation docs explain how to keep scanner outputs tied to endpoint evidence.
Direction is hard
A chain snapshot can show calls versus puts. It can show last trade, latest quote, volume, OI, IV, Greeks, and underlying price. It cannot reliably tell whether a trade was buyer-initiated or seller-initiated without deeper trade classification, quote timing, and sometimes multi-leg reconstruction.
Avoid claims such as:
- "big call buying" when the scanner only sees call volume
- "bearish put sweep" when the scanner has no order-routing or aggressor-side evidence
- "new position" when volume is above OI but OI has not updated
- "smart money" when the flow may be hedge, roll, or close
Safer labels are:
- high call volume
- high put volume
- large estimated premium
- volume above prior open interest
- tight quote context
- short-dated activity
- requires trade/quote review
These labels keep the workflow honest and easier to support.
Quote filters
Quote quality is the first rejection gate. A high-volume contract with a wide or stale quote may be interesting for observation, but it is weak as a trade candidate or backtest candidate.
Use these filters:
| Filter | Purpose |
|---|---|
| Minimum bid | Avoids zero-bid exits and weak fill assumptions |
| Maximum spread percent | Rejects expensive-to-cross contracts |
| Quote age limit | Avoids stale bid/ask context |
| Midpoint availability | Supports premium and slippage estimates |
| Bid/ask consistency | Prevents invalid or crossed quote rows |
The Quotes docs, Why Option Quotes Matter More Than Last Price, Options Slippage Modeling, and Bid/Ask Spread Backtesting pages cover this layer in more depth.
Trade filters
Trades are useful for validating activity, but prints still need context. A print can be part of a spread, a roll, a hedge, a close, or routine market-making activity.
When a scanner row is important, inspect:
- trade timestamps
- print prices
- print size concentration
- prints versus nearby bid/ask
- activity before and after the alert
- whether the contract had fresh quotes
- whether related strikes and expirations also printed
Use Trades, Quote vs Trade Timeline, and Historical Options Replay Runbook for this follow-up.
Event context
Unusual activity often clusters around events:
- earnings
- FDA decisions
- index rebalance
- macro releases
- merger headlines
- product launches
- volatility shocks
- monthly or weekly OpEx
Event context does not make a row invalid. It changes the interpretation. A high-volume line during earnings week may be normal relative to the event. A quieter line outside an obvious event window may deserve more attention. Store the event label beside the scanner artifact.
For event-driven review, continue with:
- Historical Options Replay for Event Studies
- NVDA Earnings Options Replay
- OPEX Week Options Data
- Options Expiration Data Workflow
Reject reasons
False positives become manageable when they are logged as rejects instead of hidden.
Common reject reasons:
wide_spreadstale_quotezero_bidtiny_premiumroutine_liquid_contractevent_crowdingfar_otm_lottery_ticketmissing_quotemissing_trade_contextambiguous_roll_or_spreadplan_quote_unavailable
Rejects belong in scanner exports, backtest artifacts, paper-trading logs, and customer-facing support notes. The Backtesting Data Quality Checklist, Backtesting Execution Realism, and Paper Trading Bot Data Stack explain the same discipline for research systems.
Review workflow
Use this sequence before escalating a scanner row:
- Check DTE, moneyness, IV, and delta.
- Check volume, open interest, volume/OI ratio, and premium.
- Check bid, ask, midpoint, spread percent, and quote age.
- Pull trades around the alert timestamp.
- Compare prints with nearby quotes.
- Look for related activity across nearby strikes and expirations.
- Add event context.
- Assign a label: monitor, reject, research, alert, or paper-candidate.
That is the difference between a scanner and a headline generator.
Related pages
- Unusual Options Activity Scanner
- Options Volume and Open Interest
- Build an Options Chain Scanner That Is Quote-Aware
- Options Liquidity Filters
- Options Data API
False-positive review notes
Unusual options activity is noisy. Cheap far-OTM contracts, rolls, spreads, closing trades, stale prints, earnings hedges, and wide quotes can all create impressive volume without a clean directional signal. A scanner needs to preserve the contract, score inputs, quote state, trade conditions, volume/OI pressure, premium estimate, DTE bucket, moneyness, and reject reason.
Pair this page with Options Volume and Open Interest, Option Quote and Trade Conditions, Quotes, and Unusual Options Activity Scanner Model. The best scanner is often the one that says no clearly before it says yes loudly.