The SABR Volatility Model Explained
SABR—stochastic alpha beta rho—is a stochastic-volatility model built to quote and interpolate volatility smiles in rates, FX, and commodity markets. Its practical output is an implied-volatility approximation, not a universal pricing engine: it maps a small set of intuitive parameters into a smooth smile that is easy to calibrate across expiries.
Dynamics and parameter meaning
For forward F and stochastic volatility alpha:
dF = alpha * F^beta dW_1
dalpha = nu * alpha dW_2
dW_1 dW_2 = rho dt
The model is conventionally written under a forward measure, so F has zero drift. Its parameters have clear but coupled effects:
| Parameter | Role | Main smile effect |
|---|---|---|
alpha | current volatility scale | ATM level |
beta | backbone elasticity | level/skew dependence |
rho | spot-vol correlation | skew direction |
nu | vol-of-vol | wing curvature |
beta=1 gives lognormal dynamics; beta=0 gives normal dynamics. In interest rates, low or negative forwards made the lognormal convention problematic, creating demand for normal-SABR or shifted-SABR specifications.
Hagan's lognormal approximation
For F != K, the common first-order approximation is:
sigma_BS(K) = [alpha / ((F*K)^((1-beta)/2) * z_over_xz)]
* [1 + A(F,K) + B*T]
z = (nu/alpha) * (F*K)^((1-beta)/2) * log(F/K)
x(z) = log((sqrt(1 - 2*rho*z + z^2) + z - rho) / (1-rho))
The omitted A term corrects for the CEV backbone and B contains the time expansion. At-the-money, use the analytic limit rather than evaluating z/x(z) numerically:
sigma_ATM = alpha / F^(1-beta) *
[1 + ((1-beta)^2 alpha^2/(24 F^(2-2beta))
+ rho*beta*nu*alpha/(4 F^(1-beta))
+ (2-3rho^2)*nu^2/24) * T]
The approximation is fast, but it can misbehave in long expiries, extreme strikes, or large nu. Validate it against a PDE or Monte Carlo reference in the region your book trades.
A stable calibration workflow
Fixing beta is common because a single expiry with five strikes often cannot identify all four parameters robustly. Choose it from desk convention or historical backbone analysis, then solve alpha, rho, and nu in IV space.
from scipy.optimize import least_squares
import numpy as np
def sabr_residuals(x, F, T, strikes, market_iv, beta, hagan_iv):
alpha, nu = np.exp(x[0]), np.exp(x[2])
rho = np.tanh(x[1])
model = np.array([hagan_iv(F, k, T, alpha, beta, rho, nu) for k in strikes])
return model - market_iv
# Use multiple starts and vega/bid-ask weights in production.
result = least_squares(sabr_residuals, x0, args=(F, T, K, iv, 0.5, hagan_iv))
Fit each expiry independently first, then smooth parameter curves in maturity. A globally smooth parameter surface is preferable to independently perfect fits that jump every roll date, provided residuals remain within bid-ask. Weight by quote quality and reject wing quotes with no executable liquidity.
Normal versus shifted conventions
Black implied volatility requires positive F and K; normal (Bachelier) volatility does not. When forwards may become negative:
F_shifted = F + shift
K_shifted = K + shift
Apply a positive shift before using lognormal SABR, and state it in every interface. A changed shift changes quoted vols and sensitivities, so it is a market-data convention, not a harmless numerical parameter. Never convert normal and lognormal vols by matching the number alone; convert via option prices using the same discount factor and expiry.
Risk interpretation
SABR is usually used as a smile model. Its rho and nu are not clean forecasts of realized correlation or volatility-of-volatility because calibration absorbs microstructure, liquidity premiums, and model approximation error. Bump-and-recalibrate is required to calculate model-consistent smile risk. Holding parameters fixed produces a different hedge assumption from holding implied-volatility points fixed.
For portfolio risk, decompose a move into parallel vol, skew, and curvature factors, then compare SABR revaluation with the market convention. This links naturally to options Greeks, but vanna and volga will dominate when the smile moves.
Key takeaways
- SABR provides a compact, interpretable parametrization of volatility smiles.
alphasets level;rhoshapes skew;nucontrols curvature;betasets the backbone.- Use the ATM limit and validate Hagan's approximation in stressed regions.
- Calibrate in the market’s volatility convention with bid-ask-aware weights.
- Negative forwards require normal or explicitly shifted lognormal treatment.
