PatternsRadar
Sign in

Open interest (futures OI)

Open interest is the number of futures contracts outstanding in a stock across all expiries, each one a long and a short who have not yet closed. Read alongside price, its day-over-day change says whether positions are being built or unwound.

`fut_oi` is the total open interest in a stock's futures, summed across the current, next and far expiries, in contracts. Unlike volume it is a stock rather than a flow: a contract that changes hands between two traders leaves it unchanged, and it only rises when a new long and a new short are created together. `fut_oi_change_pct` is the day-over-day change. Both exist only for stocks in the derivatives segment, which is what `from fno` selects. On the cash-only universe they are NULL and never match.

The standard reading is the four-way table of price against OI. Price up with OI up is a long buildup, new money on the long side. Price down with OI up is a short buildup. Price up with OI falling is short covering, and price down with OI falling is long unwinding. The Long buildup, Short buildup, Short covering and Long unwinding scans are exactly these four cells, with `change` supplying the price leg and `fut_oi_change_pct` the OI leg. A three-month high in `fut_oi` on its own marks where the largest positional argument is, without saying which side is right.

Two mechanical caveats. Open interest drops sharply on and after the monthly expiry, as the near contract settles and not every position rolls. That drop is real, but it is the calendar rather than a change of opinion, and a scan run in expiry week will find long unwinding everywhere. And OI counts contracts, so it does not compare across stocks with different lot sizes. The percentage change and the stock's own history are the meaningful comparisons.

Its siblings are the other futures fields. `fut_volume` is the flow OI is the stock of, `fut_basis_pct` says whether the futures trade at a premium or discount to cash, and `fut_rollover_pct` measures how much of the position book carried into the next expiry. The put-call ratio covers the options side of the same book.

In Sift

Written as fut_oi — contracts; fut_oi_change_pct — day-over-day change in %; F&O stocks only, so write `from fno`. A working scan — Futures OI up more than 3% on a day price rose more than 1%, a long buildup:

from fno where fut_oi_change_pct > 3 and change > 1
Run

1

of the 500 most-traded NSE stocks match today, as of 25 Sept 2026

Scans that use it

Prebuilt scans in the library whose query reads this value — each with a hit-rate replay over the last 250 sessions.

Common questions

What does rising open interest mean?

That new positions are being opened, a new long and a new short for every added contract. Which side is driving depends on price: rising OI on a rising price is long buildup, rising OI on a falling price is short buildup. OI alone measures the size of the argument.

Why does open interest fall at expiry?

Because the near-month contract settles and every position in it closes; only the ones traders chose to roll into the next month reappear. The drop is genuine, but it is the calendar talking rather than a change of view, which is why OI scans are best read against the same stage of the previous cycle.

Why does my open-interest scan return nothing?

Most often because the query is running on the cash universe. Futures fields exist only for stocks in the derivatives segment. Write `from fno` to select those; otherwise `fut_oi` is NULL for every stock and no row can match.