Caps, floors and swaptions
Pricing rate optionality from forwards, annuities and explicit volatility conventions
01Decompose caps and floors into discounted caplets and floorlets on exact accrual periods.
02Price European swaptions from the forward swap rate and fixed-leg annuity.
03Distinguish normal, lognormal and shifted-lognormal volatility conventions.
04Connect quote calibration, smile risk, negative rates and settlement conventions to desk P&L.
Read the cash-flow timeline first.
A rate option is an option on a future fixing or forward swap rate, but its cash value is carried by a discount factor or swap annuity. The quote is incomplete until the volatility coordinate and settlement convention are named.
A cap is a strip: every caplet has its own fixing date, accrual, forward and discount weight.
A European swaption is economically an option on a par swap rate multiplied by the underlying fixed-leg annuity.
Normal and lognormal volatilities are different coordinates; converting by reusing the same number is not valid.
Start from cash flows and quotation.
Caps and swaptions supply liquid volatility coordinates for hedging, callable products and calibration of short-rate or market models.
caplets and floorlets
caps and floors
payer and receiver swaptions
collars and callable structures
State currency, index, expiry, tenor, strike, forward, annuity or discount weight, premium/vol quote, normal/lognormal/shifted convention, shift, settlement and collateral curves.
Value each dated cash flow under explicit conventions.
Caplet under Black–76
The option value is a forward-option payoff weighted by the payment-date discount factor and accrual.
Open in AnalyticsEuropean payer swaption
The fixed-leg annuity converts the option on the forward swap rate into currency PV.
Open in AnalyticsFull derivation
From swap exercise value to the annuity measure
Write the exercise-date swap value, factor out its fixed-leg annuity and take the expectation under the annuity numeraire.
- 01
Value the underlying swap
At expiry, a payer swap has value equal to the fixed-leg annuity times the excess of the par swap rate over strike.
- 02
Apply the option payoff
The payer swaption retains only positive exercise value.
- 03
Choose the annuity numeraire
Under the annuity measure, the forward swap rate is a martingale within the model assumptions.
- 04
Select the quote distribution
Lognormal Black–76, shifted lognormal or normal Bachelier determines the option expectation and admissible rate domain.
- 05
Reprice the quoted premium
Use the exact forward, annuity, settlement and strike associated with the market quote.
Rate-option pricing is a numeraire-weighted forward option; the convention and cash-flow geometry are as important as the closed-form formula.
Inputs
F_i: forward fixingK: strikeA(0): swap annuityN: notional\alpha_i: accrual fraction\sigma_N,\sigma_{LN}: normal/lognormal volatility
Assumptions and limits
- Black and Bachelier prescribe different dynamics and tail shapes.
- A single volatility does not represent strike smile or term structure.
- Cash and physical settlement can use different annuity definitions and exercise mechanics.
Normal-model payer value
Bachelier remains defined through zero and negative forwards; its volatility is quoted in absolute rate units.
Open in AnalyticsBuild, calibrate, and reprice the contract.
Build discount and projection curves, calculate forwards/annuities on exact schedules, apply the declared normal or (shifted) lognormal formula, and return premium plus point vega and parity diagnostics.
Calibrate a surface by expiry, tenor and strike/delta with bid/ask-aware weights. Preserve quote convention, shift and interpolation policy; test residuals in both premium and quoted-volatility space.
Implementation with current QuantLib
Use Cap/Floor and Swaption instruments with explicit indexes, schedules, settlement and engines. Volatility structures must carry Normal, ShiftedLognormal or Lognormal type and displacement; calibration helpers must reproduce their own premiums.
API authority: upstream QuantLib reference pinned in the source registry.06PYTHON IMPLEMENTATIONOpen the implementation and checks.
- Build schedules and curve weights before invoking the option kernel.
- Keep volatility convention and shift in typed inputs.
- Return parity, intrinsic/time value and point-vega diagnostics.
- Test zero-volatility, ATM, negative-rate and settlement boundaries.
Black and normal payer swaption comparison
Price one annuity-weighted payoff in two declared volatility coordinates and verify payer/receiver parity.
from __future__ import annotations import mathfrom statistics import NormalDist N = NormalDist() def black_option(f: float, k: float, t: float, vol: float, annuity: float, call: bool) -> float: if min(f, k, t, vol, annuity) <= 0: raise ValueError("positive Black inputs required") sign = 1.0 if call else -1.0 root_t = math.sqrt(t) d1 = (math.log(f/k) + 0.5*vol*vol*t)/(vol*root_t) d2 = d1 - vol*root_t return annuity*sign*(f*N.cdf(sign*d1)-k*N.cdf(sign*d2)) f, k, t, vol, annuity = 0.032, 0.035, 2.0, 0.24, 4.35payer = black_option(f, k, t, vol, annuity, True)receiver = black_option(f, k, t, vol, annuity, False)assert abs((payer-receiver)-annuity*(f-k)) < 1e-12print(f"payer={payer:.8f} receiver={receiver:.8f}")Move the state. Challenge the equation.
Rate-option convention laboratory
Move expiry, strike, volatility regime and quote convention; compare premium, intrinsic value, annuity weight and point vega.
Lognormal Black: Positive forward and strike.
- payer premium
- intrinsic value
Use Left/Right or Up/Down arrows to inspect values; Home and End jump to the bounds.
Follow the trade through risk and lifecycle events.
“A swaption vol without expiry, tenor, strike, convention, shift and settlement is not a price coordinate.”
discount/projection curves
expiry and underlying schedule
strike and forward
annuity and settlement
volatility convention/surface
Reprice each caplet or swaption helper in its native convention and premium; inspect residuals, parameter stability and excluded quotes.
RISKexpiry/tenor vega
smile and skew
annuity/curve delta
volga and model basis
- freeze curves and vol snapshot
- normalize quote conventions
- price and verify parity
- calibrate with diagnostics
- bucket risk and stress settlement
Production failure modes
- normal/lognormal mix
- missing displacement
- cash-annuity mismatch
- stale forward or schedule
09MACRO CONNECTIONOpen the transmission channel.
Policy uncertainty into rate optionality
Uncertainty about the policy path and terminal rate redistributes volatility across option expiries and underlying swap tenors.
transmitsmoves expected fixing distribution
transmitsreprices expiry, tenor and strike
transmitsmaps liquid quotes to dynamics
outputchanges exercise and convexity
10COMMON PITFALLSOpen the failure checklist.
Feeding a normal volatility into Black–76.
Ignoring the annuity or payment-date discount weight.
Calibrating to vols without repricing premiums.
Treating cash and physical settlement as interchangeable.
11SOURCES / FURTHER READINGOpen sources and continue the track.
Caps, swaptions and interest-rate modelling lectures
Research map for rate-option numeraires and calibration; platform text and code are original.
- Source
- Financial Engineering: Interest Rates & xVA
- Author
- L. A. Grzelak
- Ref
- main
Current cap/floor, swaption and volatility-structure tests
Implementation authority for instrument, settlement and quote-convention boundaries.
- Source
- QuantLib upstream
- Author
- QuantLib contributors
- Ref
- v1.42.1