In 2002, four quants at BNP Paribas - Patrick Hagan, Deep Kumar, Andrew Lesniewski and Diana Woodward - published "Managing Smile Risk" in Wilmott Magazine. The paper introduced a four-parameter stochastic volatility model and, more importantly, a closed-form approximation for the implied volatility it produces. Within a few years that formula was running on essentially every interest rate options desk in the world, and it still is in 2026.
The model is SABR, short for "stochastic alpha, beta, rho". It is not the most realistic volatility model ever written. It is the most useful one, because it turns the problem of fitting a volatility smile into evaluating one algebraic formula, fast enough to requote a swaption surface every time the market ticks.
This article covers what SABR is, what each of its four parameters actually does to the smile, how desks calibrate it, what happened when rates went negative, and where the model stops working.
Why Practitioners Needed SABR
By the late 1990s everyone could see that a single Black volatility per expiry did not describe the market. Swaptions and caps traded at different implied volatilities at different strikes, and a desk quoting the whole strike ladder needed a model of the smile, not just a point on it.
The first industrial answer was local volatility (Dupire, 1994), which fits today's smile perfectly by construction. Hagan and his co-authors opened their 2002 paper with an attack on it: local volatility models predict that when the forward rate rises, the smile shifts to lower strikes - the opposite of what actually happens in the market. Hedge with a local volatility model and your smile risk has the wrong sign. Delta and vega hedges computed from it are worse than the naive Black hedges they were meant to replace.
The desks needed a model that fitted the observed smile at each expiry, moved the smile in the right direction when the forward moved, and produced prices fast enough for market-making. SABR was engineered to hit precisely those three requirements, and nothing more. That modesty is the reason it won.
The Model Dynamics
SABR models a single forward rate F (a forward swap rate, a forward Libor or SOFR rate, an FX forward) under its natural pricing measure. Two coupled stochastic differential equations, in the same spirit as the stochastic calculus behind every diffusion model:
dF = alpha * F^beta * dW_1
d(alpha) = nu * alpha * dW_2
with Corr(dW_1, dW_2) = rho * dt, and alpha(0) as the fourth parameter (confusingly also called alpha).
The forward follows a CEV process whose volatility alpha is itself random, following a lognormal process with no drift. Note what is missing compared with the Heston model: there is no mean reversion in volatility, and the forward has no drift. SABR is built to describe one expiry at a time, not the joint dynamics of a whole surface. Within a single expiry that simplification costs little and buys a tractable formula.
What Each Parameter Controls
The practical charm of SABR is that its four parameters map almost one-to-one onto features of the smile. A trader can look at a fitted parameter set and read it like a sentence.
| Parameter | Name | Typical range (rates) | What it controls |
|---|---|---|---|
| alpha | Initial volatility | 0.01 - 0.10 (beta = 0.5) | Overall level of the smile; pins the ATM vol |
| beta | CEV exponent | 0 to 1, usually fixed | Backbone: how ATM vol moves when the forward moves |
| rho | Correlation | -0.5 to 0.5 | Tilt: skew of the smile |
| nu | Vol of vol | 0.2 - 1.0 | Curvature: how pronounced the wings are |
Alpha sets the level. Scale alpha up and the whole smile shifts upward, with the at-the-money point moving almost exactly in proportion. Desks usually treat alpha as the free parameter that nails the ATM quote.
Beta sets the backbone. With beta = 1 the forward is lognormal and ATM vol stays put when the forward moves; with beta = 0 the forward is normal (Gaussian) and ATM vol in lognormal terms rises as the forward falls. Rates desks conventionally fix beta at 0.5, or estimate it from a regression of log ATM vol on log forward, and rarely touch it afterwards. Beta and rho both produce skew, so trying to fit them simultaneously is poorly identified.
Rho tilts the smile. Negative rho means volatility rises when the forward falls, which pushes up implied vols at low strikes: a downward skew. Positive rho tilts the other way. In equity markets rho is reliably negative; in rates it moves around with the cycle.
Nu bends the smile. Vol of vol fattens both tails of the distribution of F, lifting both wings relative to the middle. High nu means a deep, U-shaped smile; nu near zero flattens SABR back towards plain CEV.
Level, backbone, tilt, curvature. Four numbers, four visible features. That interpretability is why traders trust the model enough to hedge with its parameters directly - vega buckets on a rates desk are routinely expressed as sensitivities to alpha, rho and nu.
The Hagan Formula
The 2002 paper's real product is not the SDE, it is equation 2.17: an asymptotic expansion (valid for small time-scaled vol of vol) giving the Black lognormal implied volatility of an option with strike K on forward F, directly in terms of the four parameters.
The structure of the formula, stripped of its coefficients: a level term alpha / (FK)^((1-beta)/2), multiplied by z/x(z), a function of the variable z = (nu/alpha) * (FK)^((1-beta)/2) * ln(F/K) that encodes how far the strike is from the money, multiplied by a correction term linear in the expiry T. Plug the output into the Black-Scholes formula (the Black-76 variant for forwards) and you have a price.
No integration, no simulation, no PDE. Evaluating the formula costs a microsecond, so a desk can fit a smile per expiry and requote an entire swaption cube - hundreds of expiry-tenor pairs - in real time. Through the 2000s this is exactly how the rates volatility market came to be organised: SABR parameters per expiry and tenor became the lingua franca in which brokers and desks communicated smiles, the same way Black-Scholes implied vol is the lingua franca for single option prices.
Calibration in Practice
Calibrating SABR is refreshingly small as optimisation problems go. The standard desk workflow, per expiry:
- Fix beta in advance (0.5 by convention, or from a backbone regression). This removes the identifiability problem between beta and rho.
- Given a trial (rho, nu), solve for the alpha that reprices the ATM vol exactly. This is a cubic equation in alpha, so it is fast and exact, and it guarantees the model never misquotes the most liquid point.
- Optimise over the remaining two parameters (rho, nu) to minimise squared error against the quoted out-of-the-money strikes, typically five to ten quotes per expiry.
A two-dimensional least-squares problem with a smooth objective converges in milliseconds with any standard optimiser. Compare that with a five-parameter Heston calibration across a full surface, which is non-convex and needs global search. The fit is usually excellent across the liquid strike range, roughly ATM plus or minus 200 basis points for swaptions.
The output is a small table of (alpha, beta, rho, nu) per expiry and tenor. Interpolating those parameters across the grid gives a smile everywhere - which is precisely what a market-maker needs and precisely what SABR was designed for.
Negative Rates and Shifted SABR
Then rates went below zero and broke the model. The ECB cut its deposit rate to -0.10% in June 2014 and eventually to -0.50% in September 2019; the Swiss National Bank went to -0.75% in January 2015. Standard SABR cannot see a negative forward: the F^beta term is undefined for F < 0 (for non-integer beta), and for 0 < beta < 1 the process can reach zero and stick there. Calibrations on EUR and CHF swaptions started failing outright for short expiries with forwards near or below zero.
The pragmatic fix, adopted across the street within a couple of years, is shifted SABR: model F + s instead of F, where s is a fixed positive shift, commonly 2% or 3% for EUR. The forward can then go as low as -s, and everything else - the Hagan formula, the calibration routine, the parameter intuition - carries over with (F + s) and (K + s) in place of F and K. Quotes moved with it: EUR swaption smiles were republished as shifted Black vols with the shift stated alongside.
The other response was to abandon lognormal quoting entirely and use normal (Bachelier) implied vols, which are perfectly comfortable with negative rates. Hagan's paper conveniently includes a normal-vol version of the expansion, and normal vols have remained the dominant convention for rates options even after policy rates returned to positive territory. The episode is a useful reminder that the distributional assumptions baked into a quoting convention are model risk too - a theme familiar from short-rate models like Vasicek, which allowed negative rates decades before markets decided that was a feature rather than a bug.
The Hagan Formula in Python
Here is the lognormal Hagan approximation as a Python function. It handles the at-the-money limit separately, since z/x(z) tends to 1 as K approaches F.
import numpy as np def sabr_implied_vol(F, K, T, alpha, beta, rho, nu): """Hagan et al. (2002) lognormal implied vol approximation.""" one_beta = 1.0 - beta fk_pow = (F * K) ** (one_beta / 2.0) log_fk = np.log(F / K) # Expiry-dependent correction term (same in both branches) corr = ( one_beta**2 / 24.0 * alpha**2 / fk_pow**2 + rho * beta * nu * alpha / (4.0 * fk_pow) + (2.0 - 3.0 * rho**2) / 24.0 * nu**2 ) * T if abs(log_fk) < 1e-10: # at-the-money limit return alpha / F**one_beta * (1.0 + corr) z = nu / alpha * fk_pow * log_fk x_z = np.log((np.sqrt(1.0 - 2.0 * rho * z + z**2) + z - rho) / (1.0 - rho)) denom = fk_pow * ( 1.0 + one_beta**2 / 24.0 * log_fk**2 + one_beta**4 / 1920.0 * log_fk**4 ) return alpha / denom * (z / x_z) * (1.0 + corr) # Smile for a 1y option on a forward at 3%, beta fixed at 0.5 for K in [0.02, 0.025, 0.03, 0.035, 0.04]: vol = sabr_implied_vol(F=0.03, K=K, T=1.0, alpha=0.035, beta=0.5, rho=-0.25, nu=0.45) print(f"K = {K:.3f} implied vol = {vol:.2%}")
Run it and you get a smile: higher vols at 2% and 4% than at the 3% money, tilted upward at low strikes by the negative rho. Refit with rho = 0 and the smile becomes symmetric; increase nu and the wings lift. Ten minutes of experimenting with this function teaches the parameter intuition better than any derivation.
Where SABR Breaks Down
SABR's weaknesses are well documented, and every desk running it has workarounds. Know them before trusting the formula.
The Hagan expansion is an approximation, and it degrades. It is an asymptotic series in nu^2 * T. For long expiries (10 years and beyond), high vol of vol, or strikes far from the money, the formula drifts materially away from the true SABR model price. Worse, at very low strikes the approximate implied vols can imply a negative probability density - butterfly arbitrage manufactured by the approximation itself. This is not a corner case; it shows up routinely in long-dated swaption wings. Fixes include the Obloj (2008) refinement, arbitrage-free numerical treatments of the SABR density such as Hagan's own 2014 PDE approach, and desk-level smile extrapolation rules for the far wings.
No mean reversion, no term structure. Volatility in SABR is a driftless lognormal process, so the model says nothing sensible about how smiles at different expiries relate. Each expiry is calibrated independently, and the parameter interpolation between them is a convention, not a model. For products that depend on the joint dynamics of the whole surface - Bermudan swaptions, callable exotics - SABR alone is not enough, and desks graft it onto term-structure models instead.
Parameters are less stable than the story suggests. Rho and nu trade off against each other in the fit; day-to-day recalibrations can jump around, especially when only a handful of strikes are liquid. Hedges keyed to individual parameters inherit that noise.
It prices vanillas, not paths. The model was built to interpolate European smiles. Ask it about anything path-dependent and you are using it outside its design envelope.
None of this has dislodged SABR, because nothing simpler does the job and everything more realistic is slower and harder to interpret. The model survives the way good engineering usually does: by being exactly adequate.
The Shortest Useful Summary
SABR is a four-parameter stochastic volatility model wrapped around one very fast formula. Alpha sets the smile's level, beta its backbone, rho its tilt, nu its curvature. Calibration is a two-parameter fit per expiry after pinning alpha to the ATM quote and fixing beta by convention. Shifted SABR extends it below zero. The Hagan approximation makes it fast and also makes it wrong in the wings and at long expiries, in ways that are known, bounded and managed daily on every rates desk that uses it.
Twenty-four years after Wilmott Magazine printed it, that is still the state of the art for quoting a swaption smile.
Skip the £25k programme - try the alternative
Master's programmes are slow and expensive. Quantt is a self-paced alternative. Start free with a real lesson and interview practice, then unlock 50+ courses and your personalised plan.
Free to start · No credit card required