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 percentileDaily 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 resultsRe-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 →
7 days free, cancel anytime No charge if you cancel
Start trial →