Caps and Floors: Interest Rate Options

An interest-rate cap is a portfolio of caplets that limits a floating borrowing rate, while a floor is a portfolio of floorlets that protects an investor’s floating return from falling rates. Their value is the discounted sum of options on individual forward fixings, so accurate schedules, curves, and quote conventions matter as much as the option formula.

Cash-flow decomposition

For accrual period [Ti, Ti+1], a caplet paid at Ti+1 has payoff

caplet_i = N * delta_i * max(L_i(Ti) - K, 0)
floorlet_i = N * delta_i * max(K - L_i(Ti), 0)

The cap begins with the first future fixing and ends with the final accrual date. A payment lag, in-arrears fixing, compounding convention, or stub means the simple formula must be adapted. Do not model the cap as an option on a par swap rate: that is a swaption, with different exposure to the curve.

InstrumentUnderlyingTypical useMain market quote
capletone forward periodisolate a fixingimplied vol
capstrip of capletsborrower rate ceilingcap vol / premium
floorstrip of floorletsinvestor minimum returnfloor vol / premium
collarlong cap plus short floorlower premium hedgecap/floor strikes

Pricing under a forward measure

Using the payment-date bond as numeraire, a Black caplet price is

V_caplet = N * delta * P(0, Ti+1) *
           [F*N(d1) - K*N(d2)]
d1 = [ln(F/K) + 0.5*sigma^2*Ti] / (sigma*sqrt(Ti))

Here F is the forward rate implied by the projection curve. A floorlet replaces the bracket with KN(-d2) - FN(-d1). Near zero or for negative forwards, use Bachelier normal volatility or a shifted lognormal model. The important invariant is price: volatility must be inverted from a price using the same F, discount factor, and expiry.

import numpy as np
from scipy.stats import norm

def black_caplet(F, K, vol, expiry, df, accrual, notional):
    st = vol * np.sqrt(expiry)
    d1 = (np.log(F / K) + .5 * vol**2 * expiry) / st
    d2 = d1 - st
    return notional * accrual * df * (F*norm.cdf(d1) - K*norm.cdf(d2))

def cap_price(caplets):
    return sum(caplets)  # each element is a properly discounted caplet PV

Cap-floor parity and curve checks

At matching strike and schedule:

cap - floor = N * sum_i delta_i * P(0,Ti+1) * (F_i - K)

The right side is the PV of a payer swap with fixed rate K on the matching schedule. This is one of the best production controls: independently price cap, floor, and swap; their residual should be near numerical tolerance. The forward and discount factors should originate from the curve process described in yield-curve construction.

In a multi-curve setting, F_i comes from the appropriate forwarding curve while P comes from the collateral discount curve. Substituting a single curve may preserve an internal identity but misstates a market price and its hedge.

Volatility surface construction

Cap markets often provide cap volatilities by expiry and strike, but a cap quote is a portfolio price. A cap implied volatility applied uniformly to its caplets is a quote convention, not evidence that every caplet has that volatility. Strip caplet volatilities sequentially: price the shortest cap with its first caplet, subtract previously inferred caplets from the next cap premium, then invert the remaining caplet price.

This procedure is sensitive to noisy quotes and can produce negative or jagged forward variances. Use constrained smoothing on total variance and retain bid-ask consistency. If applying SABR to each expiry, use its price fit and static-arbitrage diagnostics rather than blindly interpolating parameters; see SABR volatility.

Hedging a cap book

Cap delta is a ladder of forward-rate deltas, not one duration number. Hedge it with short-rate futures, FRAs, or swaps chosen for their bucket alignment. Volatility exposure is concentrated in the caplets near the money, although deep in- or out-of-the-money caplets can dominate under a stress. Reprice after a market-quote bump and curve recalibration to obtain tradable risk.

Borrowers often buy a cap and sell a lower-strike floor to form a collar. The floor premium finances the cap, but it introduces exposure to falling rates exactly when financing costs are otherwise low. Risk management should show the entire payoff and cash-flow profile, including premium funding, rather than treating a zero-cost collar as riskless.

Key takeaways

  • A cap or floor is a schedule-specific strip of caplets or floorlets.
  • Price each period using its forward, accrual, discount factor, and option convention.
  • Cap-floor parity must reconcile to the corresponding swap.
  • Cap quotes require careful stripping before they become a caplet volatility surface.
  • Hedge rate buckets and volatility nodes with full revaluation, not a single duration statistic.
#caps #floors #caplets #interest rate options #volatility surface