Insights
Where to Find Implied vs Realized Volatility Premium Data
Alphanume Team · June 8, 2026
Per-ticker volatility risk premium data, implied volatility against realized, as a clean cross-sectional feed from Alphanume.
The volatility risk premium, the gap between what options imply and what stocks actually deliver, is one of the most durable edges in derivatives. Measuring it consistently across hundreds of names is the hard part. You need matched implied and realized volatility, a sensible lookback, and a cross-sectional ranking so you can tell a genuinely rich option from one that just looks high in isolation.
Alphanume packages all of that as the IV/HV Premium dataset.
What the dataset is
IV/HV Premium is a per-ticker, per-day volatility risk premium. It pairs roughly 30-day at-the-money implied volatility against 30-trading-day realized volatility, expressed both as a spread (implied minus realized) and as a ratio (implied divided by realized, where greater than 1 means options are rich). It adds daily cross-sectional ranks from 0 to 1 and z-scores so each name is comparable to the rest of the universe that day.
It also has a real-time intraday layer. Rows with is_final = 0 are provisional and refreshed about every 30 minutes between 09:30 and 16:00 ET, while is_final = 1 marks the settled value published around 16:30 ET. There is one row per date and ticker.
Key fields
- iv, hv: implied and realized volatility
- iv_hv_spread, iv_hv_ratio: the premium as a spread and a ratio
- *_ranked, *_z: cross-sectional rank (0 to 1) and z-score
- notional_volume, days_to_exp, atm_strike, spot
- is_final, last_updated: the intraday settlement layer
What you can do with it
- Screen for the richest and cheapest options across the market each day.
- Rank relative value so you sell the genuinely expensive names and buy the genuinely cheap ones.
- Size a volatility-selling or volatility-buying book by premium.
- Backtest premium-capture strategies on a consistent, point-in-time series.
How to access it
IV/HV Premium is on the free tier as a rolling 30-day delayed window. Use only_final=true for settled rows, and filters like min_ratio_rank to grab only the richest names:
curl "https://api.alphanume.com/v1/iv-hv-premium?date=2026-06-12&min_ratio_rank=0.9&api_key=alp_your_key"Grab a free Alphanume API key, read the API documentation, or explore it on Alphanume to screen the latest premiums.
Related
For where today's volatility sits inside each name's own yearly range, see IV/HV Rank. For how unstable that volatility is, see Vol-of-Vol.
Why the cross-sectional layer matters
A rich-looking implied volatility means little in isolation. A 60 percent reading can be cheap for one name and expensive for another. What turns the volatility risk premium into a tradable signal is comparison: ranking every name against the rest of the universe on the same day, which is exactly what the ranked and z-score columns provide.
Assembling this yourself means matching roughly 30-day implied volatility to 30-trading-day realized volatility for the whole universe, every day, and computing a consistent cross-sectional rank on top. Alphanume does that and adds a real-time intraday layer, so you can screen live on provisional rows and backtest on settled rows from one dataset.
Frequently asked questions
What is the volatility risk premium?
It is the gap between what options imply and what stocks actually deliver. Alphanume measures it per ticker as a spread (implied minus realized) and a ratio (implied divided by realized).
What does an iv_hv_ratio above 1 mean?
It means roughly 30-day implied volatility is higher than 30-trading-day realized volatility, so the option is pricing more movement than the stock has been delivering. That is the classic rich-option profile.
What are the ranked and z-score columns?
They are daily cross-sectional measures. The ranked fields place each name from 0 to 1 against the universe that day, and the z-scores standardize the same comparison, so a name is judged relative to its peers.
What is the is_final flag?
It marks the intraday settlement layer. is_final = 0 is provisional and refreshed about every 30 minutes from 09:30 to 16:00 ET, while is_final = 1 is the settled value published around 16:30 ET.
Is the dataset free?
Yes, on the free tier as a rolling 30-day delayed window. Pass only_final=true for settled rows, and use min_ratio_rank to grab only the richest names.