HomeGuides › Options Flow Guide

Options Flow Guide

How to read options flow, line by line.

A flow feed looks like a firehose of tickers and dollar amounts, and the biggest number on the screen is rarely the most informative field on the row. This guide walks through what each field on a flow row actually measures, which parts are observed facts and which are inferences, and how to read one row end to end without concluding more than the data supports.

Published 2026-08-28 by ConvexRadar · Research software, not financial advice.

Start with the contract, not the ticker

A flow row is a single option contract, not a company. Read it left to right: the underlying, call or put, the strike, the expiration, the contract's price, the volume traded, the open interest sitting behind it, and an estimated premium figure. Everything else on the row is context wrapped around those fields.

Those fields answer different questions, and they answer them independently. The strike sets the reference level the contract is priced against. The expiration sets the deadline. Call or put describes the payoff shape, not who is holding it — every contract traded has someone long it and someone short it, and the row does not tell you which side initiated. The contract price tells you what one share of exposure cost at the time it traded.

Two rows on the same ticker in the same session can differ on every one of those dimensions — one near-dated upside contract, one downside contract three months out. A ticker-level "unusual activity" alert collapses both into a single line and discards the information that separates them. That is why flow reading is worth doing at the contract level rather than the symbol level.

  • Underlying and type — which stock, and call or put.
  • Strike — the price level the contract is struck at, read relative to where the stock trades now.
  • Expiration and DTE — the deadline, and how many days remain.
  • Contract price — the per-share premium; multiply by 100 for one standard contract.
  • Volume — contracts traded this session; resets to zero each morning.
  • Open interest — contracts still outstanding, published once per day after overnight clearing, reflecting the prior session's close.
  • Estimated premium — volume times contract price times 100, an estimate of dollars traded rather than a settled figure.

Volume versus open interest, and why the ratio matters more

Raw volume is hard to use on its own because it is not scale-adjusted. Twenty thousand contracts can be an ordinary afternoon in a mega-cap ETF and a notable event in a mid-cap industrial. A screen sorted on absolute volume tends to surface the same large, liquid names day after day.

The ratio helps with that. Volume divided by open interest — V/OI — compares the session's activity against the position base that already existed in that exact contract. A contract with 900 open interest trading 6,400 times has a V/OI of about 7.1: today's trading is roughly seven times the standing position. The same 6,400 contracts against 300,000 open interest is a rounding error.

One caveat is built into the two numbers. Volume is live and intraday; open interest is settled and reflects the prior session's close. So an intraday V/OI figure is always comparing today's flow against yesterday's book. That does not invalidate the ratio, but it does mean the denominator is stale by construction, and a contract that saw heavy activity yesterday will show a larger denominator today.

A second caveat: the ratio breaks when the denominator is tiny. A contract with 3 open interest trading 300 times shows a V/OI of 100 and means very little. Read V/OI alongside an absolute liquidity floor — a minimum volume, a minimum open interest, and a bid-ask spread you would actually accept — not instead of one.

And a V/OI above 1 does not establish that new positions were opened. It establishes that the session's volume exceeded the contract's standing open interest. Whether that volume opened or closed positions is a separate question, covered further down.

  • Below 1x — the session's volume is smaller than the positions that already exist.
  • 1x to 3x — today's trading is comparable to the standing base; worth noting.
  • Above 5x — the contract is trading well past its position base; worth actually looking at.
  • Extreme ratios on near-zero open interest — noise, not information.

What premium tells you, and what it doesn't

Premium is the dollar figure most feeds lead with, and it is the field most often over-read. On chain-derived tools it is typically volume multiplied by the contract price multiplied by 100 — an estimate that assumes everything traded near that price. It is a reasonable scale measure, not an audited cash figure, and it counts closing trades exactly the same way it counts opening ones.

What premium does tell you is roughly how much capital had to change hands for that activity to happen. Pressure says something occurred; premium says what it cost. The two routinely disagree, and the disagreement is informative.

