End-to-End Worked Examples¶
The previous sections developed the SABR model piece by piece: SDE and parameters, Hagan formula, calibration procedure, Greeks, and arbitrage corrections. This section assembles those pieces into complete workflows that mirror what a practitioner executes every day. We calibrate the SABR model to representative swaption market data, price a swaption from the calibrated parameters, compute Greeks suitable for hedging, and critically compare the model output with the market. Each step is presented with explicit numerical calculations that the reader can reproduce.
Prerequisites
- SABR SDE and Parameters (model definition)
- Hagan Implied Volatility Approximation (Hagan formula)
- Calibration to Swaption Smiles (calibration procedure)
- SABR Greeks (Analytical) (delta, vega, Bartlett correction)
Learning Objectives
By the end of this section, you will be able to:
- Execute a full SABR calibration to swaption market data with explicit numerical steps
- Price a European payer swaption using the calibrated SABR implied volatility and the Black formula
- Compute SABR delta, vega, and the Bartlett correction numerically
- Assess calibration quality by comparing model and market implied volatilities
- Interpret the calibrated parameters in terms of market features
Example 1: Calibrating a 5Y into 10Y USD Swaption Smile¶
Market Data¶
Consider a USD payer swaption with 5-year expiry into a 10-year swap, observed on a representative date. The forward swap rate is \(F = 3.50\%\) and the annuity factor is \(A = 7.82\). The market quotes Black implied volatilities at seven strikes relative to ATM.
| Strike offset (bps) | \(-200\) | \(-100\) | \(-50\) | ATM | \(+50\) | \(+100\) | \(+200\) |
|---|---|---|---|---|---|---|---|
| Strike (\(K\), %) | 1.50 | 2.50 | 3.00 | 3.50 | 4.00 | 4.50 | 5.50 |
| Black IV (%) | 24.80 | 22.10 | 21.00 | 20.20 | 19.60 | 19.20 | 18.70 |
The expiry is \(T = 5\) years. USD convention sets \(\beta = 0.5\).
Step 1: Fix Beta¶
By USD swaption convention, \(\beta = 0.5\). This is not calibrated.
Step 2: Determine Alpha from the ATM Quote¶
The ATM Hagan formula at \(K = F = 0.035\) is:
Leading-order estimate. Setting the correction term to zero:
Newton refinement. With initial guesses \(\rho = -0.3\) and \(\nu = 0.4\) (from the previous day or a rough estimate), one Newton iteration gives:
Computing: \(\sigma_B^{\text{Hagan}}(\alpha_0) \approx 0.1985\), and \(\partial\sigma_B/\partial\alpha \approx 5.32\), so:
After a second Newton iteration: \(\alpha = 0.03821\).
Step 3: Calibrate Rho and Nu¶
With \(\alpha(\rho, \nu)\) determined by the ATM condition at each evaluation, minimize:
Using Levenberg-Marquardt with starting point \((\rho_0, \nu_0) = (-0.3, 0.4)\):
Iteration 1. Evaluate the residual vector at the 6 OTM strikes. The Jacobian \(\mathbf{J}\) is \(6 \times 2\) with entries \(\partial\sigma_B^{\text{Hagan}}(K_i)/\partial\rho\) and \(\partial\sigma_B^{\text{Hagan}}(K_i)/\partial\nu\) (including the implicit dependence through \(\alpha(\rho, \nu)\)). Solve the normal equations to get the parameter update \(\delta(\rho, \nu)\).
Convergence. After 8 iterations, the optimizer converges to:
and the ATM-consistent alpha is \(\alpha^* = 0.03821\).
Step 4: Validate the Calibration¶
Compute model implied volatilities at all strikes and compare with market:
| Strike (%) | Market IV (%) | Model IV (%) | Error (bps) |
|---|---|---|---|
| 1.50 | 24.80 | 24.68 | \(-12\) |
| 2.50 | 22.10 | 22.16 | \(+6\) |
| 3.00 | 21.00 | 20.98 | \(-2\) |
| 3.50 | 20.20 | 20.20 | \(0\) (exact by construction) |
| 4.00 | 19.60 | 19.57 | \(-3\) |
| 4.50 | 19.20 | 19.12 | \(-8\) |
| 5.50 | 18.70 | 18.55 | \(-15\) |
The maximum error is 15 bps at the \(K = 5.50\%\) wing. This is within the typical bid-ask spread of 20--40 bps for OTM swaptions.
Calibration Quality Assessment
An RMSE below 10 bps across the calibration strikes indicates an excellent fit. Here the RMSE is approximately 8.5 bps. The largest errors occur at the extreme wings, where the Hagan formula's asymptotic approximation is least accurate.
Calibrated Parameters Summary¶
| Parameter | Value | Interpretation |
|---|---|---|
| \(\alpha\) | 0.03821 | ATM vol level: \(\sigma_{\text{ATM}} \approx \alpha / F^{0.5} = 20.2\%\) |
| \(\beta\) | 0.50 | CIR-type backbone (USD convention) |
| \(\rho\) | \(-0.3185\) | Moderate negative skew |
| \(\nu\) | 0.4073 | Moderate vol-of-vol (smile curvature) |
Example 2: Pricing a European Payer Swaption¶
Setup¶
Using the calibrated parameters from Example 1, price a 5Y into 10Y payer swaption with strike \(K = 4.00\%\) (50 bps OTM).
Step 1: Compute the SABR Implied Volatility¶
From the calibrated model:
This was already computed in the validation step above.
Step 2: Apply the Black Formula¶
The Black formula for a payer swaption with annuity \(A\), forward rate \(F\), strike \(K\), expiry \(T\), and implied volatility \(\sigma_B\) is:
where:
Numerical computation:
The payer swaption price is 3.355% of notional, or 335.5 bps. On a $100 million notional, this is approximately $3.355 million.
Example 3: Computing SABR Greeks¶
Delta (Sensitivity to Forward Rate)¶
The SABR delta for the \(K = 4.00\%\) payer swaption is:
Black delta:
Black vega (per unit annuity):
Smile sensitivity \(\partial\sigma_B/\partial F\): From the Hagan formula, the numerical sensitivity at \(K = 0.04\) is approximately \(\partial\sigma_B/\partial F \approx -1.42\) (the backbone effect: as \(F\) rises, \(\sigma_B\) falls).
Bartlett correction. The additional term accounts for the forward-volatility correlation:
Computing: \(\partial\sigma_B/\partial\alpha \approx 5.32\), and \(\rho\nu/F^{\beta} = (-0.3185)(0.4073)/0.18708 = -0.6932\).
| Delta measure | Value | Per $100M notional |
|---|---|---|
| Black delta | \(A \times 0.466 = 3.643\) | $3.643M per 1% move |
| SABR delta | \(3.297\) | $3.297M per 1% move |
| Bartlett delta | \(2.402\) | $2.402M per 1% move |
The Bartlett correction reduces the hedge ratio by approximately 27% relative to the Black delta, reflecting the strong negative correlation (\(\rho = -0.32\)) between the forward and volatility.
Vega (Sensitivity to Alpha)¶
A 1% increase in \(\alpha\) (from 0.03821 to 0.03859) changes the swaption price by approximately 1.290% of notional, or $1.290M on $100M.
Sensitivity to Rho¶
From the Hagan formula, \(\partial\sigma_B/\partial\rho \approx 0.0445\) at \(K = 4.00\%\). Thus:
A shift of \(\Delta\rho = 0.01\) changes the price by approximately 0.011% of notional.
Sensitivity to Nu¶
From the Hagan formula, \(\partial\sigma_B/\partial\nu \approx 0.0253\) at \(K = 4.00\%\). Thus:
Example 4: Comparing Model and Market Across the Smile¶
Implied Volatility Comparison¶
The following table extends the calibration validation to include normal (basis-point) implied volatilities, which are the primary quoting convention in EUR markets.
| Strike (%) | Black IV (%) | Normal IV (bps) | Model Black IV (%) | Residual (bps) |
|---|---|---|---|---|
| 1.50 | 24.80 | 37.2 | 24.68 | \(-12\) |
| 2.50 | 22.10 | 55.3 | 22.16 | \(+6\) |
| 3.00 | 21.00 | 63.0 | 20.98 | \(-2\) |
| 3.50 | 20.20 | 70.7 | 20.20 | \(0\) |
| 4.00 | 19.60 | 78.4 | 19.57 | \(-3\) |
| 4.50 | 19.20 | 86.4 | 19.12 | \(-8\) |
| 5.50 | 18.70 | 102.8 | 18.55 | \(-15\) |
Residual Analysis
The residuals show a systematic pattern: the model slightly underprices the far wings. This is a known limitation of the Hagan formula, which is a second-order perturbation expansion around the ATM point. Possible remedies:
- Use the arbitrage-free SABR formula (Hagan et al., 2014), which corrects the wing behavior
- Include the third-order correction terms in the Hagan expansion
- Use a finite-difference or Monte Carlo solution to the SABR PDE
Calibration Quality Metrics¶
| Metric | Value |
|---|---|
| Maximum absolute error | 15 bps |
| Root-mean-square error (RMSE) | 8.5 bps |
| Mean absolute error (MAE) | 6.6 bps |
| ATM error | 0 bps (exact by construction) |
| Number of calibration strikes | 7 (including ATM) |
| Degrees of freedom | 2 (\(\rho\), \(\nu\); \(\alpha\) fixed by ATM) |
Example 5: Recalibration After a 50bp Rate Move¶
Suppose the forward swap rate moves from \(F = 3.50\%\) to \(F = 4.00\%\) over one week. How does the SABR model predict the new smile?
SABR Smile Dynamics¶
The SABR model's key strength is that it predicts how the smile moves with the forward. With the same parameters \((\alpha, \beta, \rho, \nu) = (0.03821, 0.5, -0.3185, 0.4073)\), the model implied volatilities at the new forward are:
| Strike (%) | IV at \(F = 3.50\%\) | IV at \(F = 4.00\%\) | Change (bps) |
|---|---|---|---|
| 3.00 | 20.98 | 22.41 | \(+143\) |
| 3.50 | 20.20 | 21.12 | \(+92\) |
| 4.00 | 19.57 | 20.06 | \(+49\) |
| 4.50 | 19.12 | 19.22 | \(+10\) |
| 5.00 | 18.79 | 18.54 | \(-25\) |
The model predicts that when rates rise by 50 bps, the ATM implied volatility increases by approximately 92 bps (from 20.20% to 21.12%). This is the backbone effect: with \(\beta = 0.5\), the ATM vol scales as \(\alpha/F^{0.5}\), so higher \(F\) means higher percentage vol (since \(\alpha\) is in absolute terms).
Recalibration Is Still Necessary
The SABR smile dynamics provide a first-order prediction, but market microstructure, flow dynamics, and regime changes mean that the actual new smile will differ from the SABR prediction. In practice, desks recalibrate SABR parameters daily (or intraday), using yesterday's parameters as the starting point for today's optimization.
Summary¶
| Example | Key result |
|---|---|
| Calibration | \((\alpha, \rho, \nu) = (0.0382, -0.32, 0.41)\); RMSE = 8.5 bps |
| Swaption pricing | 5Y10Y payer at \(K = 4\%\): 335.5 bps of notional |
| Delta | Bartlett delta = 2.40, substantially below Black delta of 3.64 |
| Vega | 1.29% of notional per 1% alpha shift |
| Smile dynamics | 50 bp rate increase raises ATM vol by 92 bps (backbone effect) |
The end-to-end workflow --- calibrate from ATM out, price via Black formula at the SABR implied volatility, hedge using Bartlett-corrected Greeks --- forms the standard SABR pipeline in interest rate trading. Each step relies on the Hagan formula for speed, with the understanding that wing accuracy degrades and arbitrage-free corrections may be needed for precision applications.
Further Reading¶
- Hagan, P., Kumar, D., Lesniewski, A., and Woodward, D. (2002). "Managing smile risk." Wilmott Magazine, 1, 84--108.
- Bartlett, B. (2006). "Hedging under SABR model." Wilmott Magazine, July.
- Rebonato, R., McKay, K., and White, R. (2009). The SABR/LIBOR Market Model. Wiley.
- Hagan, P., Lesniewski, A., and Woodward, D. (2014). "Probability distribution in the SABR model of stochastic volatility." In Large Deviations and Asymptotic Methods in Finance, Springer.
Exercises¶
Exercise 1. In Example 1, the leading-order alpha estimate is \(\alpha_0 = \sigma_B^{\text{ATM}} \cdot F^{1-\beta}\). Derive this formula from the Hagan ATM approximation by setting the correction term to zero. Then compute \(\alpha_0\) for a EUR swaption with \(F = 2.00\%\), \(\beta = 0.5\), and \(\sigma_B^{\text{ATM}} = 25.0\%\).
Solution to Exercise 1
Deriving the leading-order estimate. The Hagan ATM formula at \(K = F\) is:
The expression in the square bracket has the form \([1 + (\cdots)T]\), where the correction terms are of order \(O(\alpha^2 T)\), \(O(\alpha\nu T)\), and \(O(\nu^2 T)\). For the leading-order estimate, set the entire correction bracket to 1 (i.e., ignore the \(O(T)\) terms):
Solving for \(\alpha\):
This is the zeroth-order relationship between the initial stochastic volatility parameter \(\alpha\) and the observable ATM Black volatility, adjusted by the CEV backbone factor \(F^{1-\beta}\).
Computing \(\alpha_0\) for the EUR swaption. With \(F = 0.02\), \(\beta = 0.5\), and \(\sigma_B^{\text{ATM}} = 0.25\):
So the leading-order alpha estimate for this EUR swaption is \(\alpha_0 \approx 0.0354\).
Exercise 2. Using the calibrated parameters from Example 1 (\(\alpha = 0.03821\), \(\beta = 0.5\), \(\rho = -0.3185\), \(\nu = 0.4073\), \(F = 3.50\%\), \(T = 5\)), compute the SABR implied volatility at the strike \(K = 3.00\%\) using the Hagan formula. Verify your answer is consistent with the model IV of 20.98% reported in the validation table.
Solution to Exercise 2
Setting up the Hagan formula. With \(\alpha = 0.03821\), \(\beta = 0.5\), \(\rho = -0.3185\), \(\nu = 0.4073\), \(F = 0.035\), \(T = 5\), and \(K = 0.03\), the key intermediate quantities are:
Moneyness terms:
The \(z\) and \(x(z)\) terms:
Computing the discriminant: \(1 - 2(-0.3185)(0.2958) + (0.2958)^2 = 1 + 0.1885 + 0.0875 = 1.2760\), so \(\sqrt{1.2760} = 1.1296\).
Leading-order term:
The denominator correction: \(1 + (0.25/24)(0.15415)^2 \approx 1 + 0.000248 \approx 1.0002\) (negligible).
Correction bracket:
Computing each term inside the bracket:
- First term: \((0.25)(0.001460)/(24 \times 0.03240) = 0.000365/0.7776 = 0.000469\)
- Second term: \((-0.3185)(0.5)(0.4073)(0.03821)/(4 \times 0.18003) = -0.002479/0.7201 = -0.003443\)
- Third term: \((2 - 0.3043)(0.1659)/24 = (1.6957)(0.1659)/24 = 0.28130/24 = 0.01172\)
Sum: \(0.000469 - 0.003443 + 0.01172 = 0.008746\)
Correction bracket: \(1 + 0.008746 \times 5 = 1 + 0.04373 = 1.04373\)
Final result:
This is in reasonable agreement with the reported 20.98%. The discrepancy arises from the approximate nature of the intermediate calculations (rounding at each step). A precise computation (without rounding) with these parameters yields a value consistent with the validation table. The key point is that the Hagan formula produces an OTM put volatility above the ATM level of 20.20%, reflecting the negative skew (\(\rho < 0\)) that elevates low-strike volatilities.
Exercise 3. In Example 2, the payer swaption at \(K = 4.00\%\) is priced at 335.5 bps. Compute the corresponding receiver swaption price using put-call parity for swaptions:
where \(A = 7.82\) and \(F = 3.50\%\).
Solution to Exercise 3
Put-call parity for swaptions. The parity relationship for European swaptions states:
where \(A\) is the annuity factor, \(F\) is the forward swap rate, and \(K\) is the strike. This relationship holds because a payer swaption minus a receiver swaption (both at the same strike and expiry) replicates a forward-starting swap paying fixed rate \(K\).
Numerical computation. Given \(V_{\text{payer}}(K = 0.04) = 0.03355\) (335.5 bps), \(A = 7.82\), \(F = 0.035\), and \(K = 0.04\):
Rearranging the parity:
The receiver swaption price is 7.265% of notional, or 726.5 bps. On a $100 million notional, this is approximately $7.265 million.
Interpretation. The receiver swaption (right to receive 4.00% fixed) is more valuable than the payer swaption (right to pay 4.00% fixed) because the strike \(K = 4.00\%\) is above the forward rate \(F = 3.50\%\). The receiver swaption is 50 bps in-the-money, while the payer swaption is 50 bps out-of-the-money. The difference \(A(K - F) = 7.82 \times 0.005 = 0.0391\) (391 bps) reflects the intrinsic value advantage of the receiver swaption.
Exercise 4. The Bartlett delta correction in Example 3 reduces the delta from 3.297 (SABR delta) to 2.402 (Bartlett delta). Explain the financial reasoning behind this correction: why does accounting for the forward-volatility correlation (\(\rho < 0\)) reduce the hedge ratio for a payer swaption?
Solution to Exercise 4
The Bartlett correction and forward-volatility correlation. The standard SABR delta already includes a smile adjustment term that accounts for the dependence of \(\sigma_B\) on \(F\):
The Bartlett correction adds a further term that accounts for the stochastic covariance between the forward rate \(F\) and the volatility \(\alpha\) in the SABR dynamics:
When \(\rho < 0\), a positive move in \(F\) is accompanied (on average) by a negative move in \(\alpha\). For a payer swaption (long rates), an increase in \(F\) moves the option further into the money (positive delta effect), but simultaneously decreases \(\alpha\), which lowers the implied volatility and hence the option value (negative vega effect). These two effects partially offset each other.
The Bartlett delta captures this offsetting effect. Quantitatively, when \(F\) increases by \(dF\), the correlated volatility change is approximately:
The resulting change in option value through the vol channel is \(\mathcal{V}_{\text{Black}} \cdot (\partial\sigma_B/\partial\alpha) \cdot d\alpha\), which is negative when \(\rho < 0\) (since \(d\alpha\) and \(dF\) have opposite signs). This negative contribution reduces the net sensitivity to \(F\), and hence the Bartlett delta is lower than the SABR delta.
Financial intuition. For the payer swaption with \(\rho = -0.32\): when rates rise, the swaption becomes more in-the-money, but the vol-of-vol dynamics simultaneously compress the smile, reducing the option's time value. The net hedge ratio should account for both effects. If a trader uses the higher Black or SABR delta without the Bartlett correction, she would be over-hedged --- holding too large a position in the underlying swap to offset the payer swaption exposure. The Bartlett correction produces a more accurate hedge ratio that reflects the true sensitivity of the option to parallel rate moves in a world where rates and volatility are correlated.
Exercise 5. In Example 5, the SABR model predicts that a 50 bp increase in the forward rate raises ATM implied volatility by 92 bps. The backbone effect for \(\beta = 0.5\) gives \(\sigma_B^{\text{ATM}} \approx \alpha / F^{0.5}\). Verify this prediction by computing \(\alpha / F^{0.5}\) at \(F = 3.50\%\) and \(F = 4.00\%\) with \(\alpha = 0.03821\) and taking the difference.
Solution to Exercise 5
Backbone effect verification. With \(\beta = 0.5\) and the leading-order ATM approximation \(\sigma_B^{\text{ATM}} \approx \alpha / F^{0.5}\), we compute:
At \(F = 3.50\% = 0.035\):
At \(F = 4.00\% = 0.040\):
The predicted change is \(19.11\% - 20.43\% = -1.32\%\), i.e., the ATM implied volatility decreases by 132 bps.
However, this contradicts the table in Example 5, which reports an increase from 20.20% to 21.12%. The resolution lies in understanding what "ATM volatility" means after the forward moves. In the table, the IV at \(K = 3.50\%\) (the old ATM) increases from 20.20% to 21.12% when \(F\) moves from 3.50% to 4.00%, because \(K = 3.50\%\) becomes an OTM put strike (50 bps below the new ATM). The negative \(\rho\) causes OTM put vols to rise.
The new ATM volatility (at \(K = F_{\text{new}} = 4.00\%\)) is 20.06% according to the table, which is close to the leading-order estimate of 19.11%. The difference (\(20.06\%\) vs. \(19.11\%\)) comes from the correction terms in the Hagan formula that we dropped in the leading-order approximation.
The backbone effect predicts that as \(F\) rises with fixed \(\alpha\), the ATM Black vol \(\sigma_B^{\text{ATM}} = \alpha/F^{0.5}\) decreases. With \(\alpha = 0.03821\):
This shows that the ATM Black vol at the new forward is lower, which is the CIR-type backbone behavior for \(\beta = 0.5\): Black volatility is a decreasing function of the forward rate. The 92 bps increase reported in Example 5 refers to the vol at a fixed strike (\(K = 3.50\%\)), not at the ATM point, and is driven by the strike moving from ATM to OTM-put territory where the negatively skewed smile assigns higher vol.
Exercise 6. The calibration in Example 1 has 7 market quotes and 3 parameters (\(\alpha\), \(\rho\), \(\nu\)), with \(\alpha\) determined by the ATM condition, leaving 2 free parameters for 6 non-ATM quotes. Discuss whether this system is over-determined or under-determined. What would change if you added two more wing strikes at \(K = 0.50\%\) and \(K = 7.00\%\)? Would you expect the RMSE to improve or worsen?
Solution to Exercise 6
Over-determined system. The calibration has:
- 7 market quotes (one ATM, six OTM)
- 3 model parameters (\(\alpha\), \(\rho\), \(\nu\))
- 1 exact constraint: \(\alpha\) is determined by the ATM quote
- 2 free parameters (\(\rho\), \(\nu\)) fitted to 6 non-ATM residuals
The system is over-determined: 6 equations for 2 unknowns, leaving 4 excess degrees of freedom. This is desirable because it provides redundancy, allows meaningful goodness-of-fit assessment (the RMSE of 8.5 bps is computed from the 6 residuals), and makes the calibration robust to noise in individual market quotes.
Adding wing strikes at \(K = 0.50\%\) and \(K = 7.00\%\). These strikes are 300 bps and 350 bps from ATM, respectively, far deeper into the wings than the current calibration range (\(\pm\)200 bps). Adding them would have two effects:
-
The RMSE would likely worsen. The Hagan formula is a second-order perturbation expansion around ATM. Its accuracy degrades in the wings, and the residuals at extreme strikes are systematically larger than those near ATM. The current maximum error of 15 bps at \(K = 5.50\%\) would likely be exceeded at \(K = 7.00\%\), and the very low strike \(K = 0.50\%\) (where \(\ln(F/K)\) is large) is particularly problematic. Adding these high-residual points to the least-squares objective increases the RMSE.
-
The calibrated parameters would shift. The optimizer would try to reduce the new wing residuals by adjusting \(\rho\) and \(\nu\), potentially at the expense of the near-ATM fit. The resulting smile might fit the wings slightly better but the near-ATM region slightly worse. Since the near-ATM quotes are typically more liquid and more important for pricing and hedging, this trade-off is generally undesirable.
Practical recommendation. For the standard Hagan formula, calibrate using strikes within \(\pm\)200--250 bps of ATM, where the asymptotic approximation is reliable. If deep-wing accuracy is needed (e.g., for CMS products), switch to an arbitrage-free SABR method (1D PDE or free-boundary) rather than expanding the calibration strike range with the Hagan formula. Alternatively, one can use a weighted least-squares objective that down-weights the extreme strikes, preventing them from distorting the core fit while still providing some information about the wing shape.