Interest Rate Models: Vasicek, CIR, Hull-White, HJM
How the four canonical term-structure models each fix the previous one's flaw and leave a new one behind. Bond pricing formulas, calibration in practice, and where each model's usefulness ends.
The most fundamental modeling difference between equity and interest-rate derivatives is the underlying itself. A stock is a positive price driving option payoffs; an interest rate can be negative — 1990s Japan, 2010s Europe, parts of the 2020s. And a rate isn’t one number but a whole curve: the central problem of fixed-income analytics is modeling the term structure, not a single rate.
This article covers the four canonical models, and there’s a thread worth holding while you read: each model exists to fix the previous one’s flaw, and the fix always costs a new flaw. Vasicek delivered mean reversion but allowed negative rates (considered a defect at the time); CIR repaired the negative rates at the price of heavier analytics; Hull-White repaired “doesn’t fit today’s curve” at the price of time-dependent parameters; HJM abstracted the whole problem into a framework at the price of infinite dimension. None of them is “right” — each is a different trade between tractability and realism, and the choice usually comes down to what you can afford to implement.
The Set-Up
A model of the short rate determines the entire yield curve under no-arbitrage. The price at time of a zero-coupon bond maturing at is
with the expectation taken under the risk-neutral measure. Whatever dynamics you choose for , that choice fixes the closed forms available for , and from there for caplets, swaptions, and everything else.
One measure-theoretic detail up front: in the rates world, “the risk-neutral measure” is not a single object. The money-market account is one numeraire, but prices can be expressed under any numeraire, each choice giving an equivalent martingale measure with its own SDEs and expectations (Brigo & Mercurio, 2006, Ch. 1). This is one of the core reasons fixed income is harder than equities — and rates are, at bottom, a multi-curve problem too (spot rates, collateral rates, forward rates, the various LIBOR replacements). For most of this article, I use the risk-neutral measure associated with the bank-account numeraire, under which the bond-price formula above holds.
Vasicek (1977)
The original mean-reversion model. The short rate follows
Three parameters: (mean-reversion speed), (long-run mean), (volatility), with a constant diffusion coefficient. This is exactly an Ornstein-Uhlenbeck process with drift, so it inherits all of that process’s analytic virtues. Bond prices are exponential-affine:
with
Closed form; the bond price is available immediately. And because the model is Gaussian, is lognormal, so options on zero-coupon bonds also have Black-type closed forms — and since a caplet is equivalent to a put on a zero-coupon bond (details below), caplets in Vasicek are closed-form too. This point is frequently gotten wrong and worth stating plainly: in Gaussian short-rate models, vanilla rate options are fully analytic.
Vasicek’s famous “defect” is that it allows . When the model was proposed this was considered unrealistic; markets later delivered genuinely negative rates, and the academic literature mostly shrugged (Hull, 2018, Ch. 31). Whether you accept the feature depends on whether you believe in negative rates — a question whose answer changed after 2014.
Cox-Ingersoll-Ross (1985)
CIR was built to kill the negative rates:
One change from Vasicek: the diffusion is proportional to . The closer the rate gets to zero, the smaller the volatility, so zero can’t be crossed. Precisely: under the Feller condition
the process, started positive, never reaches zero; when the condition fails, the process can touch zero, but zero is an instantaneously reflecting boundary — it doesn’t stay there.
The conditional distribution of given is a scaled non-central chi-squared:
with degrees of freedom and non-centrality depending on . Bond prices remain exponential-affine:
where
with , and similarly exponential. The square-root-diffusion-plus-affine-structure combination ended up traveling far beyond rates: modeling default intensity as a CIR process is standard practice in credit, and this analytic form became the workhorse of intensity-based credit pricing.
On the options side, CIR no longer has elementary Black-type closed forms. Bond option prices (hence caplets) are expressed through non-central chi-squared distribution functions — the original CIR paper gives this result — which numerically means evaluating distribution functions or integrating a transform. The transform that appears in the computation is
evaluated at the appropriate . Computable, but one layer of numerics more than the Gaussian models — that’s the analytic price paid for fixing negative rates.
Hull-White (1990)
The practical flaw Vasicek and CIR share: constant parameters cannot fit today’s market curve. You calibrate the model, its implied discount factors disagree with the observed ones, and now even vanilla bonds are mispriced — never mind derivatives. Hull-White’s fix is to make Vasicek’s parameters functions of time:
The functions are deterministic, with dedicated to pinning the model’s to the market discount factors — so the model fits the initial term structure exactly, with zero calibration error in the discount curve. has an analytic expression:
where is the market instantaneous forward rate. With constant , the bond price can be written entirely in terms of market discount factors and market instantaneous forwards :
Dense-looking, but the structure is clean: the leading factor is the market curve, the first two terms in the exponent are deterministic corrections, and the last term carries the state variable. With flat initial forwards and constant parameters it collapses back to Vasicek.
On the vanilla-options side, Hull-White inherits the full analyticity of Gaussian models: a caplet is a put on a zero-coupon bond, closed form; swaptions go through Jamshidian’s decomposition (1989), which splits a coupon-bond option into a portfolio of zero-coupon bond options — and in a one-factor model that decomposition is exact, not an approximation.
Hull-White is the default model most fixed-income desks use for vanilla rate options — the “Black-Scholes of rates,” not because it’s the most realistic, but because it’s the starting point everyone understands, with extensions (time-dependent vol, multi-factor, regime switching) layered on for exotics.
Heath-Jarrow-Morton (1992)
HJM is not another model; it’s the framework underneath all of the above. Instead of specifying a process for the short rate, it specifies a process for the entire forward curve :
The key result: the drift is not free. No-arbitrage nails it completely to the volatility —
(under the risk-neutral measure). Specify the forward curve’s volatility structure and the entire model is determined.
This form has an implementation problem: the state is infinite-dimensional (one forward rate for every ). Real implementations restrict to finitely many factors:
with usually 2 or 3, each a factor loading. The earlier models are all special cases: one-factor HJM with reduces to Hull-White; two time-decaying vols give two-factor Hull-White. HJM’s value is a way of thinking — how to build a model that is internally consistent across all tenors at once. The LMM, coming below, is HJM in different coordinates.
Pricing Caps, Floors, Swaptions
The main derivatives priced off rate models: caplets pay over a future period; floors are symmetric; swaptions are the right to enter a swap at a future date — for a receiver swaption, Jamshidian’s decomposition turns it into a strip of puts on zero-coupon bonds; above these sit CMS products, cancelable swaps, and range accruals, exotics built on a Hull-White backbone.
Market quoting uses none of the short-rate models; it uses the Black model, which gives caplets a closed form:
where , so . Black is consistent with lognormal forward rates and simple enough to be the industry standard for quoting vols. Hull-White prices caplets slightly differently, but the gap is small for typical market parameters.
Numerical pricing under Hull-White is fully analytic — no integration. For a caplet paying at time (with the 3M forward rate starting at ): compute the zero-coupon bond prices and at the relevant dates; move the strike into bond-price space, ; invoke the Jamshidian equivalence — the caplet equals a put on a zero-coupon bond with strike and maturity ; and finish with Black-Scholes on the bond, whose vol is .
import numpy as np
from scipy.stats import norm
def hw_caplet_vol(T, kappa, sigma):
"""Effective zero-coupon-bond vol under Hull-White, given short-rate vol sigma."""
return sigma * (1 - np.exp(-kappa * T)) / kappa
def hw_caplet_price(P_T1, P_T2, K, T1, T2, sigma_B, annuity):
"""Price a caplet (put on a zero-coupon bond)."""
K_bond = P_T2 / (1.0 + annuity * K)
# Black formula on the bond
d = (np.log(P_T1 / K_bond)) / (sigma_B * np.sqrt(T1)) + 0.5 * sigma_B * np.sqrt(T1)
return K_bond * norm.cdf(-d + sigma_B * np.sqrt(T1)) - P_T1 * norm.cdf(-d)
The code is a sketch. Production implementations handle strike conventions, day-count fractions, and settlement details — but this is the skeleton.
Calibration: From Quotes to Parameters
Calibrating a short-rate model means choosing (or their time-dependent versions) to fit observed caplet or swaption vols. Each point on the cap surface contributes one equation:
jointly across strikes and maturities. In practice it’s a two-step: first strip the cap vol surface into caplet vols (a cap is a strip of caplets, and the stripping is a small engineering exercise of its own); then solve for reproducing the implied vols — typically strip-by-strip, weighting ATM options. The fit is rarely perfect: Hull-White is one-factor and constitutionally cannot reproduce the whole smile across strikes and maturities.
A worked example. Say you have a Treasury discount curve, and 3M-reset caps are quoted at the following maturities and strikes (rate-option vols quoted in basis points follow the normal/Bachelier convention — the market mainstream since the negative-rate era):
| Maturity | Strike | Quoted Vol |
|---|---|---|
| 1Y | ATM | 80bp |
| 1Y | ATM + 100bp | 70bp |
| 2Y | ATM | 90bp |
| 2Y | ATM + 100bp | 80bp |
| 5Y | ATM | 95bp |
| 5Y | ATM + 100bp | 85bp |
To calibrate Hull-White, first sort out the two directions: each maturity’s ATM vol roughly corresponds to the implied volatility of the 3M forward at that tenor, which pins the term structure ; the ATM-versus-OTM vol difference carries the skew, and under Hull-White skew is controlled by the ratio — fitting the skew implied by the 100bp strike spread on the 5Y cap requires large enough. Then solve the optimization:
Typical results for data like this: (slow mean reversion), around at the 1Y tenor, rising slowly to by 5Y. The time-dependence of is not decoration — without it, the term structure of caplet vols simply cannot be fit. Once calibrated, caps, floors, and European swaptions price consistently; Bermudan swaptions need a tree or finite differences.
The Smile: What a One-Factor Model Can’t Fit
Hull-White can’t fit the smile — so who handles it? In rates, the answer is SABR (Hagan et al., 2002):
with . SABR’s appeal isn’t the dynamics; it’s that there exists an asymptotic formula expressing implied Black vol directly in the SABR parameters:
where and are helper functions of strike, ATM level, vol, and correlation; the full formula fits on a page and is not pretty — see Hagan (2002). Strictly, it’s only an asymptotic expansion; in practice it works surprisingly well, and calibration to caplet quotes is nearly instant. For caps and floors on rate indices, SABR is the market standard.
One more clean empirical fact about rate smiles: the caplet smile flattens with maturity. ATM vol typically rises, but OTM vols rise more slowly, so the smile “fades” at longer tenors — the longer the horizon, the more mean reversion’s central tendency dominates. Hull-White’s time-dependent or LMM’s tenor-dependent can capture this. As an aside, smile flattening with maturity is not unique to rates — equity skew also decays with tenor — but in rates, mean reversion supplies a cleaner structural explanation for it.
The LIBOR Market Model (LMM)
Every model so far takes the short rate (or instantaneous forward) as the state variable, while the market quotes discrete-tenor forward rates. The LMM — also called BGM (Brace, Gatarek, Musiela, 1997) — simply models the quoted forwards (the forward for the period ) directly. Each is driftless lognormal under its own forward measure (the -forward measure): . Put all the forwards under one common measure (say the spot measure) for joint simulation, and the no-arbitrage drift corrections appear:
with the accrual fractions and the correlations between forward-rate increments. This is multi-factor HJM in different coordinates — the discrete forwards the market actually trades instead of instantaneous ones.
The LMM’s key virtue follows directly: by construction it is consistent with observed caplet prices, which makes it the standard for European-exercise products (caps, floors, European swaptions). American/Bermudan features (Bermudan swaptions, callable floaters) have no closed forms and rely on Longstaff-Schwartz least-squares Monte Carlo or tree approximations — the acknowledged hard stretch of rates modeling. Flavors abound: LMM-SABR gives each forward SABR-style dynamics (for the caplet smile), shift-extended LMM accommodates negative rates, and stochastic-vol LMM gives each forward its own vol process.
Post-2008: Multi-Curve and Negative Rates
At this point the single-curve toolbox is complete. But after 2008, the assumption that “a risk-free rate exists” itself broke. Markets carry, side by side: OIS (overnight indexed swap) rates, used as the discount curve for collateralized trades; LIBOR/SOFR/term rates, the floating legs of swaps and the underlyings of caps and floors; and cross-currency basis separating domestic from foreign funding. The LIBOR-OIS spread reflects counterparty risk and liquidity — something single-curve models cannot capture in principle. The modern treatment gives each curve its own process, with its own dynamics and a correlation structure across curves: the multi-curve setting. Most Hull-White extensions handle it by parameterizing each curve’s instantaneous forwards under its own measure with explicit cross-measure drift corrections (Brigo & Mercurio, 2006, Ch. 6). Multi-curve adds engineering complexity without changing the architectural understanding, which is why this article stays single-curve.
Negative rates are the other place reality corrected the models. After 2014, several major central banks set policy rates below zero (the ECB deposit rate touched ), and the models fare very differently: Vasicek and Hull-White allow negative rates natively — suddenly a virtue; CIR under Feller forces , and the classic LMM’s lognormal forwards can’t go negative either — both need extensions. The common workarounds: shifted models (shifted CIR/LMM), defining with a negative shift accommodating negative rates while stays positive; CIR++ (Brigo–Mercurio), CIR plus a deterministic shift curve, which both fits the initial curve exactly and, with a suitable shift, accommodates negative rates; and, in the opposite direction, lognormal short-rate models (the Black-Karasinski family, with Gaussian ) — note these make negative rates impossible, which suits situations where you explicitly don’t want them; they are not a negative-rate fix. To keep negative rates within a positive-rate framework, the other route is a shadow-rate construction.
Cross-currency adds one more layer: for FX-hedged products the payoff depends jointly on two currencies’ term structures, so pricing needs a rate process per currency plus a correlation structure, plus FX volatility. In production, each currency calibrates to its own curve, FX vol and correlations are estimated from history, and the cross-currency basis (historically tens of basis points between USD and EUR, varying by period) goes straight into pricing. The implementation gets heavy. For products with both vol and correlation sensitivity, the SABR-LMM hybrid is roughly the current frontier: SABR dynamics per forward rate within a currency, LMM-style correlation within and across currencies — calibration consumes both cap/floor vol data and swaption vol data.
Beyond Risk-Neutral: the Measure and Term Premia
Everything above lives under the risk-neutral measure , which suffices for pricing. But stress testing, scenario analysis, and long-horizon forecasting need dynamics under the real-world measure — the two differ by the market price of interest-rate risk, and dynamics are much harder to calibrate because almost no market instrument pins them down directly. The available approaches are all imperfect: affine term-structure models with time-varying risk premia (estimating the price of risk from history — fragile), survey-based expectations (backing out physical rates from economist surveys), and historical mean-reversion speeds. Fortunately, for stress testing the choice matters less than it would for pricing.
In the same -versus- crack lives the term premium: the part of long-bond yield beyond the expected short-rate path. The macro-regression tradition of Cochrane, Piazzesi, and others estimates it. For a quant trader it matters three ways: forecasting swap rates and positioning accordingly; systematically selling term premium — historically profitable, but with heavy tail risk; and generating stress scenarios that purely arbitrage-free models can’t produce.
Outside Vanilla, and How Expensive a Model to Use
More exotic rate products use the term-structure model as a foundation with specialized components on top: mortgage passthroughs add prepayment modeling (PSA-style models on the prepayment side, Hull-White for rates); callable bonds are fixed-income cash flows plus an option-pricing framework; CDO-type synthetic credit products need both rate and credit dynamics. Each direction has its own literature, beyond this article’s scope.
The closing point is a practical rule. Desks run a hierarchy of approximation: the Black formula as the default for quoted caplets and standard swaptions; SABR + Black for the caplet smile; Hull-White one-factor for products SABR doesn’t cover (callable swaps, say); Hull-White two-factor or LMM for multi-curve or Bermudan features. Every step up the hierarchy costs compute and complexity, and the rule is simple: use the cheapest model that delivers the accuracy you need. If you’re building a fixed-income desk’s pricing library, the minimum kit is Hull-White plus LMM; add SABR for caplet smiles and a multi-curve setup for collateral and discounting consistency if you can afford it — and that is a serious rates library.
Reading list. Hull, Options, Futures, and Other Derivatives, 10th ed., Ch. 31 (2018). Wilmott, Paul Wilmott on Quantitative Finance, 2nd ed., Vol. 2, Ch. 31-33 (2007). Brigo & Mercurio, Interest Rate Models: Theory and Practice (2006) for the comprehensive treatment. Luenberger, Investment Science, Ch. 14 (2013) for bond-pricing fundamentals. Vasicek (1977), Cox-Ingersoll-Ross (1985), Hull-White (1990), and Heath-Jarrow-Morton (1992) are all readable originals.