Options Screener — IV Premium, Unusual Volume, Covered Calls avatar

Options Screener — IV Premium, Unusual Volume, Covered Calls

Pricing

from $2.00 / 1,000 option contracts

Go to Apify Store
Options Screener — IV Premium, Unusual Volume, Covered Calls

Options Screener — IV Premium, Unusual Volume, Covered Calls

Screen US equity and ETF option chains on derived metrics, not raw chains: implied volatility vs realized volatility, volume-to-open-interest ratio, IV skew, put/call ratio, and annualized covered-call and cash-secured-put yields. Liquidity-filtered.

Pricing

from $2.00 / 1,000 option contracts

Rating

0.0

(0)

Developer

宗諭 楊

宗諭 楊

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

Options Screener — IV Premium, Unusual Volume & Covered-Call Yield

Most option scrapers hand you the chain. This one hands you the numbers you were going to compute from the chain.

Give it tickers and it returns option contracts ranked by a derived metric: implied volatility measured against the stock's own realized volatility, volume against open interest, or the annualized yield of selling the contract. Everything is liquidity-filtered first, because a yield you cannot fill is not a yield.

The five screens

ScreenRanks byAnswers
IV premiumiv ÷ realizedVolAre these options expensive relative to how much the stock has actually been moving?
Unusual volumevolume ÷ openInterestWhere is today's trading larger than the entire existing position?
Covered-call yieldannualized call premium ÷ spotIf I hold the shares and sell this call, what is the annualized return?
Cash-secured-put yieldannualized put premium ÷ strikeIf I set aside the cash and sell this put, what is the annualized return?
Liquid chain onlysymbol / expiry / strikeJust the chain, with the illiquid strikes removed.

What you get per contract

FieldExample
symbol / expiry / dteAAPL / 2026-11-21 / 41
side / strike / moneynesscall / 340 / 1.01
mid / bid / ask / spreadPct8.45 / 8.30 / 8.60 / 0.035
iv0.287
realizedVol0.241
ivPremium1.19 — implied is 19% above realized
volume / openInterest / volOiRatio4,210 / 1,905 / 2.21
coveredCallYield / cashSecuredPutYieldannualized, from the mid price
atmIv / ivSkew / putCallVolRatio / putCallOiRatioper expiration
breakevenMovePctthe one-sigma move the option is pricing in
inTheMoney / lastTradeDate / contractSymbolinTheMoney is computed from the spot in the same row, so it always agrees with moneyness and extrinsicPct

Two dataset views: Contracts (everything) and Premium selling (the two yields side by side with the spread, so you can see what is actually fillable).

Filters

  • Days to expiry window — very short-dated options have unstable implied volatility, so the default starts at 7 days.
  • Min open interest — without it the output fills with strikes nobody trades.
  • Max bid-ask spread as a fraction of mid — the liquidity filter that makes the yields meaningful.
  • Realized volatility window — the denominator of IV premium.
  • Expirations per symbol — each one is a separate request.

How it handles bad data

The source encodes "this strike has no market" as a number, not as a blank: contracts with no quotes come back with an implied volatility of about 0.00001. Averaged or ranked naively, those values quietly destroy every statistic — and the rows still look fine, because they have a strike, a bid, an ask and a last price.

CheckWhat it catches
Placeholder IVImplied volatility at or below 0.0001 is converted to null in the data layer, before it can reach any calculation.
Whole chain unpricedIf every contract in an expiration carries a placeholder IV, that symbol stops with an explanation instead of returning confident-looking numbers.
No expirationsReported as "this symbol has no option chain", never as "nothing matched your filters". If none of the symbols has options while the control symbol SPY does, the run is refused with that explanation (no rows, no per-row charge).
Market closedYahoo zeroes option bids, asks and open interest outside US market hours (measured Monday 02:00 ET: 14 of 3,131 contracts still had a quote). With fewer than 5% of contracts quoted outside 9:30–16:00 ET on a trading day, the run is refused with the time and the last trade, instead of returning an empty success. The same picture during market hours is treated as a source failure. SUMMARY.quotedShare reports the share for every run.
Crossed marketMore than 20% of contracts quoting bid above ask means the quote data is unusable.
Too little historyRealized volatility is the denominator of IV premium, so a short history stops the symbol rather than returning a ratio built on noise.
Everything filtered outIf liquidity filters remove every contract while quotes exist, the run succeeds with no rows and its status message says which filters removed them.
Unknown screen nameRejected, not silently replaced with the default.

A gate failure on one symbol does not kill the run; it appears in SUMMARY.warnings with the reason, and that symbol is left out rather than half-reported.

Notes on the data and the metrics

  • ivPremium is relative pricing, not a forecast. Above 1 means the option is priced for more movement than the stock has recently delivered. It does not mean selling is profitable.
  • Yields use the mid price, not the last trade — a last trade can be days old. Your actual fill lands inside the spread, which is why spreadPct is in every row.
  • Annualized yields use calendar days (365), because collateral is tied up in calendar days. Realized volatility annualizes with trading days (252).
  • Quotes are delayed, not live. This is a screening tool, not an order-routing tool.
  • Nothing here is investment advice.