IV-Rank & IV-Percentile
In addition to the Volatility regime (VIX) we score implied volatility per underlying. This finds tickers whose IV is high or low relative to their own history - independent of the broader market.
Definitions
IV30 is the 30-day implied volatility (decimal: 0.32 = 32%).
IV-Rank
Position of the current IV between the min and max of the lookback window (default 252 trading days):
rank = (IV_now − IV_min) / (IV_max − IV_min), clamped to [0, 1]
IV-Percentile
Share of days with IV ≤ current value:
percentile = #{days with IV ≤ IV_now} / #{days total}
Endpoints
| Method | Path | Plan |
|---|---|---|
POST | /api/iv/{symbol} | premium+ |
POST | /api/iv/{symbol}/bulk | premium+ |
GET | /api/iv/{symbol}/metrics | all users |
GET | /api/iv/{symbol}/history | all users |
Example:
GET /api/iv/AAPL/metrics?iv=0.31&lookback_days=252Response:
{
"symbol": "AAPL",
"lookback_days": 252,
"samples": 248,
"current_iv": 0.31,
"min": 0.18,
"max": 0.55,
"mean": 0.27,
"iv_rank": 0.351,
"iv_percentile": 0.78
}Feeding data
With Wheel Premium you can write IV data, single or bulk:
POST /api/iv/AAPL
{
"iv30": 0.31,
"as_of_date": "2026-05-03",
"source": "ibkr"
}POST /api/iv/AAPL/bulk
{
"rows": [
{"as_of_date": "2026-04-30", "iv30": 0.30},
{"as_of_date": "2026-05-01", "iv30": 0.32}
],
"source": "csv"
}Heuristics
- IV-Rank > 0.5 → IV in the upper third of history → premiums for
short puts/calls relatively rich.
- IV-Rank < 0.2 → historically calm → tend to wait.
- IV-Percentile > 0.8 → 80% of days had a lower IV → classic IV
crush is often near.