ApexVol Research Methodology
How we compute every number: data sources, formulas, backtest assumptions, and where the model breaks.
Last revised 2026-05-12
1. Data sources
Primary feed: ORATS (orats.com). ORATS is the same institutional vol-data provider used by professional options desks, market-making firms, and academic researchers. We pull live option chains, pre-computed IV rank, vol surface points, and historical OHLCV from their API.
- /strikes — live option chain with bid/ask/IV/Greeks per strike (refreshed continuously during market hours).
- /hist/ivrank — daily IV, IV rank (1m + 1y), and IV percentile (1m + 1y) per ticker.
- /hist/dailies — OHLCV back to 2007 for historical and backtest work.
- /cores — 340+ fundamental fields including earnings dates and dividend schedules.
- /live/monies/implied + /forecast — moneyness-based vol surface points for the 3D viewer.
Secondary feeds: yfinance for VIX (^VIX), 10-year Treasury (^TNX) for the risk-free rate, and 90-minute intraday bars. Greeks come pre-computed from ORATS — we do not re-derive them from market prices on the SEO pages. Backtest stats and "typical win rate" numbers are computed in-house against the ORATS historical chain.
2. IV Rank & IV Percentile
IV rank and IV percentile both contextualise today's IV against a one-year lookback of the 30-day ATM implied volatility. They are not the same metric, and the difference matters in spike-prone names.
IV Rank
IV Rank = (IVtoday − IV52w low) / (IV52w high − IV52w low) × 100
Pure min-max score. A single IV spike during the year drags the high to that value and compresses every subsequent reading.
IV Percentile
IV Pctile = count(IVday < IVtoday) / 252 × 100
Distribution-based. Smoother than rank, less prone to single-day distortion. Better for spike-prone names like TSLA, NVDA, MARA.
Lookback: 252 trading days (≈ 1 calendar year). ATM IV is anchored to the 30-day constant-maturity contract, interpolated from the surface — not a single listed expiration.
Both metrics arrive pre-computed from ORATS via the /hist/ivrank endpoint. We don't re-derive them client-side. The number you see on /tools/iv-calculator is the same number a hedge fund's vol desk sees that morning.
3. Greeks
All Greeks are computed from the Black-Scholes-Merton model with continuous dividend yield. Inputs: spot price, strike, time to expiration in years, risk-free rate (10y Treasury yield from yfinance), continuous dividend yield (from ORATS /cores), and implied volatility (from the live chain).
- Delta: N(d1) for calls, N(d1)−1 for puts.
- Gamma: φ(d1) / (S σ √T).
- Theta: reported per calendar day (annual θ ÷ 365). The /tools/greeks-calculator displays the dollar value: θ × 100 for a single 100-share contract.
- Vega: S φ(d1) √T / 100. Already scaled per 1% IV move, not per absolute σ.
- Rho: K T e−rT N(d2) / 100. Reported for completeness; only materially affects LEAPS (>6 months).
Higher-order Greeks (Charm, Vanna, Volga) are computed via finite-differences on the BSM PDE for premium tiers only.
4. Probability of Profit & Probability of Touching
Probability of Profit (POP) is the model-implied probability that the trade closes profitable at expiration. We compute it from the cumulative normal distribution evaluated at d2 — the same N(d2) term that appears in Black-Scholes.
For a short single option:
POP ≈ 1 − N(d2)
For an iron condor (two short legs):
POP ≈ 1 − (|short put delta| + |short call delta|)
Probability of Touching (POT) is the probability the underlying touches the strike at any point before expiration — not just at expiration. The textbook approximation is POT ≈ 2 × POITM, which assumes geometric Brownian motion and continuous monitoring. POT is always higher than POITM for the same strike.
Where these break: POP and POT assume log-normal returns and constant volatility. Both assumptions fail around earnings and macroevents. We never use the model POP as a forecast — it is a probability under the model's assumptions, not the world's.
5. Backtest framework
Every "typical win rate" or "managed return" number on the site comes from a transparent backtest framework with the following rules:
- Universe: SPY, QQQ, IWM as the index proxies; AAPL, MSFT, GOOGL as the mega-cap single-name proxies.
- Period: 2014-01-01 to most recent month-end. Excludes the 2020 COVID quarter (March 2020) when reported as "ex-COVID."
- Slippage: 1¢ per option leg on entry and exit. 4-leg iron condors therefore eat 8¢ of edge per round-trip.
- Commissions: $0.65 per contract (Schwab/IBKR retail rate). Some tables also publish the commission-free variant.
- Fills: mid-price at the trade time. We do not assume the natural; for short premium we assume a 1¢ improvement on entry, 0¢ on exit.
- Sizing: equal capital allocation. Each trade risks the full capital at risk (max loss) per unit; the test does not optimise sizing.
- Management: the default exit rule is 50% of max profit on credit spreads / iron condors. Where alternative exits are quoted (25%, 75%, hold-to-expiration), they are labelled.
What we don't claim: these tests are not live performance, do not include taxes, and use after-hours mid-price marks. Past returns under any backtest are not predictive of future returns under live trading.
6. How "best" lists are ranked
Pages like /best/stocks-for-wheel-strategy and /best/etfs-for-options-trading rank candidates against a published rubric. The rubric is updated monthly; the underlying live numbers (IV rank, IV) refresh on each page load from the ORATS daily feed.
- Wheel-strategy stocks: ranked by composite of fundamental quality (would you hold if assigned), 30-delta put yield annualised, options liquidity (bid-ask spread), share-price accessibility, and historical drawdown recovery.
- ETFs for options trading: ranked by daily options volume, bid-ask tightness at the front-month ATM, weekly-expiration availability, and IV regime range.
7. Known limitations
Where our model and our data can break:
- Earnings IV inversion: the term structure inverts in the week before earnings. Constant-maturity 30-day IV becomes a blended number that doesn't reflect the front-week event premium.
- Halt / circuit-breaker days: ORATS still publishes closing data, but the IV calculation can be stale during long halts.
- Low-liquidity strikes: when bid-ask spreads exceed 20% of mid, our Greek and IV calculations carry larger error bars. We try to filter these but cannot guarantee.
- Backtest data on options: ORATS historical option chains go back to 2007 but coverage is sparse pre-2014 for non-index names. Single-name backtests for stocks like NVDA before 2014 are not statistically meaningful.
- Live mid-price assumption: the actual fill price is rarely the natural mid. Slippage in our backtests approximates retail execution; HFT and market-makers achieve better fills.
8. How often we refresh
| Surface | Refresh cadence |
|---|---|
| Live option chain (Greeks, IV, bid/ask) | ~15 second polling during market hours |
| IV rank / IV percentile | Daily after the close (ORATS publishes ~5:30 PM ET) |
| Vol surface points (3D viewer) | Hourly during market hours; EOD overnight |
| Best-of lists (wheel stocks, ETFs) | Editorial review monthly; live IV refreshes per page load |
| Strategy guides (win rates, examples) | Quarterly editorial review |
| Backtest results | Re-run monthly; tagged with the run-date in the relevant content |
See something off?
If a number on the site disagrees with your independent calculation, tell us. Methodology corrections get a public changelog entry and a credit if you'd like one.
research@apexvol.com →