Derivatives PricingInterest Rate ModelsHull-WhiteLibor Market ModelTerm Structure

Hull-White and the LMM Framework

25 min readLevel: Hard

Setup

Why Interest Rate Models Differ from Equity Models

In equity models, the underlying (stock price) is directly observable and traded. In interest rate models, the "underlying" is an entire yield curve — an infinite-dimensional object. This creates structural differences:

  1. Consistency with the initial curve. A model must, by construction, produce bond prices consistent with the observed term structure today. Black-Scholes for equities does not face this constraint (there is only one observable — the spot price). An interest rate model that misprices the initial curve is not miscalibrated: it is wrong.

  2. Multi-asset nature. Interest rates at different tenors are correlated but not perfectly. A one-factor model cannot capture realistic correlation structure across the curve.

  3. No-arbitrage drift conditions. Under the risk-neutral (or any equivalent) measure, the drift of interest rate processes is not free — it is constrained by the requirement that discounted bond prices are martingales (Heath-Jarrow-Morton framework).

Notation and Conventions

Throughout:

  • P(t,T)P(t, T): price at time tt of a zero-coupon bond paying 1 at TT. P(0,T)P(0, T) observed from the initial curve.
  • f(t,T)f(t, T): instantaneous forward rate at time tt for maturity TT, related to the bond price by P(t,T)=exp ⁣(tTf(t,s)ds)P(t, T) = \exp\!\left(-\int_t^T f(t,s)\,ds\right).
  • rt=f(t,t)r_t = f(t, t): short rate (instantaneous spot rate).
  • L(t;T,T+τ)L(t; T, T+\tau): simply-compounded Libor rate for period [T,T+τ][T, T+\tau] set at time tt.
  • δi=Ti+1Ti\delta_i = T_{i+1} - T_i: tenor of the ii-th period.
  • All rates are continuously compounded unless explicitly stated "simply compounded."

Hull-White One-Factor Model

SDE and Structure

The Hull-White (HW1F) model (Hull and White, 1990) specifies short-rate dynamics under the risk-neutral measure Q\mathbb{Q}:

drt=(θ(t)art)dt+σdWt.dr_t = (\theta(t) - a\, r_t)\, dt + \sigma\, dW_t.

Parameters:

  • a>0a > 0: mean-reversion speed (constant).
  • σ>0\sigma > 0: short-rate volatility (constant).
  • θ(t)\theta(t): time-dependent drift, calibrated to exactly fit the initial term structure.

The model is affine: the bond price takes the form

P(t,T)=exp ⁣(A(t,T)B(t,T)rt),P(t, T) = \exp\!\left(A(t, T) - B(t, T)\, r_t\right),

where B(t,T)B(t,T) and A(t,T)A(t,T) are deterministic functions.

Exact Calibration to the Initial Curve

For the bond price formula to be consistent with the observed P(0,T)P(0, T), the drift θ(t)\theta(t) must satisfy:

θ(t)=fM(0,t)t+afM(0,t)+σ22a(1e2at),\theta(t) = \frac{\partial f^M(0, t)}{\partial t} + a\, f^M(0, t) + \frac{\sigma^2}{2a}(1 - e^{-2at}),

where fM(0,t)=tlnPM(0,t)f^M(0, t) = -\frac{\partial}{\partial t}\ln P^M(0, t) is the market instantaneous forward rate. This is derived by demanding Pmodel(0,T)=PM(0,T)P_{\text{model}}(0, T) = P^M(0, T) for all TT and differentiating.

Key insight. The θ(t)\theta(t) term absorbs the entire shape of the initial forward curve. Once calibrated, the model prices all zero-coupon bonds exactly, by construction. This is the defining feature that distinguishes HW from Vasicek (which does not fit the initial curve exactly).

Bond Price Formula

B(t,T)=1ea(Tt)a,B(t, T) = \frac{1 - e^{-a(T-t)}}{a},

