Insights
High-IV-Rank Stocks: Data for a Research Screen
Alphanume Team · July 19, 2026
A high-IV-rank screen identifies names whose implied volatility sits high inside its own trailing-year range. Add realized-volatility rank, event timing, and liquidity before treating the result as research-ready.
Alphanume's IV/HV Rank dataset places each ticker's current approximately 30-day implied volatility and 30-trading-day realized volatility within that name's strict 252-observation history. It returns rank, percentile, high, low, median, current levels, liquidity context, and cross-sectional comparisons.
High IV rank is context rather than an instruction to sell options. Implied volatility can be elevated because the market expects a real earnings, regulatory, financing, or company-specific jump. A viable screen needs to distinguish historical elevation from relative richness and actual contract economics.
Rank and percentile differ
Metric | Definition | Behavior |
|---|---|---|
iv_rank | Position between trailing-year IV low and high | Sensitive to extreme endpoints |
iv_percentile | Share of trailing observations below current IV | Uses the full empirical distribution |
hv_rank | Current realized vol inside its trailing range | Shows whether actual movement is also elevated |
iv_rank_cs_ranked | Daily percentile of IV Rank across names | Adds cross-sectional context |
A single volatility spike can stretch the high-low range and reduce rank even when current IV exceeds most ordinary days. Percentile can remain high in that case. Use both values and inspect the 52-week high, low, median, and n_obs_52w before labeling a name historically expensive.
Require the full history
A ticker appears only after it has 252 observations for both implied and realized volatility. Recent listings and newly optionable names are absent by design. That warmup keeps the lookback definition consistent and also means the screen is not a complete list of every optionable stock.
Today updates provisionally about every 30 minutes during the session with is_final=0 and settles around 4:30 PM with is_final=1. Every past date is final. Use only_final=true for an end-of-day research screen and model execution no earlier than the next eligible session.
Choose thresholds on a development window and carry them unchanged into later dates. Report candidate counts by day because a fixed rank floor can produce different breadth as coverage changes. Also retain the rows that fail each gate. Without that rejection ledger, it is easy to revise an event, liquidity, or HV rule after seeing which names performed poorly and then mistake the edited sample for a prospective screen.
Evaluate the screen as a ranking before attaching a strategy. Track how later absolute returns, realized volatility, and IV changes vary across fixed rank buckets. That separates whether the data sort future conditions from whether one option structure monetizes the sort. Use equal-weighted and liquidity-weighted summaries, and keep sector concentrations visible so one crowded industry does not quietly explain the entire result.
Query a multi-field screen
The endpoint supports IV-rank, HV-rank, and IV-percentile filters. Start broad enough to preserve variation, then apply event and liquidity rules outside the API under a versioned research contract.
import os
import requests
response = requests.get(
"https://api.alphanume.com/v1/iv-rank",
headers={"X-API-Key": os.environ["ALPHANUME_API_KEY"]},
params={
"date": "2026-06-12",
"min_iv_rank": 80,
"min_iv_percentile": 80,
"only_final": "true",
},
timeout=30,
)
response.raise_for_status()
candidates = response.json()["data"]Validate is_final=1, a complete observation count, and non-null liquidity on every candidate. Free access provides a trailing 20-trading-session window ending one session behind the latest observation.
Add HV, events, and liquidity
Gate | Example rule | Reason |
|---|---|---|
IV history | iv_rank and iv_percentile above fixed floors | Require both range and distribution context |
HV context | Compare iv_rank with hv_rank | Separate broad vol regime from implied-only elevation |
Liquidity | notional_volume above a predeclared floor | Remove weak underlying activity |
Earnings | No known event inside intended holding window | Avoid mixing scheduled jump risk with ordinary premium |
Earnings Move History supplies prior per-name event behavior but is not an upcoming earnings calendar. The field documentation defines its capture and reaction dates. Removing near-term earnings requires a separately maintained point-in-time schedule. Use the historical dataset to characterize past implied-versus-realized reactions, then use the calendar to determine whether a new event falls inside the trade window.
Avoid the screen-to-trade shortcut
- Event premium. High IV can price a real discontinuity rather than easy carry.
- Rank compression. One extreme trailing high can distort the range metric.
- Intraday drift. Provisional values can change before settlement.
- Contract detail. The endpoint does not provide skew, term structure, bid-ask spreads, or greeks by contract.
- Coverage. The 252-observation requirement excludes short histories.
The proof page reports dataset evidence and does not convert a high-rank filter into a profitable premium-selling rule. Costs, tails, sizing, and exit logic remain separate.
Run one settled screen
Read the IV/HV Rank field reference, run one settled date, and export all rows passing fixed IV-rank and percentile floors. Add HV-rank differences, liquidity, upcoming-event flags from a point-in-time calendar, and explicit exclusion reasons.
Inspect ten candidates across different sectors and compare rank with percentile. Then evaluate a predefined option strategy with actual historical contracts and a later holdout period. Alphanume Learn: So You Want to Trade Earnings is useful context for the event-risk gate.