Consider a deep out-of-the-money weekly with small open interest trading 20,000 contracts at four cents: a dramatic V/OI and roughly eighty thousand dollars of estimated premium. Compare a near-the-money contract three months out trading 800 times at nine dollars: a far quieter ratio, roughly seven hundred and twenty thousand dollars of estimated premium. Neither is better than the other. They are different structures with different risk and different liquidity — the four-cent contract may have a spread that is a large fraction of its own price — and a feed showing only one number will obscure which is which.

What premium does not tell you is direction of intent, conviction, or identity. A large call premium figure is consistent with a directional position, a hedge against a share holding, one leg of a spread, or someone closing out. The dollars are real; the story attached to them is not in the data.

Sweep, block, bought, sold: labels you should hold loosely

Flow commentary runs on four words: sweep, block, bought, sold. A sweep is an order split across multiple exchanges and price levels to fill quickly, commonly read as urgency. A block is a single large negotiated trade, commonly read as planned institutional positioning. Both categories describe real market behaviour — though a block can equally be a hedge, a roll, or one leg of a multi-leg package.

The question is where the label came from. Distinguishing a sweep from a block definitively requires the consolidated options tape with exchange-level execution detail — a licensed, expensive feed. A tool working from public option-chain data does not have that, and any label it prints is derived from chain characteristics such as size, V/OI and premium rather than from observed execution.

The same applies, more sharply, to "bought" versus "sold". Every options trade has a buyer and a seller. Inferring which side was the aggressor normally leans on where the trade printed relative to the bid and ask — a heuristic that degrades badly in wide markets, on multi-leg orders, and on anything routed as a package, where individual legs can print away from their own mid. Chain data alone cannot establish intent.

ConvexRadar labels each row with a print type derived from chain behaviour, and says so in the interface rather than dressing it as tape data. There is no licensed full options tape here and no dark-pool feed, which means the label is a proxy and should be weighted as one. A scanner presenting inferred labels as verified institutional intent is claiming something the public chain cannot support.

IV context: the cost dimension most readers skip

Implied volatility is the movement expectation embedded in the option's price — the number that, put through a pricing model, reproduces what the contract trades for. IV rank is the common way of contextualising it: where current implied volatility sits inside its own range over a lookback window, usually the past year, expressed 0 to 100. It is the field that turns a flow row from "what happened" into "at what price".

This matters because identical activity means different things at different IV levels. Heavy call-side activity when IV is already elevated means the premium paid reflects a move the market has partly priced in — the position needs a larger or faster move simply to break even. The same activity at a low IV reading is a materially cheaper expression of the same structure.

The sharpest version of this is the earnings setup. Implied volatility typically inflates into a scheduled event and drops sharply once the uncertainty resolves. Because IV is an input to the option's extrinsic value, that drop reduces what the contract is worth independently of where the stock went — so a long option can be right about direction and still lose money if the realised move is smaller than what the pre-event premium had priced. If you take one habit from this guide, make it checking the IV reading before reacting to the size.

ConvexRadar carries an IV reading on every scanner row next to V/OI and estimated premium, and flags elevated IV close to a catalyst as a risk on the row rather than burying it.

One print is a question; repeats narrow the explanations

A single large print is the weakest form of this data. It has no denominator in time, no confirmation, and — as covered above — no attributable intent. Treating one row as a reason to act is the most common way flow feeds get misused.

Repeat activity is different in kind, not just degree. Pressure that shows up across several strikes on the same underlying, across consecutive sessions, or across multiple expirations on the same side, is harder to explain as a single hedge or a single closing trade. It is still not proof of anything, and it can still be one large multi-leg structure printing across several contracts at once — but it raises the floor of plausible explanations.

