Valuation of Interest Rate Derivatives › Swaptions
Quantitative FinanceAll chapters Valuation of Interest Rate Derivatives › SwaptionsOne section · Sections in this chapter4 / 13 ↓
Reading tools Definitions & inline links
Choose your expertise level to adjust how many terms are explained. Beginners see more tooltips, experts see fewer to maintain reading flow. Hover over underlined terms for instant definitions.
Article links
Make inline references clickable
A swaption is an option to enter into an interest rate swap. While caps and floors provide protection against rate movements, swaptions give you a single decision point: at option expiry, you may enter a swap at pre-agreed terms or walk away. This structure is particularly useful when the decision about interest rate exposure needs to be made at a specific future date.
Swaptions come in two varieties:
- Payer swaption: The right to enter a payer swap (pay fixed, receive floating)
- Receiver swaption: The right to enter a receiver swap (receive fixed, pay floating)
A payer swaption becomes valuable when rates rise: you can lock in paying a below-market fixed rate while receiving market floating rates. Conversely, a receiver swaption becomes valuable when rates fall: you can lock in receiving an above-market fixed rate.
Swaptions are typically quoted by their option maturity and the tenor of the underlying swap. A "2y5y payer swaption" gives you the right, in 2 years, to enter a 5-year payer swap at a predetermined fixed rate. The first number indicates how long you must wait before making the exercise decision, while the second indicates the duration of the swap that begins upon exercise.
Swaption Payoff Structure
To understand swaption payoffs, consider what happens at the option's expiration date. You must decide whether to exercise, which means entering the underlying swap at the pre-agreed strike rate. This decision depends on comparing the strike rate to the prevailing market swap rate.
At expiration, you will exercise if the prevailing swap rate exceeds the strike rate. The swap you enter will have positive value because you'll pay below-market fixed rates while receiving market floating rates. The payoff equals the present value of the swap you receive. If the market swap rate is below the strike, exercise would mean paying an above-market rate, so you let the option expire worthless.
For a payer swaption with strike expiring at time , if the swap rate at expiration is :
where:
- : annuity factor at time
- : swap rate at time
- : strike rate
The structure of this payoff resembles a call option on the swap rate, with the annuity factor serving as a conversion mechanism between rates and dollars.
is the annuity factor, representing the present value at time of receiving a unit rate payment (100%) on each swap payment date (note that PVBP is typically this value scaled by 0.0001):
where:
- : number of payment periods in the swap
- : day count fraction for the -th period
- : discount factor from time to payment date
The annuity factor converts rate differences into dollar values, accounting for the timing and discounting of all swap payments. To understand why this conversion is necessary, recall that a swap rate difference of 1% does not immediately translate to 1% of notional in value. Instead, that 1% rate differential must be applied to each payment period, adjusted by the day count fraction, and then discounted back to the exercise date. The annuity factor captures all of these adjustments in a single number.


