TQBTHEQUANTBATEMAN
TQB/ learn/ volatility/ implied volatilityEN · DARK
volatility · intermediate

Implied volatility

An option price expressed in the coordinate system of a chosen model

BY THE END, YOU CAN

01Separate an observed option premium from the volatility inferred through Black–Scholes.

02Derive the scalar root problem and explain why vega controls conditioning.

03Implement a bracketed inversion with price-bound and residual checks.

04Identify when stale inputs, conventions or near-zero vega make an implied quote unreliable.

01
INTUITION

Build the state before the equation.

Implied volatility is not measured from returns. It is the volatility input that forces a specified pricing model to reproduce an observed option premium. It is therefore a model-dependent quote coordinate, not a direct forecast.

01

One premium becomes one implied volatility only after spot, strike, time, rates, dividends, payoff and settlement conventions are fixed.

02

Different strikes normally return different implied volatilities; that failure of a constant-volatility model is useful market information.

03

Low vega makes the inverse unstable: a small price error can become a large volatility error.

02
WHY MARKETS CARE

The product exists before the model.

Volatility normalizes premiums across strikes and expiries, allowing desks to compare relative richness, build surfaces and communicate risk in a familiar unit.

INSTRUMENTS

European calls and puts

listed equity options

FX vanilla options

caps, floors and swaptions under their own conventions

QUOTE CONVENTION

Equity volatility is commonly displayed in annualized percentage points. FX and rates require explicit delta, ATM, premium, normal/lognormal and settlement conventions before values are comparable.

03
MATHEMATICS

Notation, units and exact claims.

C_mkt: observed call premiumC_BS(σ): Black–Scholes call valueν = ∂C/∂σ: raw vegaT: ACT/365-like year fraction in this lesson
QUANT NOTESYNTHETIC · EDUCATIONAL

Inverse definition

Implied volatility is the root of a monotone scalar equation when vanilla no-arbitrage bounds hold.

f(σ)=CBS(S,K,T,r,q,σ)Cmkt=0f(\sigma)=C_{BS}(S,K,T,r,q,\sigma)-C_{mkt}=0
Read the equation together with its financial domain and convention.
QUANT NOTESYNTHETIC · EDUCATIONAL

Black–Scholes call

The inverse depends on every state variable and convention used by the forward pricing model.

CBS=SeqTN(d1)KerTN(d2)C_{BS}=Se^{-qT}N(d_1)-Ke^{-rT}N(d_2)
Read the equation together with its financial domain and convention.
QUANT NOTESYNTHETIC · EDUCATIONAL

Conditioning

When vega approaches zero, premium noise is magnified in volatility space.

dσimpdC=1ν,ν=SeqTϕ(d1)T\frac{d\sigma_{imp}}{dC}=\frac{1}{\nu},\qquad \nu=Se^{-qT}\phi(d_1)\sqrt{T}
Read the equation together with its financial domain and convention.
04
DERIVATION

Do not jump to the final expression.

DERIVATION

From premium to a stable volatility root

The derivation is an inverse-function argument, followed by a numerical method that respects the financial domain.

  1. 01

    Fix the pricing state

    Hold spot, strike, expiry, curves, dividends and payoff convention fixed. Only volatility is unknown.

    Cmkt=CBS(σ)C_{mkt}=C_{BS}(\sigma)
  2. 02

    Establish feasible bounds

    For a non-dividend call, discounted intrinsic value is the lower bound and spot is the upper bound. Reject premiums outside these bounds before solving.

    max(0,SKerT)CmktS\max(0,S-Ke^{-rT})\le C_{mkt}\le S
  3. 03

    Use monotonicity

    European vanilla vega is positive away from degenerate limits, so the Black–Scholes price rises with volatility and the root is unique.

    σCBS=ν>0\partial_{\sigma}C_{BS}=\nu>0
  4. 04

    Bracket, then solve

    A bracketed method such as Brent combines reliability with fast convergence. Newton can be fast but may leave the domain when vega is small.

    σn+1=σnf(σn)ν(σn)\sigma_{n+1}=\sigma_n-\frac{f(\sigma_n)}{\nu(\sigma_n)}
  5. 05

    Interpret the inverse sensitivity

    Implicit differentiation converts price error into volatility error. This is why deep in/out-of-the-money short-dated quotes can be numerically fragile.

    dσimpdCνd\sigma_{imp}\approx \frac{dC}{\nu}

A reliable implied-volatility quote is a validated inversion result with complete state and convention lineage.

05
MODEL / PRICING

Fit, compute, then challenge the assumptions.

METHOD

Compute the model premium for candidate volatility and solve the residual inside a positive bracket. Use parity or the more liquid option side where desk convention calls for it.

CALIBRATION