A(t,T)=lnPM(0,T)PM(0,t)+B(t,T)fM(0,t)σ24a(1e2at)B(t,T)2.A(t, T) = \ln\frac{P^M(0, T)}{P^M(0, t)} + B(t, T)\, f^M(0, t) - \frac{\sigma^2}{4a}\left(1 - e^{-2at}\right) B(t,T)^2.

This follows from the affine structure of the SDE combined with the exact calibration condition.

Caplet Pricing in Closed Form

A caplet is a call option on the Libor rate L(T0;T0,T1)L(T_0; T_0, T_1), paying δmax(L(T0;T0,T1)K,0)\delta \max(L(T_0; T_0, T_1) - K, 0) at T1T_1. Since Libor is related to bond prices by

1+δL(T0;T0,T1)=1P(T0,T1),1 + \delta\, L(T_0; T_0, T_1) = \frac{1}{P(T_0, T_1)},

a caplet is equivalently a put on a zero-coupon bond P(T0,T1)P(T_0, T_1) with strike X=1/(1+δK)X = 1/(1 + \delta K).

Under HW1F, the bond price P(T0,T1)=eA(T0,T1)B(T0,T1)rT0P(T_0, T_1) = e^{A(T_0,T_1) - B(T_0,T_1)r_{T_0}} is log-normal (since rT0r_{T_0} is Gaussian). The caplet has a Black's formula-type closed form:

Caplet(0)=P(0,T1)N(d2)1XP(0,T0)N(d1)1X,\text{Caplet}(0) = P(0, T_1)\, N(-d_2) \cdot \frac{1}{X} - P(0, T_0) \cdot N(-d_1) \cdot \frac{1}{X},

Wait — more precisely, using the bond-put expression, the caplet price is:

Caplet(0)=(1+δK)P(0,T1)N(d2)P(0,T0)N(d1),\text{Caplet}(0) = (1 + \delta K)\cdot P(0, T_1)\, N(-d_2) - P(0, T_0)\, N(-d_1),

d1=ln(P(0,T1)(1+δK)P(0,T0))σP+σP2,d2=d1σP,d_1 = \frac{\ln\left(\frac{P(0,T_1)(1+\delta K)}{P(0,T_0)}\right)}{\sigma_P} + \frac{\sigma_P}{2}, \qquad d_2 = d_1 - \sigma_P,

σP=σB(T0,T1)1e2aT02a.\sigma_P = \sigma B(T_0, T_1) \sqrt{\frac{1 - e^{-2aT_0}}{2a}}.

Here σP\sigma_P is the standard deviation of lnP(T0,T1)\ln P(T_0, T_1) under the T0T_0-forward measure.

Limitations of HW1F

  • Gaussian rates. Because rtr_t is Gaussian (driven by a Brownian motion with no lower bound), the model allows negative short rates with positive probability. This was historically considered a theoretical flaw but became empirically relevant post-2012 with negative ECB and BOJ rates.
  • One factor. The entire curve moves as a single linear factor (multiplied by B(t,T)B(t,T)). Realistic co-movements across short and long tenors require multi-factor extensions (two-factor Hull-White, G2++ model).
  • Constant σ\sigma and aa. A constant volatility structure cannot capture the volatility humps observed in caps and swaptions (vol peaked at 1–3 year tenors in most markets). Piecewise-constant σ(t)\sigma(t) is one extension.

Libor Market Model (BGM)

Motivation

Hull-White models the short rate — an infinitesimally short maturity instrument. In practice, the liquid instruments are Libor rates and swap rates at discrete tenors (1M, 3M, 6M, 1Y, ...). The Brace-Gatarek-Musiela (BGM) model, also called the Libor Market Model (LMM), models the discrete Libor forward rates directly.

The central advantage: LMM is calibrated to market caplet prices exactly (by construction), because the Black caplet formula is built into the model specification.

Setup