Black's Model for Swaptions
Having established the payoff structure, we now turn to valuation. We price swaptions by treating the forward swap rate as the underlying asset and applying Black's formula.
Under Black's model, the swap rate is assumed to follow a lognormal distribution under the annuity measure. This measure represents market risk-neutral expectations using the annuity stream as the unit of account. Under this measure, the forward swap rate is a martingale, meaning its expected future value equals its current value. This gives pricing formulas analogous to those for caps:
The price of a payer swaption with strike , option expiry , and notional is:
where:
- : notional principal
- : cumulative standard normal distribution function
- : current annuity factor
- : current forward swap rate
- : strike rate
- : time to option expiration
- : swaption volatility
- : measures how many standard deviations the forward swap rate is above the strike, adjusted for time and volatility
- : a risk-adjusted measure accounting for volatility over the option's life
- : expected value of the swap rate, conditional on exercise
- : strike rate weighted by the probability of exercise
For a receiver swaption:
where:
- : notional principal
- : current annuity factor
- : strike rate
- : current forward swap rate
- : swaption volatility
- : cumulative normal distribution values for the receiver swaption payoff
The swaption formula is intentionally similar to the caplet formula. In both cases, we have an option on an interest rate, discounted appropriately and multiplied by a factor that converts rates to dollars. For caplets, that factor combines the notional, day count fraction, and discount factor. For swaptions, it combines the notional and annuity factor. The annuity factor plays the role of discounting because the swaption payoff is effectively denominated in units of the annuity stream.
The volatility parameter in the swaption formula represents the implied volatility of the forward swap rate over the option's life. Unlike caplet volatilities, which vary by fixing date, swaption volatilities vary by both option expiry and underlying swap tenor. A 1-year option into a 5-year swap may have different volatility than a 2-year option into a 10-year swap, which reflects the market's assessment of uncertainty for different rate instruments.
def black_swaption_price(
forward_swap_rate,
strike,
volatility,
option_expiry,
annuity_factor,
notional=1.0,
is_payer=True,
):
"""
Price a European swaption using Black's model.
Parameters:
- forward_swap_rate: Current forward swap rate
- strike: Strike rate for the swap
- volatility: Implied volatility for the swaption
- option_expiry: Time to option expiration (years)
- annuity_factor: Present value of 1bp on the underlying swap
- notional: Notional principal
- is_payer: True for payer swaption, False for receiver
"""
d1 = (
np.log(forward_swap_rate / strike) + 0.5 * volatility**2 * option_expiry
) / (volatility * np.sqrt(option_expiry))
d2 = d1 - volatility * np.sqrt(option_expiry)
if is_payer:
price = (
notional
* annuity_factor
* (forward_swap_rate * norm.cdf(d1) - strike * norm.cdf(d2))
)
else:
price = (
notional
* annuity_factor
* (strike * norm.cdf(-d2) - forward_swap_rate * norm.cdf(-d1))
)
return price
def calculate_annuity_factor(
payment_dates, discount_factors, day_count_fractions
):
"""Calculate the annuity factor for a swap."""
return sum(
dcf * df for dcf, df in zip(day_count_fractions, discount_factors)
)Let's price a 1-year option into a 5-year swap:
# 1y5y swaption parameters
option_expiry = 1.0 # 1 year option
swap_tenor = 5.0 # 5 year underlying swap
notional = 10_000_000 # $10 million
strike = 0.045 # 4.5% strike
swaption_vol = 0.25 # 25% swaption volatility
flat_rate = 0.04 # 4% flat yield curve
# Calculate forward swap rate (equals spot rate in flat curve)
forward_swap_rate = flat_rate
# Calculate annuity factor for the underlying swap
# Swap starts at year 1, payments at years 1.5, 2, 2.5, ..., 6 (semi-annual)
swap_payment_dates = np.arange(1.5, 6.5, 0.5)
swap_discount_factors = np.exp(-flat_rate * swap_payment_dates)
swap_day_count_fractions = np.full(len(swap_payment_dates), 0.5)
annuity_factor = calculate_annuity_factor(
swap_payment_dates, swap_discount_factors, swap_day_count_fractions
)
# Price the swaptions
payer_swaption_price = black_swaption_price(
forward_swap_rate=forward_swap_rate,
strike=strike,
volatility=swaption_vol,
option_expiry=option_expiry,
annuity_factor=annuity_factor,
notional=notional,
is_payer=True,
)
receiver_swaption_price = black_swaption_price(
forward_swap_rate=forward_swap_rate,
strike=strike,
volatility=swaption_vol,
option_expiry=option_expiry,
annuity_factor=annuity_factor,
notional=notional,
is_payer=False,
)1y5y Swaption Valuation ================================================== Option Expiry: 1.0 year Underlying Swap: 5.0 years Strike Rate: 4.50% Forward Swap Rate: 4.00% Swaption Volatility: 25.00% Notional: $10,000,000 Annuity Factor: 4.310644 Payer Swaption Price: $94,205.32 Receiver Swaption Price: $309,737.53 Parity Check: Payer - Receiver: $-215,532.21 Forward Swap Value: $-215,532.21
Notice that the payer swaption is out of the money (forward rate 4% < strike 4.5%), so it's worth less than the receiver swaption. The difference equals the value of a forward-starting payer swap at the strike rate, verifying put-call parity for swaptions:
where:
- : present value of the underlying forward swap
This parity relationship mirrors cap-floor parity and serves the same purposes: it provides consistency checks for pricing and creates arbitrage bounds that keep markets aligned.
Settlement Types
Swaptions can settle in two ways:
- Physical settlement: You enter the actual swap upon exercise
- Cash settlement: You receive a cash payment equal to the swap's value
Cash-settled swaptions require agreement on how to value the swap at exercise. A common convention uses an ISDA-standard discounting method based on mid-market swap rates. The choice of settlement type can matter during market stress, when differences between cash settlement formulas and actual swap values may emerge.
Bermudan and American Swaptions
While European swaptions (exercisable only at expiry) are most liquid, Bermudan swaptions allow exercise on multiple specified dates, typically coinciding with swap payment dates. A Bermudan swaption exercisable into a 10-year swap might allow exercise at years 1, 2, 3, or 4, with the underlying swap maturing at year 11 regardless of exercise date.
The Bermudan feature adds significant complexity to valuation. At each potential exercise date, you must compare the immediate exercise value to the value of waiting and potentially exercising later. This comparison requires knowing the continuation value, which depends on what might happen in all future scenarios. The problem becomes path-dependent: the optimal exercise decision today depends on the entire history of rate movements that led to the current state.
Bermudan swaptions cannot be priced with Black's model because early exercise introduces path-dependency. They require more sophisticated techniques such as:
- Lattice methods: Building interest rate trees as discussed in Chapter 14, with backward induction to determine optimal exercise
- Monte Carlo with regression: Using least-squares Monte Carlo (Longstaff-Schwartz) to approximate the continuation value
We'll see calibration techniques for these models in the upcoming Chapter 21 on calibration and parameter estimation.