There is also a specific overnight check worth building into your routine. Nothing in the public data states whether a session's volume opened or closed positions — a large buy could be a new position or someone exiting a short, and both look identical in the volume number. But open interest changes by the net of opening and closing activity, so the next day's figure is informative: if it rises substantially, positions were opened on balance; if it falls, they were closed on balance. The change can never exceed the day's volume, and same-session round trips leave no trace in it at all. That answer arrives a day late, which makes it useless intraday and genuinely useful for reviewing what you flagged yesterday.

ConvexRadar's Signals Lab — a Pro-tier area still marked in testing — includes a repeat-flow view that groups tickers where V/OI, premium and score pressure recur across multiple contracts, which is the same idea applied to a whole session's scan rather than by hand.

How catalysts change the reading

The same row means different things depending on what is scheduled inside the contract's life. Positioning ahead of a known earnings date is ordinary, widely practised behaviour — it tells you the calendar exists, not that anyone knows anything. Similar activity in a contract with no scheduled event in its window is a different observation, and worth separating.

Work out first whether the catalyst falls before or after expiration. A contract expiring the week before earnings cannot express an earnings view at all, so activity in it is about something else — which is worth knowing before you build a story around it. This single check invalidates a surprising number of confident flow narratives.

Beyond the earnings calendar, the useful context is whatever changes a company's near-term picture: a fresh regulatory filing, an analyst target revision, a news cycle already in progress. ConvexRadar attaches earnings dates, recent filings, analyst target changes and headlines to each row so this arrives with the contract instead of requiring four more browser tabs.

Order matters here. Catalyst context is for interpreting flow you already found, not for justifying flow you want to believe in. If the narrative arrives before the check, you are curve-fitting.

Reading one row end to end (hypothetical)

The following contract is invented purely to demonstrate the sequence. It is not a real trade, not a recommendation, and has no outcome — the point is the order of the questions, not the answer.

Hypothetical row: ticker XYZ, stock at $47.80. Calls, $52 strike, expiring in 38 days, contract price $1.85. Volume 6,400 against open interest of 900. That gives a V/OI near 7.1 and an estimated premium around $1.18M. IV reading elevated, and earnings scheduled 12 days out.

Start with pressure. V/OI above 7 means the session's activity is roughly seven times the standing position base, and 900 open interest is large enough that the ratio is not a small-denominator artifact. So something changed in this specific contract. That is the whole of what the ratio establishes — not who traded, and not whether positions were opened.

Then the calendar check. Earnings fall 12 days out and the contract has 38 days to run, so the event does sit inside the contract's life. Had expiration landed before the report, the earnings story would already be off the table.

Then price the ask. The strike sits about 8.8% above spot, and break-even at expiration for a long position is $52 plus the $1.85 paid — $53.85, roughly 12.7% above the current price, within 38 days. That is the bar at expiry. Before expiry the contract can gain on a smaller move, because remaining time value and any rise in implied volatility both add to its price — but $53.85 is the number that has to be cleared if it is held to the end.

Then the cost dimension. IV is elevated with earnings 12 days away, which is the setup where premium inflates into the event and deflates after it. If this activity was opening call buying — which the chain cannot confirm — that buyer is paying for a move the market already anticipates, and needs the realised move to exceed what is priced, not merely to occur.

Then the honest caveats. The $1.18M figure is volume times price times 100, so it assumes everything traded near $1.85 and counts any closing trades in the same total. The print label on the row is inferred from chain behaviour, not read off a tape. And nothing here establishes that these were opening trades — tomorrow's open interest is the check. If it climbs toward roughly 7,300, positions were opened on balance; if it barely moves, much of the session's volume was closing.

The correct output of this exercise is not a trade. It is a shortlist entry with a specific question attached: does the chart, the catalyst and the IV picture justify paying elevated premium on a contract that needs a 12.7% move inside 38 days to break even at expiry? Flow narrowed several hundred contracts down to that one question. Answering it is your job, not the scanner's.

The honest limits of flow data

