Caplet Pricing and Black's Formula¶
The caplet is the fundamental building block of the interest rate cap market. In the LIBOR Market Model, each forward LIBOR rate is a martingale under its natural forward measure, and its lognormal dynamics lead directly to Black's formula for caplet prices. This section derives the formula from first principles, explains the relationship between caplets and caps, and covers the market conventions for quoting implied volatilities.
Caplet Payoff and Market Convention¶
Definition¶
A caplet on the forward rate \(L_i(t)\) for the accrual period \([T_i, T_{i+1}]\) with strike \(K\) pays
at time \(T_{i+1}\), where \(\delta_i = T_{i+1} - T_i\) is the day count fraction and \(L_i(T_i)\) is the LIBOR rate observed (fixed) at \(T_i\).
Caps as Portfolios of Caplets¶
An interest rate cap with tenor \([T_0, T_n]\) and strike \(K\) is a portfolio of caplets:
Each caplet protects the holder against the rate \(L_i(T_i)\) exceeding \(K\) during the corresponding accrual period. Similarly, a floor is a portfolio of floorlets, each paying \(\delta_i \max(K - L_i(T_i), 0)\) at \(T_{i+1}\).
Cap--Floor Parity¶
This follows from \(\max(L - K, 0) - \max(K - L, 0) = L - K\).
Forward LIBOR Dynamics¶
The Natural Measure for Caplet Pricing¶
The forward LIBOR rate \(L_i(t)\) for period \([T_i, T_{i+1}]\) is defined by
Under the \(T_{i+1}\)-forward measure \(\mathbb{Q}^{T_{i+1}}\) (numéraire \(P(t, T_{i+1})\)), the forward rate \(L_i(t)\) is a martingale. This follows because \(\delta_i L_i(t) P(t, T_{i+1}) = P(t, T_i) - P(t, T_{i+1})\) is the price of a tradable portfolio, so dividing by the numéraire \(P(t, T_{i+1})\) produces a martingale.
Lognormal Dynamics¶
In the standard LIBOR Market Model, the forward rate follows geometric Brownian motion under \(\mathbb{Q}^{T_{i+1}}\):
where \(\sigma_i(t)\) is the instantaneous volatility of \(L_i\) and \(W_i^{T_{i+1}}\) is a Brownian motion under \(\mathbb{Q}^{T_{i+1}}\). The drift is zero because \(L_i\) is a martingale.
Solution¶
Integrating the SDE:
The terminal rate \(L_i(T_i)\) is lognormally distributed under \(\mathbb{Q}^{T_{i+1}}\):
where the integrated variance is
Derivation of Black's Formula¶
Caplet Pricing Under the Forward Measure¶
The caplet price at time \(0\) is
The factor \(P(0, T_{i+1})\) comes from the numéraire change: \(V_0 = P(0, T_{i+1}) \, \mathbb{E}^{\mathbb{Q}^{T_{i+1}}}[V_{T_{i+1}} / P(T_{i+1}, T_{i+1})]\) with \(P(T_{i+1}, T_{i+1}) = 1\).
Evaluating the Expectation¶
Since \(L_i(T_i)\) is lognormal under \(\mathbb{Q}^{T_{i+1}}\) with \(\mathbb{E}^{\mathbb{Q}^{T_{i+1}}}[L_i(T_i)] = L_i(0)\) (martingale property), the expectation of \(\max(L_i(T_i) - K, 0)\) is computed by the standard Black--Scholes lognormal integral:
where \(N(\cdot)\) is the standard normal CDF and
Black's Caplet Formula¶
This is Black's formula (1976) applied to caplets. The key insight is that the forward measure eliminates the stochastic discount factor, and the lognormal martingale property of \(L_i\) produces the Black--Scholes--type result directly.
Floorlet Formula¶
By analogous reasoning (or by put--call parity):
Implied Volatility¶
Black Implied Volatility¶
The Black implied volatility \(\sigma_i^{\text{Black}}\) is the constant volatility that, when substituted into Black's formula, reproduces the market caplet price:
For constant instantaneous volatility \(\sigma_i(t) = \sigma_i\), the Black implied volatility equals the instantaneous volatility: \(\sigma_i^{\text{Black}} = \sigma_i\).
For time-dependent volatility, the Black implied volatility is an average:
Flat Volatility vs. Spot Volatility¶
Markets quote cap prices using two volatility conventions:
- Flat (cap) volatility \(\sigma^{\text{flat}}\): A single volatility applied to all caplets within the cap, chosen so that the resulting cap price matches the market
- Spot (caplet) volatility \(\sigma_i^{\text{spot}}\): The individual Black implied volatility for each caplet
The flat volatility is the market quote convention; spot volatilities are extracted by bootstrapping (stripping) the cap curve.
Stripping Caplet Volatilities¶
Given cap prices \(C_1, C_2, \ldots\) for increasing maturities:
- The first cap (single caplet) directly gives \(\sigma_1^{\text{spot}}\)
- For cap with maturity \(T_{k+1}\): solve for \(\sigma_k^{\text{spot}}\) from
where all \(\sigma_i^{\text{spot}}\) for \(i < k\) are already known.
This is a sequential bootstrap procedure, analogous to yield curve stripping.
Worked Example¶
Caplet Pricing Calculation
Parameters:
- \(T_i = 1.0\) (fixing date), \(T_{i+1} = 1.25\) (payment date), \(\delta_i = 0.25\)
- Forward rate: \(L_i(0) = 5.0\% = 0.05\)
- Strike: \(K = 4.5\% = 0.045\)
- Black implied vol: \(\sigma_i^{\text{Black}} = 20\%\)
- Discount factor: \(P(0, 1.25) = 0.9388\)
- Notional: $1,000,000
Step 1: Integrated volatility: \(v_i = 0.20 \times \sqrt{1.0} = 0.20\).
Step 2: \(d_1 = [\ln(0.05/0.045) + 0.5 \times 0.04] / 0.20 = [0.10536 + 0.02] / 0.20 = 0.6268\).
Step 3: \(d_2 = 0.6268 - 0.20 = 0.4268\).
Step 4: \(N(0.6268) = 0.7346\), \(N(0.4268) = 0.6653\).
Step 5: \(\text{Caplet} = 0.25 \times 0.9388 \times [0.05 \times 0.7346 - 0.045 \times 0.6653]\).
Step 6: \(= 0.2347 \times [0.03673 - 0.02994] = 0.2347 \times 0.00679 = 0.001594\).
Result: The caplet is worth 0.1594% of notional, or $1,594 per $1,000,000.
Volatility Smile and Extensions¶
Limitations of Black's Formula¶
Black's formula assumes lognormal forward rates, which implies:
- No volatility smile/skew: All strikes have the same implied volatility
- Non-negative rates: \(L_i(T_i) > 0\) almost surely
Market data shows both a volatility smile (OTM caplets trade at higher implied vol than ATM) and, since 2014, negative LIBOR/EURIBOR rates in some currencies.
SABR Model for Caplets¶
The SABR model extends the dynamics:
with \(0 \leq \beta \leq 1\). The Hagan et al. approximation provides an analytical formula for the implied volatility as a function of strike, capturing smile and skew.
Normal (Bachelier) Model¶
For negative rate environments, the Bachelier model assumes normal (rather than lognormal) dynamics:
The Bachelier caplet formula is
where \(d = (L_i(0) - K) / (\sigma_i^{(n)} \sqrt{T_i})\) and \(\phi(\cdot)\) is the standard normal PDF.
Greeks for Caplets¶
Delta¶
Vega¶
Gamma¶
Key Takeaways¶
- Under the \(T_{i+1}\)-forward measure, the forward LIBOR rate \(L_i(t)\) is a martingale with lognormal dynamics
- Black's caplet formula: \(\text{Caplet}_i = \delta_i P(0,T_{i+1})[L_i(0)N(d_1) - KN(d_2)]\), with \(d_1, d_2\) depending on the integrated variance \(v_i^2 = \int_0^{T_i} \sigma_i^2\,dt\)
- The formula is exact in the LMM (not an approximation) because each caplet depends on a single forward rate under its natural measure
- Flat cap volatility is the market quote convention; spot caplet volatility is extracted by bootstrapping
- Extensions (SABR, Bachelier) handle the smile/skew and negative rates that the basic lognormal model cannot capture
Further Reading¶
- Black (1976), "The Pricing of Commodity Contracts"
- Brace, Gatarek & Musiela (1997), "The Market Model of Interest Rate Dynamics"
- Brigo & Mercurio (2006), Interest Rate Models: Theory and Practice, Chapter 6
- Hagan et al. (2002), "Managing Smile Risk" (SABR model)
Exercises¶
Exercise 1. A caplet on 3-month LIBOR has the following parameters: \(L_i(0) = 3.8\%\), \(K = 4.0\%\), \(\sigma_i^{\text{Black}} = 24\%\), \(T_i = 2\) years, \(\delta_i = 0.25\), and \(P(0, T_{i+1}) = 0.925\). Compute \(d_1\), \(d_2\), and the caplet price. Is this caplet in-the-money or out-of-the-money?
Solution to Exercise 1
Parameters: \(L_i(0) = 0.038\), \(K = 0.040\), \(\sigma_i^{\text{Black}} = 0.24\), \(T_i = 2\), \(\delta_i = 0.25\), \(P(0, T_{i+1}) = 0.925\).
Step 1: Integrated volatility.
Step 2: Compute \(d_1\).
Step 3: Compute \(d_2\).
Step 4: Normal CDF values.
Step 5: Caplet price.
In-the-money or out-of-the-money? Since \(L_i(0) = 3.8\% < K = 4.0\%\), the caplet is out-of-the-money. The forward rate is below the strike, so the caplet would not be exercised if rates remained at their current level.
Exercise 2. The market quotes flat cap volatilities for 2Y, 3Y, and 5Y caps as 19.5%, 20.2%, and 21.0% respectively, with annual caplets. Describe the bootstrapping procedure to extract spot caplet volatilities from these flat cap quotes. If the 2Y caplet vol is 19.5%, what equation determines the 3Y spot caplet vol?
Solution to Exercise 2
Bootstrapping procedure for spot caplet volatilities:
The idea is to decompose cap prices into individual caplet prices and extract the volatility of each caplet sequentially.
Step 1: The 2Y cap consists of a single annual caplet (paying at year 2 based on the 1Y-2Y forward rate). Therefore:
Step 2: The 3Y cap consists of two annual caplets (the 1Y-2Y caplet and the 2Y-3Y caplet). The 3Y cap price satisfies:
We also know that \(C_{3Y}\) can be computed using the flat volatility:
Since \(\sigma_1^{\text{spot}} = 19.5\%\) is already known, we solve for \(\sigma_2^{\text{spot}}\) from:
The right-hand side is computable from Black's formula with known inputs. Then \(\sigma_2^{\text{spot}}\) is found by inverting Black's formula for the second caplet.
Step 3: Similarly, for the 5Y cap, which adds caplets at years 3-4 and 4-5:
Since \(\sigma_1^{\text{spot}}\) and \(\sigma_2^{\text{spot}}\) are known, and the 5Y cap price is computed from the flat vol of 21.0%, we can extract \(\sigma_3^{\text{spot}}\) and \(\sigma_4^{\text{spot}}\). However, with annual caplets and no intermediate cap quotes between 3Y and 5Y, additional assumptions or interpolation may be needed to separate the two individual caplet volatilities.
In practice, if cap quotes are available at every annual maturity (2Y, 3Y, 4Y, 5Y, ...), each additional maturity provides one equation for one unknown caplet volatility.
Exercise 3. Show that in the LMM, the Black caplet formula is exact (not an approximation). Specifically, explain why the forward rate \(L_i(t)\) is exactly lognormal under \(\mathbb{Q}^{T_{i+1}}\), even though \(L_i(t)\) interacts with other forward rates under the terminal measure. What property of the \(T_{i+1}\)-forward measure makes this possible?
Solution to Exercise 3
Why the Black caplet formula is exact in the LMM:
In the LMM, the forward LIBOR rate \(L_i(t)\) is specified to follow:
under the \(T_{i+1}\)-forward measure \(\mathbb{Q}^{T_{i+1}}\). This is exactly geometric Brownian motion with zero drift, making \(L_i(T_i)\) exactly lognormal:
The caplet price is:
Since \(L_i(T_i)\) is exactly lognormal, this expectation is computed exactly by the Black--Scholes lognormal integral, yielding Black's formula without any approximation.
The key property that makes this possible is the measure choice: under \(\mathbb{Q}^{T_{i+1}}\), the forward rate \(L_i(t)\) is a martingale. This is its natural measure --- the measure associated with its payment date.
Even though under other measures (terminal, spot), \(L_i(t)\) interacts with other forward rates through state-dependent drifts, the caplet depends only on the marginal distribution of \(L_i(T_i)\). By pricing under \(\mathbb{Q}^{T_{i+1}}\), all cross-rate interactions are absorbed into the measure change, and \(L_i\) evolves independently with pure lognormal dynamics.
This is fundamentally different from the Hull--White or other short-rate models, where the forward rate is a derived (nonlinear) function of the state variable, and its distribution must be computed through additional transformations.
Exercise 4. Derive the caplet vega \(\mathcal{V}_i = \delta_i P(0, T_{i+1}) L_i(0) \sqrt{T_i}\,\phi(d_1)\) by differentiating the Black caplet formula with respect to \(\sigma_i^{\text{Black}}\). Use this to estimate the price change of the caplet in Exercise 1 if the volatility increases by 1 percentage point (from 24% to 25%).
Solution to Exercise 4
Deriving the caplet vega:
The caplet price is \(\text{Caplet}_i = \delta_i P(0,T_{i+1})\bigl[L_i(0)N(d_1) - KN(d_2)\bigr]\), where \(d_1 = [\ln(L_i(0)/K) + \frac{1}{2}\sigma^2 T_i]/(\sigma\sqrt{T_i})\) and \(d_2 = d_1 - \sigma\sqrt{T_i}\), with \(\sigma = \sigma_i^{\text{Black}}\).
Differentiating with respect to \(\sigma\):
We use the key identity \(L_i(0)\phi(d_1) = K\phi(d_2)\) (which holds because \(d_1 - d_2 = \sigma\sqrt{T_i}\) and \(\phi(d_1)/\phi(d_2) = \exp(-\frac{1}{2}(d_1^2 - d_2^2)) = K/L_i(0) \cdot \exp(\text{terms})\) --- more precisely, from \(L_i(0)e^{-d_1^2/2} = Ke^{-d_2^2/2}\), which follows from \(d_1^2 - d_2^2 = (d_1+d_2)\sigma\sqrt{T_i} = 2\ln(L_i(0)/K)\)).
Using \(L_i(0)\phi(d_1) = K\phi(d_2)\):
Since \(d_2 = d_1 - \sigma\sqrt{T_i}\):
Therefore:
Numerical estimate for Exercise 1 parameters: Using \(L_i(0) = 0.038\), \(T_i = 2\), \(d_1 = 0.01859\), \(\phi(0.01859) \approx 0.3989\):
For a 1 percentage point increase in volatility (\(\Delta\sigma = 0.01\)):
This is approximately 0.005% of notional, or about $49.57 per $1,000,000 notional. The caplet price increases from approximately 0.0997% to approximately 0.1047% of notional.
Exercise 5. Put-call parity for caplets and floorlets states that \(\text{Caplet} - \text{Floorlet} = \delta_i P(0, T_{i+1})(L_i(0) - K)\). Verify this identity algebraically using the Black formulas for caplets and floorlets. Then compute the floorlet price corresponding to Exercise 1.
Solution to Exercise 5
Algebraic verification of put--call parity:
The Black caplet formula is:
The Black floorlet formula is:
Computing the difference:
Using \(N(x) + N(-x) = 1\):
This confirms the put--call parity identity.
Floorlet price for Exercise 1: Using the parity:
The floorlet is worth approximately 0.146% of notional, which is larger than the caplet (0.0997%) because the floorlet is in-the-money (\(K = 4\% > L_i(0) = 3.8\%\)).
Exercise 6. A trader observes that the ATM caplet implied volatility for 1-year expiry is 18% while the 10-year expiry is 24%. The forward rates are roughly constant at 4%. Compare the caplet prices per unit notional and per basis point of vega at the two maturities. Which caplet is more sensitive to volatility changes in absolute terms?
Solution to Exercise 6
1-year expiry caplet (\(T_i = 1\)):
At-the-money: \(K = L_i(0) = 0.04\), so \(\ln(L_i(0)/K) = 0\).
Caplet price (per unit notional, with \(\delta = 0.25\) and \(P(0, T_{i+1}) \approx 0.96\)):
Vega:
10-year expiry caplet (\(T_i = 10\)):
Caplet price (with \(P(0, T_{i+1}) \approx 0.67\)):
Vega:
Comparison:
- The 10-year caplet price is about 2.9 times the 1-year price
- The 10-year vega is about 2.1 times the 1-year vega
- The 10-year caplet is more sensitive to volatility changes in absolute terms because vega scales with \(\sqrt{T_i}\): longer maturities have more time for volatility to affect the outcome, increasing the absolute price sensitivity
Exercise 7. The SABR model extends Black's formula to capture the volatility smile. In the SABR framework, the ATM Black volatility is approximately \(\sigma^{\text{Black}}(K = F) \approx \alpha / F^{1-\beta}\), where \(\alpha\) is the initial stochastic vol level and \(\beta\) controls the backbone. For \(\beta = 0.5\), \(\alpha = 0.03\), and \(F = 4\%\), compute the approximate ATM Black vol. How does this compare to the Bachelier (normal) vol \(\sigma_N \approx \alpha\,F^\beta\)?
Solution to Exercise 7
ATM Black volatility in the SABR model:
The ATM approximation is \(\sigma^{\text{Black}}(K = F) \approx \alpha / F^{1-\beta}\).
With \(\beta = 0.5\), \(\alpha = 0.03\), \(F = 0.04\):
Bachelier (normal) volatility:
The ATM normal vol approximation is \(\sigma_N \approx \alpha\,F^\beta\):
Comparison and interpretation:
The Black (lognormal) volatility is 15% and the Bachelier (normal) volatility is 60 basis points. These are different expressions of the same underlying stochastic process:
- Black vol describes proportional (percentage) moves: a 15% lognormal vol means the forward rate moves by about 15% of its level per year
- Normal vol describes absolute moves: a 60 bps normal vol means the forward rate moves by about 60 basis points per year
- Consistency check: \(\sigma_N \approx \sigma^{\text{Black}} \times F = 0.15 \times 0.04 = 0.006\), confirming \(\sigma_N = 60\) bps
The SABR parameter \(\beta\) interpolates between the normal model (\(\beta = 0\), where \(\sigma^{\text{Black}} = \alpha/F\) diverges as \(F \to 0\)) and the lognormal model (\(\beta = 1\), where \(\sigma^{\text{Black}} = \alpha\) is constant in \(F\)). With \(\beta = 0.5\), the model produces a "square-root" backbone, where ATM Black vol scales as \(F^{-0.5}\) --- this captures the empirical observation that Black vol tends to increase as rates decrease.