←Back to the notebook

Screen Stocks by IV Rank and Unusual Premium, and Replay the Options Session: Two API Additions

Seven end-of-day options readings are now screener fields, in the same plan as the SentiSense Score and analyst consensus, and a new endpoint returns the options session in 15-minute cycles so a signal can be tested before it is used.

SentiSense Team
SentiSense Team
October 15, 2026 · 6 min read

Two things changed in the SentiSense API this week, both asked for by people who run the screener every trading day. The screener can now filter and sort on options readings, and the intraday options board now leaves a record you can query by session.

The September post covered the intraday board itself. This one is about getting its data into a screen and into a backtest.

Seven options readings in the screener

POST /api/v1/screener/execute and POST /api/v1/screener/etfs/execute accept seven new fields, as filters and as sort keys, in the same plan as the SentiSense Score, analyst consensus, technicals and price:

Field What it is Unit
IV_RANK_1Y Where today's at-the-money implied volatility sits in the stock's own one-year range 0 to 100
PC_VOL Put volume divided by call volume in the latest session ratio
PC_VOL_PCTL_1Y Percentile of that ratio against the stock's own trailing year 0 to 100
SKEW_25D_PCTL_1Y Percentile of the 25-delta skew (put IV minus call IV) against the stock's own year 0 to 100
OPTIONS_INTEREST_SCORE Composite of how far today's readings sit from the stock's own norms; only names with at least $100,000 of premium traded are scored 0 to 100
MAX_UNUSUAL_PREMIUM Estimated premium of the largest unusual contract in the latest session USD
EXPECTED_MOVE_20D Options-implied 90% expected move over the next 20 sessions fraction of price (0.2 is 20%)

Every reading is relative to the stock's own history, which is what makes them screenable across a universe: an IV rank of 90 means the same thing for a utility and for a chipmaker. Every row now carries optionsAsOf, the session date the options values come from. A ticker with no options row, or no reading for a field, is excluded by any filter on that field and sorts last, the same rule the screener applies to every other field.

The point is the cross. A screen for a high implied-volatility regime where the crowd is also bullish is one request:

{
  "plan": {
    "filters": [
      { "fieldName": "IV_RANK_1Y", "op": "GTE", "value": 75 },
      { "fieldName": "SENTI_SCORE_7D", "op": "GTE", "value": 13 },
      { "fieldName": "OPTIONS_INTEREST_SCORE", "op": "GTE", "value": 0 }
    ],
    "sort": { "fieldName": "IV_RANK_1Y", "dir": "DESC" }
  },
  "limit": 25
}

Run on the evening of October 14, 2026, against that day's board, it matched 15 stocks. The top of the list: DHR at an IV rank of 100 with a 7-day Score of 23.7, MPC at 98 and 22.4, VLO at 98 and 18.3, MRK at 94 and 15.2, TMO at 93 and 18.8. The OPTIONS_INTEREST_SCORE GTE 0 leg is a liquidity gate: a stock is only scored when at least $100,000 of premium traded, so the clause drops thinly traded names without choosing a threshold.

Two curated screens ship with the fields and appear on GET /api/v1/screener/screens with their full plans: high-iv-rank (IV rank of 75 or higher among scored names) and unusual-premium-bullish (an unusual contract of $1 million or more and a 7-day SentiSense Score of 13 or higher). On the same evening they returned 49 and 34 stocks. GET /api/v1/screener/fields lists the seven under an Options group with units and descriptions, so a client built from the catalog picks them up without a code change.

Two things to know before building on them. The readings are end of day: the board is built after the close, so during the session the screener describes the previous session, and optionsAsOf says which. And EXPECTED_MOVE_20D is a fraction of price, the same number the options endpoints serve: send 0.2 for a 20% move.

The options session, replayed

The intraday board rebuilds every 15 minutes from 15-minute delayed chains, 09:45 to 16:15 ET. Until this week each rebuild replaced the last. Now every cycle is stored, and GET /api/v1/stocks/{ticker}/options/intraday-history?session=YYYY-MM-DD returns one ticker's series for one session:

  • callVol and putVol, contracts traded so far in the session across the chain
  • pcVol, the put/call volume ratio at that cycle
  • unusualCount, the contracts flagged as unusual so far
  • maxPremiumPctl1y, the percentile of the largest flagged premium against the ticker's own year (absent until about 60 sessions of baseline exist)
  • atmIv, the at-the-money implied volatility

Each point carries its cycle number and the time it was read. Gaps are not hidden: missingCycles lists any cycle of the session with no stored board, and cycles says how many there were. A full session is 27 cycles. The series carries counts, a ratio, a percentile and a volatility; it never carries a contract symbol, strike, price, premium amount or print size.

Storage is forward-only from October 15, 2026, so the first session you can query is that one, and the history grows a session a day from there. That is the honest shape of the data today: the endpoint exists so a signal built on the board can be tested against what the board actually showed at 10:15, not reconstructed from memory.

Both additions carry their own clock. Stock screener rows carry priceAsOf for the 15-minute delayed price, and every screener row carries optionsAsOf for the options session; the overview carries intradayAsOf for the board; the history series carries asOf per cycle.

Who gets what

The seven screener fields are on every API key, free and PRO, like every other screener field. The intraday history is PRO only. Signed-in users see the new Options group in the screener builder and two new chips, High IV Rank and Unusual Premium + Bullish, with two new columns available in the stocks table. The SentiSense MCP connector's screen tool accepts the same fields.

Run the High IV Rank screen →

What this is, and is not

It is a set of end-of-day options readings made filterable next to sentiment and fundamentals, and a stored record of a 15-minute delayed board. It is not a live tape, it does not identify buyers or sellers, and an IV rank is a position in a range, not a volatility level. Every number says which session it describes.


SentiSense provides market information and options analytics for informational and educational purposes only. Options readings in the screener are end of day; intraday series are 15-minute delayed and stored from October 15, 2026. Premium figures are estimated at the mark, and no reading identifies the buyer or the seller of any contract. This product is not investment advice, is not a recommendation to buy or sell any security or derivative, and is not a substitute for professional financial advice.