Every trading day, insights from bhavcopydata.com tag each futures contract with one of four labels, Long Buildup, Short Covering, Short Buildup or Long Unwinding, based on how price and open interest moved together that day. Traders have leaned on this framework for years as a read on what fresh money is doing. I had never actually checked whether the labels line up with what happens next. So I backtested them.
What the four labels mean
| Open interest up | Open interest down | |
|---|---|---|
| Price up | Long Buildup | Short Covering |
| Price down | Short Buildup | Long Unwinding |
Price up combined with open interest up gets tagged Long Buildup. Fresh money is opening new long positions while price rises. Traders usually read this as bullish conviction likely to continue.
Price up combined with open interest down gets tagged Short Covering. Existing short sellers are buying back their positions and closing out, pushing price up without fresh buying behind it. Traders usually read this as a weaker bounce, not fresh conviction.
Price down combined with open interest up gets tagged Short Buildup. Fresh money is opening new short positions while price falls. Traders usually read this as bearish conviction likely to continue.
Price down combined with open interest down gets tagged Long Unwinding. Existing long holders are exiting their positions. Traders usually read this as a weaker down move rather than fresh bearish conviction.
Two of the four labels, Long Buildup and Short Buildup, are supposed to signal continuation. The other two, Short Covering and Long Unwinding, are supposed to signal a move running out of steam.
How it was tested
I pulled the full futures trading history behind bhavcopydata.com, 275 trading days between 30 June 2025 and 10 August 2026, covering 249 symbols. For every contract on every day I computed the same label the daily cards on bhavcopydata.com already compute, by comparing that day's close price and open interest to the previous trading day. I only included contracts that traded above INR 1 crore that day, the same floor insights from bhavcopydata.com already use, so a thin contract's noisy percentage swing in open interest did not get counted as a real signal. That left 155,456 labeled contract days.
I also excluded one date, 03 August 2026, from the comparison. That was the day NSE switched its futures and options data format, and open interest ended up reported in different units before and after the switch. Comparing the two directly created a fake jump in open interest for every contract that day, in the hundreds of thousands of percent, which is a units problem, not a trading signal. I dropped that single day rather than let it distort the results.
For every labeled contract day, I then looked forward 1, 3 and 5 trading days and checked whether the close price actually moved in the direction the label implied.
What was found
| Label | Contract days | 1 day hit rate | 3 day hit rate | 5 day hit rate | 5 day average return |
|---|---|---|---|---|---|
| Long Buildup | 51,674 | 48.5% | 47.8% | 47.8% | -0.05% |
| Short Covering | 24,574 | 47.2% | 47.1% | 46.5% | -0.14% |
| Short Buildup | 58,426 | 50.0% | 50.3% | 51.1% | -0.06% |
| Long Unwinding | 20,782 | 51.2% | 52.8% | 53.3% | -0.24% |
Hit rate here means the direction the label implied actually happened, price higher for Long Buildup and Short Covering, price lower for Short Buildup and Long Unwinding.
At first glance three of the four labels sit close to a coin flip, and the fourth, Long Unwinding, only edges past half the time. None of this looks like a strong signal on its own.
The fair comparison is not 50%, it is the market's own drift
A flat 50% is not actually the right bar to compare against. Over this same stretch, an average contract, with no label attached at all, closed lower than it opened 1, 3 and 5 trading days later slightly more often than it closed higher. The unconditional up rate across all contract days at these three horizons ranged from 47.9% to 48.8%. The whole market carried a small downward drift through this window. A label that carries no real information at all would already show a hit rate below 50% for a bullish claim and above 50% for a bearish claim, purely from that drift.
Once we compare each label against that drift instead of against a flat 50%, only two comparisons hold up as statistically real at the 5 day horizon, and one of them runs opposite to what the label claims.
| Label | Direction claimed | 5 day hit rate | 5 day baseline for that direction | Edge | Statistically significant |
|---|---|---|---|---|---|
| Long Buildup | Bullish | 47.8% | 47.9% | -0.1 points | No |
| Short Covering | Bullish | 46.5% | 47.9% | -1.4 points | Yes, wrong direction |
| Short Buildup | Bearish | 51.1% | 52.1% | -0.9 points | Yes, wrong direction |
| Long Unwinding | Bearish | 53.3% | 52.1% | +1.2 points | Yes, right direction |
Long Buildup showed no measurable edge at all, in either direction, at any of the three horizons tested.
Short Covering and Short Buildup were both statistically significant, helped by very large sample sizes that make even a small difference measurable, but in the wrong direction. A contract tagged Short Covering bounced less often than an average contract over the same days, not more. A contract tagged Short Buildup fell less often than an average contract, not more.
Long Unwinding was the one label where the data lined up with the story. Contracts tagged Long Unwinding fell further over the next 5 trading days, an average of -0.24%, against -0.08% for an average contract over the same days. The edge was small in absolute terms but held up as statistically significant at both the 3 day and 5 day horizons.
Stock futures carry almost all of this
Nearly the entire sample was single stock futures. The index futures rows, Nifty and Bank Nifty style contracts, numbered only 258 to 1,198 per label, too small a sample to draw a separate conclusion for indices. Everything above is really a statement about single stock futures, not about the index.
What this means in plain terms
As a mechanical, same day label applied uniformly across every contract, OI buildup on its own does not forecast where a stock futures contract goes over the next week. Long Unwinding is the one label that showed a real, if modest, tilt in its own direction. Long Buildup showed nothing measurable. Short Covering and Short Buildup actually leaned the other way, though only slightly.
This does not mean open interest itself is meaningless. It means the four label mechanical version of it is a weaker signal than the trading lore around it suggests, at least across the period we tested. A single label without turnover context, trend context or price action around it is not enough to trade on by itself. These insights are already paired on bhavcopydata.com with a turnover floor and the rest of a contract's own trading data for exactly this reason, and this backtest is a reason to keep leaning on the fuller picture rather than the label alone.
Caveats worth stating plainly
This backtest covers 30 June 2025 to 10 August 2026, about 13 months. That includes both trending and choppy stretches, but it is not multiple full market cycles, so these results describe this period, not a permanent law. I will revisit this once there is a longer run of data to see whether the pattern holds, weakens further or changes.
The full daily OI buildup labels are available on the Futures page on bhavcopydata.com for anyone who wants to check the numbers themselves.