Volatility Analysis API — Realized Vol, Skew, Hedging Scenarios — FlashAlpha Lab API
Lab API Volatility Analysis

Volatility Analysis API

Comprehensive volatility analysis: realized vol across multiple windows, IV-RV spreads, delta-based skew profiles, GEX by DTE, theta decay, hedging scenarios, OI concentration, and liquidity metrics.

Endpoint

GET /v1/volatility/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Growth plan+

Parameters

Name In Required Description
symbol path yes Underlying symbol (e.g. SPY, TSLA, AAPL)
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/volatility/TSLA"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/volatility/TSLA",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"ATM IV: {data['atm_iv']:.1f}%")
print(f"RV 20D: {data['realized_vol']['rv_20d']:.1f}%")
print(f"VRP Assessment: {data['iv_rv_spreads']['assessment']}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/volatility/TSLA",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(`ATM IV: ${data.atm_iv.toFixed(1)}%`);
console.log(`RV 20D: ${data.realized_vol.rv_20d.toFixed(1)}%`);
console.log(`Assessment: ${data.iv_rv_spreads.assessment}`);

Response

{
  "symbol": "TSLA",
  "underlying_price": 265.50,
  "as_of": "2026-03-09T15:30:00Z",
  "market_open": true,
  "realized_vol": {
    "rv_5d": 52.31, "rv_10d": 48.12, "rv_20d": 45.80,
    "rv_30d": 44.20, "rv_60d": 42.15
  },
  "atm_iv": 48.50,
  "iv_rv_spreads": {
    "vrp_5d": -3.81, "vrp_10d": 0.38, "vrp_20d": 2.70,
    "vrp_30d": 4.30, "vrp_60d": 6.35,
    "assessment": "moderate_premium"
  },
  "skew_profiles": [
    {
      "expiry": "2026-03-14", "days_to_expiry": 5,
      "put_10d_iv": 62.50, "put_25d_iv": 54.20,
      "atm_iv": 48.50, "call_25d_iv": 45.10, "call_10d_iv": 43.80,
      "skew_25d": 9.10, "smile_ratio": 1.202, "tail_convexity": 2.60
    }
  ],
  "term_structure": {
    "near_slope_pct": 5.20, "far_slope_pct": 3.10, "state": "contango"
  },
  "iv_dispersion": { "cross_expiry": 3.45, "cross_strike": 12.80 },
  "gex_by_dte": [
    { "bucket": "0-7d", "net_gex": 1200000, "pct_of_total": 35.2, "contract_count": 450 },
    { "bucket": "8-30d", "net_gex": 800000, "pct_of_total": 23.5, "contract_count": 1200 },
    { "bucket": "31-60d", "net_gex": 950000, "pct_of_total": 27.9, "contract_count": 800 },
    { "bucket": "60d+", "net_gex": 460000, "pct_of_total": 13.4, "contract_count": 600 }
  ],
  "theta_by_dte": [
    { "bucket": "0-7d", "net_theta": -450000, "contract_count": 450 },
    { "bucket": "8-30d", "net_theta": -320000, "contract_count": 1200 }
  ],
  "put_call_profile": {
    "by_expiry": [
      { "expiry": "2026-03-14", "call_oi": 120000, "put_oi": 95000,
        "pc_ratio_oi": 0.792, "call_volume": 45000, "put_volume": 38000, "pc_ratio_volume": 0.844 }
    ],
    "by_moneyness": {
      "otm_call_oi": 85000, "atm_call_oi": 25000, "itm_call_oi": 10000,
      "otm_put_oi": 60000, "atm_put_oi": 20000, "itm_put_oi": 15000
    }
  },
  "oi_concentration": {
    "top_3_pct": 18.5, "top_5_pct": 28.2, "top_10_pct": 45.0, "herfindahl": 0.032
  },
  "hedging_scenarios": [
    { "move_pct": -5, "dealer_shares": 850000, "direction": "buy", "notional_usd": 225575000 },
    { "move_pct": -2, "dealer_shares": 340000, "direction": "buy", "notional_usd": 90230000 },
    { "move_pct": -1, "dealer_shares": 170000, "direction": "buy", "notional_usd": 45115000 },
    { "move_pct": 1, "dealer_shares": -170000, "direction": "sell", "notional_usd": 45115000 },
    { "move_pct": 2, "dealer_shares": -340000, "direction": "sell", "notional_usd": 90230000 },
    { "move_pct": 5, "dealer_shares": -850000, "direction": "sell", "notional_usd": 225575000 }
  ],
  "liquidity": {
    "atm_avg_spread_pct": 1.85, "wing_avg_spread_pct": 45.20,
    "atm_contracts": 120, "wing_contracts": 340
  }
}

Response Fields

Section Field Description
realized_volrv_5drv_60dAnnualized realized vol (%) for 5, 10, 20, 30, 60 day windows. Log-returns, sample std dev, ×√252.
atm_ivAt-the-money implied volatility from nearest SVI slice (%)
iv_rv_spreadsvrp_NdIV minus RV spread per window. Positive = IV rich.
iv_rv_spreadsassessmentVRP regime: very_high_premium, healthy_premium, moderate_premium, thin_premium, negative_spread, danger_zone
skew_profiles[]skew_25d25-delta risk reversal: put_25d − call_25d
skew_profiles[]smile_ratioPut 25d IV / Call 25d IV. >1 = put skew dominant
skew_profiles[]tail_convexityWing curvature: (put10-put25) − (put25-ATM). Positive = steep tail
term_structurestatecontango, backwardation, mixed, or unknown
gex_by_dte[]bucket, net_gex, pct_of_totalGEX bucketed by DTE: 0-7d, 8-30d, 31-60d, 60d+
theta_by_dte[]net_thetaAggregate theta × OI × 100 per DTE bucket
oi_concentrationherfindahlHerfindahl index (0-1). Higher = more concentrated
hedging_scenarios[]move_pct, dealer_shares, notional_usdEstimated dealer hedging for ±1%, ±2%, ±5% moves
liquidityatm_avg_spread_pctAverage bid-ask spread % for ATM options (within 2% of spot)
liquiditywing_avg_spread_pctAverage bid-ask spread % for wings (>10% OTM)

Notes

  • Realized vol uses close-to-close log-returns with sample standard deviation (N-1), annualized by √252.
  • Skew profiles use delta-to-moneyness approximation: k = ±σ√t × Φ¹(δ). 25-delta uses 0.6745, 10-delta uses 1.2816.
  • Tail convexity measures the second difference of the skew. Positive values indicate steep left-wing curvature (crash protection being bid).
  • GEX by DTE uses the SpotGamma convention: gamma × OI × 100 × spot² × 0.01.
  • Herfindahl index ranges from 1/N (perfectly even) to 1.0 (all OI at one strike). Values above 0.10 suggest high concentration.
  • Hedging scenarios assume dealers are net short options. Positive GEX + upward move = dealers sell shares.

What Is the Volatility Analysis Endpoint?

The /v1/volatility/{symbol} endpoint returns a deep volatility profile for any US equity or ETF. It covers realized volatility across 5 windows (5d, 10d, 20d, 30d, 60d), IV-RV spread assessments, delta-based skew profiles per expiry, IV term structure analysis, gamma exposure bucketed by days to expiry, theta decay by DTE, put/call breakdowns by expiry and moneyness, OI concentration metrics (Herfindahl index), multi-move dealer hedging scenarios (±1%, ±2%, ±5%), and options liquidity analysis.

Common Use Cases

  • Vol premium trading — compare realized vol across windows to ATM IV to identify rich/cheap vol regimes
  • Skew analysis — 10-delta and 25-delta skew profiles per expiry reveal crash protection demand and tail risk pricing
  • DTE-based strategies — GEX and theta bucketed by DTE help select optimal expiries for calendar spreads or wheel strategies
  • Risk management — multi-move hedging scenarios show estimated dealer flow for ±1%, ±2%, and ±5% spot moves
  • Liquidity scoring — ATM vs wing bid-ask spreads help assess execution cost before entering a position
  • Concentration risk — OI Herfindahl index and top-strike percentages reveal pin risk and gamma clustering
FlashAlpha
© FlashAlpha. All rights reserved.