Implied Volatility Smile & Skew Calculator BLACK-76 · CLIENT-SIDE

Paste option prices across strikes and expiries. The page backs out implied volatility with a guaranteed-convergence solver, infers the forward from put-call parity, plots one smile per expiry and reports ATM IV, skew and curvature. Everything runs in your browser.

Calculator

Option prices

Volatility smile

Implied volatility vs
ATM IV term structure (days to expiry)

Strike detail

Method

Black-76 on the forward F, discount D = e^(−rT), T = days / 365 C = D·[F·N(d1) − K·N(d2)] P = D·[K·N(−d2) − F·N(−d1)] d1 = [ln(F/K) + σ²T/2] / (σ√T), d2 = d1 − σ√T (identical to Black-Scholes-Merton with F = S·e^((r−q)T)) Forward from put-call parity (strike K* minimising |C − P|): F = K* + (C − P) / D No-arbitrage bounds (price must lie strictly inside): D·max(F − K, 0) < C < D·F D·max(K − F, 0) < P < D·K Solver: Newton σ ← σ − (V(σ) − V_mkt) / vega(σ) keep bracket [lo, hi] ∋ root, start [1e−6, 10]; bisect when Newton leaves it stop when |V(σ) − V_mkt| < 1e−12 or step < 1e−12 Smile summary per expiry, k = ln(K/F), OTM points: IV(k) ≈ a + b·k + c·k² (least squares) ATM IV = a, skew = b, curvature = c

The composite smile uses puts for strikes below the forward and calls at or above it, falling back to the other side when one is missing. Rows whose price breaches a bound are flagged in the detail table and excluded. Use mid prices; a stale or one-sided quote is the most common cause of a flagged row.

Summary for AI agents (Markdown mirror)

# Implied Volatility Smile & Skew Calculator

> Client-side implied volatility solver and smile plotter for European options across strikes and expiries. URL: https://quantcore-labs.com/tools/iv-smile/

## Input

  • - Rows: days, strike, call price, put price (either price optional)
  • - Spot, rate and dividend yield (used when the forward cannot be inferred from parity)

## Output

  • - Call and put IV per strike, with no-arbitrage flags
  • - Per expiry: forward, ATM IV, skew (dIV/dk), curvature, from a quadratic fit in ln(K/F)
  • - Charts: smile per expiry, ATM term structure

## Method

  • - Black-76 inversion; safeguarded Newton-Raphson with bisection fallback; converges for any price inside the bounds
  • - Forward from put-call parity at the strike minimising |C − P|

FAQ

Why use out-of-the-money options for the smile?
OTM options are more liquid and their prices are almost entirely time value, so their implied volatility is less sensitive to small errors in the forward or in bid-ask midpoints. ITM options carry large intrinsic value, so a one-tick price error can move their IV a lot. Under put-call parity with the correct forward, call and put IVs at the same strike are identical anyway.
Why does plain Newton-Raphson fail for implied volatility?
Vega approaches zero for deep in- or out-of-the-money options and very short expiries, so a Newton step can shoot to negative or huge volatilities. This solver keeps a bracket that always contains the root and falls back to bisection whenever Newton would leave it, so it converges for every price within the no-arbitrage bounds.
Does this work for China ETF options such as 50ETF or 300ETF?
Yes. These are European-style, so Black-76 on the forward is the standard model. Inferring the forward from put-call parity is recommended because ETF dividends and borrow costs are otherwise hard to specify. Use mid prices and calendar days to expiry.
What does the skew number mean?
It is the slope b of the fitted IV curve in log-moneyness at the money. A value of −0.30 means IV rises about 3 volatility points for a strike 10% below the forward (k = −0.10). Equity and index smiles usually show negative skew because downside puts are in demand as crash protection.