Everything above rests on public option-chain data, and it is worth being blunt about what that cannot do. Chain data does not identify who initiated a trade, does not distinguish opening from closing activity in real time, does not separate a single-leg position from one leg of a spread, and does not reveal intent. Volume rises identically whether a fund opened a directional position, a market maker hedged unrelated exposure, or someone unwound a holding of many months.

Open interest settles overnight, so any intraday V/OI figure compares live volume to the prior session's book. A position opened and closed within the same session never appears in open interest at all. Print typing on any chain-based tool — including this one — is a derived proxy rather than a licensed consolidated tape, and there is no dark-pool options feed in the public data regardless of what marketing copy elsewhere suggests.

This is why options flow belongs near the start of a research process rather than at the end of one. It is a filter that takes several hundred contracts down to a handful worth examining. The chart, the catalyst, the liquidity, the position size and the exit plan sit outside the flow row, and none of them are decided by it.

ConvexRadar is research software, not financial advice, and it does not produce signals, predictions or recommendations. If you want to see this structure applied to live US chains, the options flow scanner ranks contract rows by V/OI, estimated premium, IV context and catalyst timing, with the derived nature of every inferred field labelled where it appears. If the mechanics above were new, the education pages cover strikes, expirations, premium and the Greeks from the ground up.

Frequently asked questions

What does V/OI mean on an options flow feed?

V/OI is the session's contract volume divided by that contract's open interest. It measures today's activity against the position base that already existed, which makes it more comparable across large and small underlyings than raw volume. Below 1x the day's volume is smaller than the standing base; 1x to 3x is comparable to it; above 5x the contract is trading well past it. The ratio is close to meaningless when open interest is near zero, and it never establishes that new positions were opened.

Does a large premium figure mean someone is bullish?

No. Premium measures capital committed, not direction or conviction. A large call premium is equally consistent with a directional position, a hedge against a short share position, one leg of a spread, or a position being closed. The dollar figure is also usually an estimate — volume times contract price times 100 — rather than a settled cash number, and it counts closing trades the same way it counts opening ones.

Are sweep and block labels on flow scanners reliable?

Treat them as inferences unless the tool licenses the consolidated options tape with exchange-level execution detail. ConvexRadar derives print typing from chain characteristics such as volume, open interest, V/OI and premium, and labels it as a proxy in the interface. It has no licensed full options tape and no dark-pool feed. Any tool claiming to show verified institutional intent from public chain data is describing something that data does not contain.

How can I tell whether a print opened or closed a position?

Not in real time — nothing in the public data states it, and a large buy looks identical whether it opened a new position or closed a short. The one imperfect check is the following day's open interest, which moves by the net of opening and closing activity: a substantial rise means positions were opened on balance, a fall means they were closed on balance, and the change can never exceed the day's volume. It arrives a day late, so it is useful for reviewing yesterday's rows rather than acting on today's.

Why does IV matter if the flow itself looks strong?

Because implied volatility determines what the position costs and how much movement it needs to work. Heavy activity into already elevated IV means paying up for a move the market has partly priced in. Around a scheduled catalyst, IV typically inflates beforehand and drops once the uncertainty resolves, and because IV feeds the option's extrinsic value that drop reduces the contract's price on its own — so a long option can be correct on direction and still lose value if the realised move is smaller than what was priced.

Is options flow enough to base a trade on?

No, and treating it that way is the most common mistake. Flow is one research input that narrows a large universe of contracts down to a shortlist worth examining. Price structure, catalyst timing, implied volatility, liquidity and spread, position sizing and an exit plan all sit outside the flow row. ConvexRadar is research software, not financial advice, and none of this is a recommendation.

Read live rows, not examples. The scanner ranks exact contracts by the same fields this guide walks through — V/OI, premium, IV rank — with the chain-derived caveats stated on every row.

Trading options involves risk. ConvexRadar is research software and does not provide financial advice or guarantee trade outcomes.