Vega, vanna and volga
The local geometry of volatility P&L beyond first order
01Use platform units for vega, vanna and volga.
02Derive a second-order spot-volatility P&L expansion.
03Connect surface moves to cross-Greek exposure.
04Identify finite-difference and aggregation failures.
Build the state before the equation.
Vega describes a parallel local volatility move. Vanna and volga explain how delta changes with volatility and how vega curves with volatility—terms that become material during combined spot and surface shocks.
Greek units must match the scenario units.
Vanna is a cross derivative, so sign conventions depend on definitions.
Surface risk is bucketed; one scalar vega hides strike and maturity structure.
The product exists before the model.
Volatility books are explained and hedged through bucketed first- and second-order sensitivities before full repricing closes the residual.
vanilla option books
risk reversals
barriers
volatility swaps
Platform convention: vega per one volatility point, theta per calendar day and rho per 100bp. State the exact vanna definition used.
Notation, units and exact claims.
ν=∂V/∂σ: raw vegaVanna=∂²V/(∂S∂σ)Volga=∂²V/∂σ²Δσ_pts: volatility-point moveVega point unit
P&L for a one percentage-point volatility move.
Second-order spot-vol expansion
Cross and curvature terms matter when spot and volatility move together.
Black–Scholes volga
The sign and magnitude vary by moneyness and maturity.
Do not jump to the final expression.
A two-factor Taylor P&L explain
Expand option value in spot and volatility around the current state while holding stated conventions fixed.
- 01
Choose state variables
Treat V=V(S,σ,t,...) locally; for a surface, σ means a stated bucket or deformation.
- 02
Write first-order terms
Delta and raw vega multiply changes in spot and decimal volatility.
- 03
Add pure curvature
Gamma and volga capture second-order effects in each factor.
- 04
Add the mixed derivative
Symmetry of smooth mixed partials combines the two half cross terms into vanna times dS dσ.
- 05
Convert units before attribution
If vega is per point, multiply by Δσ in points; if raw, multiply by decimal Δσ.
Higher-order Greeks are local approximations whose usefulness depends on clear units, surface buckets and comparison with full repricing.
Fit, compute, then challenge the assumptions.
Compute analytical Greeks where possible; otherwise use symmetric bumps sized above numerical noise and below nonlinear regime changes.
Greeks are evaluated on a calibrated surface/model snapshot. Recalibrated Greeks and frozen-parameter Greeks answer different questions.
Local expansion fails for large discontinuous moves.
Bucket interpolation changes aggregated risk.
Cross-Greek definitions vary across systems.
Static fit is not dynamics.
| Question | Black–Scholes | Local volatility | Heston |
|---|---|---|---|
| Volatility state | One constant σ | σ(S,t) deterministic | vₜ stochastic |
| Fits today’s surface | No | Exactly, in ideal theory | Approximately by calibration |
| Forward dynamics | Flat smile | Spot-driven | Variance + correlation driven |
| Primary strength | Transparent baseline | Vanilla-consistent diffusion | Richer smile dynamics |
| Primary failure | No smile | Often unrealistic forward skew | Parameter and calibration instability |
| Compute | Low | Medium: PDE/MC | Medium–high: Fourier/PDE/MC |
| Hedge implication | Greeks at one σ | State-localized vol hedge | Variance and vol-of-vol risk |
Implementation with current QuantLib
Current QuantLib separates market structures, processes, instruments, engines and calibration helpers. Use those abstractions only after the lesson’s conventions, domains and numerical checks are explicit.
API authority: upstream QuantLib reference pinned in the source registry.Theory → implementation → checks.
Spot-volatility P&L expansion
Apply a second-order explain with explicit decimal-volatility units.
from __future__ import annotations def pnl(delta: float, gamma: float, raw_vega: float, vanna: float, volga: float, ds: float, dvol: float) -> float: values = [delta, gamma, raw_vega, vanna, volga, ds, dvol] if not all(map(lambda x: abs(x) < float("inf"), values)): raise ValueError("inputs must be finite") return delta*ds + 0.5*gamma*ds**2 + raw_vega*dvol + vanna*ds*dvol + 0.5*volga*dvol**2 explained = pnl(0.55, 0.018, 38.0, -0.22, 12.0, -4.0, 0.05)assert abs(explained - (-0.078)) < 1e-12print(round(explained, 6))Move the state. Challenge the equation.
Volatility P&L explain lab
Shock spot and surface level; compare first order, cross/curvature terms and full repricing.
Where the model meets the book.
“The unexplained P&L often has a Greek; it may not have the Greek you reported.”
position state
surface buckets
spot/forward
bump sizes
recalibration policy
Greeks are evaluated on a calibrated surface/model snapshot. Recalibrated Greeks and frozen-parameter Greeks answer different questions.
RISKbucketed vega
vanna
volga
surface gamma
- freeze state
- compute Greeks
- observe moves
- explain P&L
- full reprice
Production failure modes
- point/raw vega mix
- asymmetric bumps
- unstable recalibration
- double-counted buckets
Map the transmission channel.
Spot-vol correlation drives cross-Greek P&L
Risk-off regimes combine falling spot and rising downside volatility, making vanna and skew exposure central to the book response.
spot falls
level and skew rise
add nonlinear P&L
requires full repricing
Most failures begin outside the formula.
Mixing raw and point vega.
Reporting one scalar vega for a structured surface book.
Using oversized finite-difference bumps.
Treating Taylor explain as exact pricing.
Attribution with implementation authority.
Volatility, Monte Carlo and stochastic-volatility lectures
Research map for the mathematical progression and numerical experiments; prose, examples and code are original.
- Source
- Computational Finance Course
- Author
- L. A. Grzelak
- Ref
- main
Current volatility structures, processes, calibration helpers and tests
Implementation reference for production abstractions and validation patterns.
- Source
- QuantLib upstream
- Author
- QuantLib contributors
- Ref
- v1.42.1