Implied-vol inversion is pointwise calibration. Surface calibration begins only after those points are normalized into a consistent coordinate system.

LIMITATIONS

No constant volatility fits the full strike-expiry grid.

The value is model and convention dependent.

Wide spreads and low vega produce unstable implied quotes.

Implementation with current QuantLib

Current QuantLib represents market state through quote and term-structure handles and exposes implied-volatility inversion around a pricing engine. The library manages plumbing; it does not remove the need to understand bounds, conventions and conditioning.

API authority: upstream QuantLib reference pinned in the source registry.
06
PYTHON LAB

Theory → implementation → checks.

PYTHON 3 · NUMPY / SCIPY

Bracketed Black–Scholes inversion

Recover a known volatility from a generated premium and reject impossible prices.

REUSABLE EXAMPLE
01from __future__ import annotations
02
03from math import exp, log, sqrt
04from scipy.optimize import brentq
05from scipy.stats import norm
06
07def call_price(spot: float, strike: float, time: float, rate: float, vol: float) -> float:
08 if min(spot, strike, time, vol) <= 0.0:
09 raise ValueError("spot, strike, time and vol must be positive")
10 root_t = sqrt(time)
11 d1 = (log(spot / strike) + (rate + 0.5 * vol**2) * time) / (vol * root_t)
12 d2 = d1 - vol * root_t
13 return spot * norm.cdf(d1) - strike * exp(-rate * time) * norm.cdf(d2)
14
15def implied_vol(price: float, spot: float, strike: float, time: float, rate: float) -> float:
16 lower = max(0.0, spot - strike * exp(-rate * time))
17 upper = spot
18 if not lower <= price <= upper:
19 raise ValueError("price violates no-arbitrage bounds")
20 objective = lambda sigma: call_price(spot, strike, time, rate, sigma) - price
21 return float(brentq(objective, 1e-8, 5.0, xtol=1e-12, rtol=1e-12))
22
23target = call_price(100.0, 105.0, 0.75, 0.03, 0.27)
24solved = implied_vol(target, 100.0, 105.0, 0.75, 0.03)
25assert abs(solved - 0.27) < 1e-10
26print(f"Implied volatility: {solved:.4%}")
EXPECTED OUTPUTImplied volatility: 27.0000%
SANITY CHECKS

Known-vol round trip is accurate to 1e-10.

No-arbitrage bounds are validated before solving.

The bracket is positive and finite.

07
INTERACTIVE LAB

Move the state. Challenge the equation.

NUMERICAL FLOWSYNTHETIC · EDUCATIONAL

Implied-volatility inversion

The deterministic quant lab solves the same bracketed inverse with residual diagnostics.

The implementation remains shared with the platform’s typed pricing engine.
08
FRONT OFFICE

Where the model meets the book.

ON THE DESK
Volatility is the desk language; premium remains the cash value.
VISIBLE INPUTS

bid/offer premium

spot or forward

discount and carry curves

expiry and settlement

strike/delta convention

CALIBRATION

Invert bid, mid and offer consistently. Preserve the premium spread rather than presenting mid volatility as executable truth.

RISK

vega and volga

spot-vol cross sensitivity

calendar and dividend jumps

surface interpolation risk

DAILY WORKFLOW
  1. clean quotes
  2. normalize conventions
  3. solve implied vols
  4. flag low-vega points
  5. fit and validate the surface
Production failure modes
  • stale spot paired with fresh options
  • wrong dividend or foreign curve
  • calendar mismatch
  • silent percent/decimal conversion
  • solver success with a poor residual
09
MACRO CONNECTION

Map the transmission channel.

MACRO CONNECTION

Macro uncertainty enters option prices

Policy and event risk change forward distributions and demand for convex protection; the effect is visible in both the level and shape of implied volatility.

Policy/event shock

widens distribution of possible outcomes

Hedging demand

moves wing premiums and skew

Implied volatility

translates premiums into comparable coordinates

10
COMMON PITFALLS

Most failures begin outside the formula.

01

Calling implied volatility a forecast without qualification.

02

Solving against a mid from asynchronous market inputs.

03

Using Newton without a bracket or vega guard.

04

Comparing values built under different quote conventions.

11
SOURCES / FURTHER READING

Attribution with implementation authority.

researchBSD-3-Clause

Lecture 04 — Implied Volatility

Research map for inversion, smile and numerical interpretation; explanation and code are original.

Source
Computational Finance Course
Author
L. A. Grzelak
Ref
main
OPEN ORIGINAL SOURCE ↗LICENSE ↗
implementation referenceQuantLib permissive license

Current instrument/process/volatility architecture

Implementation reference for professional library abstractions.

Source
QuantLib upstream
Author
QuantLib contributors
Ref
v1.42.1
OPEN ORIGINAL SOURCE ↗LICENSE ↗