Fix a tenor structure 0=T0<T1<<TN0 = T_0 < T_1 < \cdots < T_N, with δi=Ti+1Ti\delta_i = T_{i+1} - T_i. Define the forward Libor rate:

Li(t)=L(t;Ti,Ti+1)=1δi(P(t,Ti)P(t,Ti+1)1),tTi.L_i(t) = L(t; T_i, T_{i+1}) = \frac{1}{\delta_i}\left(\frac{P(t, T_i)}{P(t, T_{i+1})} - 1\right), \qquad t \leq T_i.

Each forward Libor Li(t)L_i(t) is a martingale under the Ti+1T_{i+1}-forward measure QTi+1\mathbb{Q}^{T_{i+1}} (with numeraire P(t,Ti+1)P(t, T_{i+1})). Under this measure:

dLi(t)=σi(t)Li(t)dW~t(i),tTi,dL_i(t) = \sigma_i(t) L_i(t) \, d\widetilde{W}_t^{(i)}, \qquad t \leq T_i,

where σi(t)\sigma_i(t) is a (possibly time-dependent) scalar or vector volatility and W~(i)\widetilde{W}^{(i)} is a QTi+1\mathbb{Q}^{T_{i+1}}-Brownian motion. The instantaneous correlation is:

dW~(i),W~(j)t=ρijdt.d\langle \widetilde{W}^{(i)}, \widetilde{W}^{(j)} \rangle_t = \rho_{ij}\, dt.

Drift Under the Spot Measure

To simulate the entire forward Libor system simultaneously, one needs a common probability measure. The spot Libor measure QB\mathbb{Q}^B uses as numeraire the discretely compounded money market account:

B(t)=P(t,Tβ(t))j=0β(t)1(1+δjLj(Tj)),β(t)=min{j:Tj>t}.B(t) = P(t, T_{\beta(t)}) \prod_{j=0}^{\beta(t)-1} (1 + \delta_j L_j(T_j)), \qquad \beta(t) = \min\{j : T_j > t\}.

Under QB\mathbb{Q}^B, the drift of each forward Libor is uniquely determined by the no-arbitrage condition. Deriving it from a change-of-numeraire calculation:

dLi(t)=Li(t)[μi(t)dt+σi(t)dWtB],dL_i(t) = L_i(t)\left[\mu_i(t)\, dt + \boldsymbol{\sigma}_i(t)^\top d\mathbf{W}_t^B\right],

μi(t)=j=β(t)iδjρijσi(t)σj(t)Lj(t)1+δjLj(t),\mu_i(t) = \sum_{j=\beta(t)}^{i} \frac{\delta_j \rho_{ij} \sigma_i(t) \sigma_j(t) L_j(t)}{1 + \delta_j L_j(t)},

where WtB\mathbf{W}_t^B is a QB\mathbb{Q}^B-Brownian motion vector and the correlation matrix (ρij)(\rho_{ij}) is fixed.

Derivation structure. The drift arises from the Radon-Nikodym derivative between the Ti+1T_{i+1}-forward measure and the spot measure. Each Libor Lj(t)L_j(t) for jij \leq i contributes a covariance term ρijσiσjLj/(1+δjLj)\rho_{ij}\sigma_i \sigma_j L_j/(1 + \delta_j L_j) to the drift of LiL_i. The sum runs from the current index β(t)\beta(t) to ii — only the "alive" forward rates contribute.

Caplet Pricing: Recovering Black's Formula

Under the Ti+1T_{i+1}-forward measure, Li(t)L_i(t) has zero drift and log-normal dynamics:

dLi(t)=σi(t)Li(t)dW~t(i).dL_i(t) = \sigma_i(t) L_i(t)\, d\widetilde{W}_t^{(i)}.

