Further Improving Our Exposure Model With 'Live Open Interest', and How We Calculate It
Building on our previous post, Improving Our Exposure Model With Implied Volatility Surfaces - Estimation and Smoothing, I mentioned there was one final piece missing in our dealer exposure model - the ability to account for intraday changes in open interest at each strike. This final piece is now available to all VannaCharm premium customers leveraging the real-time broker connection page. Since the model ultimately boils down to use of option open interest, greeks, IV, time and sales, and quotes, this calculation can be made in real-time for any optionable symbol.
Static Open Interest is So 2024
It's well known in the options world that open interest (OI) is a crucial metric for understanding market sentiment and liquidity. At VannaCharm, we've taken this a step further by integrating 'live open interest' calculations into our dealer exposure model, enhancing the accuracy and responsiveness of our exposure metrics.
How 'Live Open Interest' Works
Essentially, open interest is only valuable to use exactly at market open - for us, this is the time = 0 point in our model. As time progresses, trades occur that can change the true open interest at each strike. The four possible OI-changing transactions are:
- Buy to open - a new long position is created → OI increases
- Sell to open - a new short position is created → OI increases
- Buy to close - an existing short position is closed → OI decreases
- Sell to close - an existing long position is closed → OI decreases
The challenge is that we can't directly observe whether a trade is "to open" or "to close" from the tape alone. What we can infer is the aggressor side - who initiated the trade by crossing the spread.
Most brokerages allow streaming both trades and quotes of options in real-time. By comparing the trade price to the NBBO (National Best Bid and Offer) at the time of the trade, we classify each trade:
- Trade at or above the ask → Buy aggressor (buyer lifted the offer)
- Trade at or below the bid → Sell aggressor (seller hit the bid)
- Trade between bid and ask → Unknown (internalized, crossed, or negotiated)
We then apply a heuristic based on typical retail flow patterns:
| Aggressor Side | Typical Behavior | Estimated OI Change |
|---|---|---|
| Buy (at ask) | Retail opening new longs | +size |
| Sell (at bid) | Closing longs or profit-taking | -size |
| Unknown (mid) | Ambiguous | 0 |
This heuristic works well for retail-dominated flow, where buyers lifting the offer are usually opening new positions. The main limitation is institutional activity - a sell at bid could be a new short (which would increase OI), but without order-level data, we can't distinguish this case.
The cumulative estimate is simply:
Where is the open interest at market open and is the estimated OI change from each trade.
If you're interested in the code-based details from various broker feeds, you can see how the code is written in our premier open source frontend library, floe, for Tradier, TastyTrade, TradeStation, and Schwab brokers.
The Result? Real-time Developing Live Open Interest Dealer Exposure Model with Smoothed Implied Volatility
On our live symbol overview page, you can view the exposure at each strike based on this 'live open interest' calculation, giving you a more dynamic and accurate picture of dealer exposure as the trading day progresses.
Note however, if you're not there directly at 09:30 AM EST, the 'live open interest' calculation will start only from the time you activate the feed, so it won't have the full picture of the day prior to that moment. Still, it's a huge improvement over static open interest data that never changes throughout the day, and can regardless highlight any large trades that occur after you activate the feed.
Enjoy!
-Chris