This gives Li(Ti)Li(0)exp ⁣(12Σi2Ti+ΣiTiZ)L_i(T_i) \sim L_i(0) \exp\!\left(-\frac{1}{2}\Sigma_i^2 T_i + \Sigma_i \sqrt{T_i} Z\right) where Σi2=1Ti0Tiσi2(t)dt\Sigma_i^2 = \frac{1}{T_i}\int_0^{T_i}\sigma_i^2(t)\,dt and ZN(0,1)Z \sim \mathcal{N}(0,1). The caplet price is:

Capleti=δiP(0,Ti+1)EQTi+1 ⁣[(Li(Ti)K)+]=δiP(0,Ti+1)Black(Li(0),K,Σi,Ti),\text{Caplet}_i = \delta_i P(0, T_{i+1}) \,\mathbb{E}^{\mathbb{Q}^{T_{i+1}}}\!\left[(L_i(T_i) - K)^+\right] = \delta_i P(0, T_{i+1})\, \text{Black}(L_i(0), K, \Sigma_i, T_i),

where Black(F,K,σ,T)=FN(d1)KN(d2)\text{Black}(F, K, \sigma, T) = F\, N(d_1) - K\, N(d_2) with d1=(ln(F/K)+σ2T/2)/(σT)d_1 = (\ln(F/K) + \sigma^2 T/2)/(\sigma\sqrt{T}). This is exactly Black's caplet formula — the LMM recovers the market-standard pricing formula by construction.

Simulation of the LMM

To price path-dependent products (Bermudan swaptions, CMS, spread options), simulate under the spot measure:

  1. Discretise time. Use times tk=Tkt_k = T_k (the tenor dates) to avoid interpolation issues; finer grids if needed.

  2. Euler-log discretisation. For each iβ(tk)i \geq \beta(t_k):

lnLi(tk+1)=lnLi(tk)+(μi(tk)12σi2(tk))Δtk+σi(tk)ΔtkρiZk,\ln L_i(t_{k+1}) = \ln L_i(t_k) + \left(\mu_i(t_k) - \frac{1}{2}\sigma_i^2(t_k)\right)\Delta t_k + \sigma_i(t_k)\sqrt{\Delta t_k}\, \boldsymbol{\rho}_i^\top \mathbf{Z}_k,

where ZkN(0,I)\mathbf{Z}_k \sim \mathcal{N}(\mathbf{0}, I) and ρiZk\boldsymbol{\rho}_i^\top \mathbf{Z}_k produces a correlated increment via the Cholesky decomposition of the correlation matrix.

  1. Drift correction. The Euler-log scheme introduces a bias in the drift. The predictor-corrector method (using the average of drift at tkt_k and the Euler-predicted drift at tk+1t_{k+1}) reduces this bias significantly.

Limitations

LMM dimension. For N=20N = 20 forward rates, simulation requires generating N×Npaths×NstepsN \times N_{\text{paths}} \times N_{\text{steps}} random numbers and applying a Cholesky decomposition to a 20×2020 \times 20 correlation matrix at each step. Computational cost scales as O(N2)O(N^2) per path step. High-dimensional LMM is expensive; low-rank approximations of the correlation matrix (e.g., via PCA) are standard.

Correlation matrix specification. The (N2)\binom{N}{2} pairwise correlations must be specified and positive semi-definite. A common parametrisation is ρij=ρ+(1ρ)eβTiTj\rho_{ij} = \rho_\infty + (1-\rho_\infty)e^{-\beta|T_i - T_j|} (exponential decay). More complex shapes (e.g., with a hump) require additional parameters.

Calibration to swaptions. LMM calibrates to caplets naturally but not to swaption prices — swaption payoffs involve sums of Libor rates, not a single one. Rebonato's calibration or a Cascade Calibration algorithm is needed to jointly fit the full swaption matrix. This remains an active area of practice.

Negative rates. The log-normal LMM requires Li>0L_i > 0 always. Post-2012, Libor rates went negative in EUR and JPY. The displaced-diffusion LMM (Li+αL_i + \alpha follows a log-normal) or the SABR-LMM (stochastic vol extension) address this.

Markov property. LMM is not Markovian in a finite-dimensional sense: the drift at time tt depends on the full vector of surviving forward rates, not a low-dimensional state. This makes PDE pricing methods inapplicable; Monte Carlo is the primary tool.


Interview Angle

L1. What is the Hull-White model? How does θ(t)\theta(t) relate to the initial forward curve? State Black's caplet formula and explain why the caplet is equivalent to a put on a bond.

HW models the short rate as an Ornstein-Uhlenbeck process with a time-dependent mean level θ(t)\theta(t) chosen to match the initial term structure exactly. The connection: θ(t)\theta(t) is found by differentiating the bond price formula P(0,T)=Pmodel(0,T)P(0,T) = P_{\text{model}}(0,T) with respect to TT.

Caplet as bond put. Payoff at T1T_1: δmax(L(T0;T0,T1)K,0)\delta \max(L(T_0;T_0,T_1) - K, 0). Using 1+δL=P(T0,T1)11 + \delta L = P(T_0,T_1)^{-1}: L>K    P(T0,T1)<1/(1+δK)XL > K \iff P(T_0,T_1) < 1/(1+\delta K) \equiv X. So the caplet is a put on P(T0,T1)P(T_0,T_1) with strike XX, payoff measured at T1T_1 (discounted by the bond itself). Under HW1F, P(T0,T1)P(T_0,T_1) is log-normal, giving Black's formula.

L2. Derive the LMM drift under the spot Libor measure. Why must the drift be non-zero under this measure if the Ti+1T_{i+1}-forward measure gives zero drift?

Change of numeraire. Under QTi+1\mathbb{Q}^{T_{i+1}}, LiL_i is a martingale (zero drift). Under the spot measure QB\mathbb{Q}^B, the Radon-Nikodym derivative relating the two measures involves the ratio of numeraires P(t,Ti+1)/B(t)P(t,T_{i+1})/B(t). By Girsanov, changing measure introduces a drift proportional to the covariation between lnLi\ln L_i and ln(P(t,Ti+1)/B(t))\ln(P(t,T_{i+1})/B(t)). The numeraire ratio depends on LjL_j for jij \leq i through the compounding formula for B(t)B(t). Each alive LjL_j contributes a term ρijσiσjLjδj/(1+δjLj)\rho_{ij}\sigma_i\sigma_j L_j \delta_j / (1 + \delta_j L_j) — the standard LMM drift.

L3. Discuss the HJM framework. How does LMM relate to the HJM no-arbitrage condition? What are the Markov conditions under which an HJM model admits a finite-dimensional Markovian state representation?

HJM models the entire forward rate curve f(t,T)f(t,T) via:

df(t,T)=α(t,T)dt+σ(t,T)dWt.df(t,T) = \alpha(t,T)\, dt + \boldsymbol{\sigma}(t,T)^\top d\mathbf{W}_t.

The HJM no-arbitrage condition (under Q\mathbb{Q}) fixes the drift:

α(t,T)=σ(t,T)tTσ(t,u)du.\alpha(t,T) = \boldsymbol{\sigma}(t,T)^\top \int_t^T \boldsymbol{\sigma}(t,u)\, du.

The drift is not free — it is determined by the volatility structure. LMM is a discrete-tenor version of an HJM model: each forward Libor satisfies a log-normal SDE whose drift (under the spot measure) is the discrete analogue of the HJM drift condition.

Markov reduction. The HJM model is generically non-Markovian (the drift depends on the entire volatility history). Cheyette (1992) and Ritchken-Sankarasubramanian (1995) identify conditions under which HJM reduces to a finite-dimensional Markovian system: the volatility must have a separable form σ(t,T)=g(t)h(T)\sigma(t,T) = g(t)h(T) for deterministic functions g,hg, h. Hull-White with constant σ\sigma satisfies this, which is why it admits the Markovian affine representation. General HJM does not.

Verify your understanding before moving on.

Start Quiz →