Technical

HJM Interest Rate Framework Explained (2026)

Learn the HJM interest rate framework, its risk-neutral drift restriction, bond dynamics, measure conventions, calibration and practical limitations.

13 min read·

Volatility first, drift second

David Heath, Robert Jarrow and Andrew Morton's January 1992 paper, Bond Pricing and the Term Structure of Interest Rates, began with the observed forward curve rather than one latent short rate. Its central result is easy to state and easy to misuse: under the risk-neutral measure, forward-rate volatility determines forward-rate drift.

Let P(t,T)P(t,T) be the time-tt price of a zero-coupon bond and define the instantaneous forward rate by

f(t,T)=−∂∂Tlog⁡P(t,T).f(t,T)=-\frac{\partial}{\partial T}\log P(t,T).

Equivalently,

P(t,T)=exp⁡[−∫tTf(t,u) du],rt=f(t,t).P(t,T)=\exp\left[-\int_t^T f(t,u)\,du\right], \qquad r_t=f(t,t).

HJM is a framework, not one model. A volatility specification, factor structure and initial curve turn it into a model. That makes HJM useful when the shape of curve volatility matters. It also means that "using HJM" says less than naming the actual volatility and state variables.

The framework sits naturally beside the Hull-White model, which is one finite-dimensional Gaussian case. Nelson-Siegel is different: it parameterises a curve at a date but does not supply HJM's pricing dynamics.


The HJM drift condition

Under the money-market-numeraire measure Q\mathbb Q, suppose

df(t,T)=α(t,T)dt+σ(t,T)⋅dWtQ,df(t,T)=\alpha(t,T)dt +\boldsymbol\sigma(t,T)\cdot d\mathbf W_t^{\mathbb Q},

where WQ\mathbf W^{\mathbb Q} has independent components. Correlated economic factors can be represented by the components of the loading vector σ\boldsymbol\sigma. Define the bond-volatility loading

Σ(t,T)=∫tTσ(t,u) du.\boldsymbol\Sigma(t,T) =\int_t^T\boldsymbol\sigma(t,u)\,du.

Provided the required measurability, integrability and equivalent-measure conditions hold, no arbitrage requires

α(t,T)=σ(t,T)⋅Σ(t,T).\boxed{ \alpha(t,T) =\boldsymbol\sigma(t,T)\cdot\boldsymbol\Sigma(t,T) }.

The corresponding bond dynamics are

dP(t,T)P(t,T)=rtdt−Σ(t,T)⋅dWtQ.\frac{dP(t,T)}{P(t,T)} =r_tdt-\boldsymbol\Sigma(t,T)\cdot d\mathbf W_t^{\mathbb Q}.

Discounting by the money-market account removes the rtdtr_tdt term. This is the cleanest check on the signs. A plus sign in the forward drift and a minus sign in the bond diffusion are consistent with the definition f=−∂Tlog⁡Pf=-\partial_T\log P.

The condition is measure-specific. Under a physical measure P\mathbb P, expected forward-rate changes also contain a market-price-of-risk term. With the convention dWQ=dWP+λtdtd\mathbf W^{\mathbb Q}=d\mathbf W^{\mathbb P}+\boldsymbol\lambda_tdt,

αP(t,T)=αQ(t,T)+σ(t,T)⋅λt.\alpha^{\mathbb P}(t,T) =\alpha^{\mathbb Q}(t,T) +\boldsymbol\sigma(t,T)\cdot\boldsymbol\lambda_t.

Changing the sign convention for λ\boldsymbol\lambda changes the displayed sign. Stating the Brownian relation avoids an argument conducted entirely in notation. The risk-neutral pricing guide develops the numeraire logic, and Ito's lemma supplies the bond calculation.


Gaussian examples and dimensions

In a one-factor Ho-Lee specification, σ(t,T)=σ\sigma(t,T)=\sigma is constant. The HJM condition gives

α(t,T)=σ2(T−t),\alpha(t,T)=\sigma^2(T-t),

so

df(t,T)=σ2(T−t)dt+σdWtQ.df(t,T)=\sigma^2(T-t)dt+\sigma dW_t^{\mathbb Q}.

If σ=1%\sigma=1\% of absolute rate per square-root year and T−t=5T-t=5 years, the instantaneous risk-neutral drift is 0.00050.0005 rate units per year, or five basis points over a one-year interval if the loading stayed fixed. The bond's instantaneous volatility magnitude is Σ=σ(T−t)=5%\Sigma=\sigma(T-t)=5\% per square-root year. Keeping rate units, time units and basis points separate catches many HJM spreadsheet errors.

For one-factor Hull-White,

σ(t,T)=σe−a(T−t).\sigma(t,T)=\sigma e^{-a(T-t)}.

Therefore

α(t,T)=σ2ae−a(T−t)[1−e−a(T−t)].\alpha(t,T)= \frac{\sigma^2}{a}e^{-a(T-t)} [1-e^{-a(T-t)}].

This exponentially decaying loading admits a one-state Markov representation and produces the fitted-drift Hull-White short-rate SDE. The CIR model does not arise from this deterministic Gaussian volatility because its diffusion depends on the state.

With two independent factors,

σk(t,T)=σke−ak(T−t),k=1,2,\sigma_k(t,T)=\sigma_ke^{-a_k(T-t)}, \qquad k=1,2,

the HJM drift is the sum of the two factor contributions. Correlation can instead be encoded with correlated Brownian motions and the covariance matrix must then appear between the loadings. Writing a simple sum while also declaring correlated Brownian components double-counts or misses correlation.

Not every apparently factorised function of T−tT-t makes the short rate Markov. Finite-dimensional realisations require special finite-rank structure. Exponentials and sums of exponentials are convenient because maturity shifts preserve their span. General state-dependent HJM volatility is an infinite-dimensional problem.


Simulation and calibration

A fixed-maturity Euler grid can be useful for checking a deterministic Gaussian HJM implementation. The code below computes the drift analytically for exponential factor loadings and updates only forwards whose maturity is still in the future.

import numpy as np def gaussian_hjm_step(fwd, maturities, t, dt, vols, decays, rng): active = maturities > t tau = maturities[active] - t load = vols[:, None] * np.exp(-decays[:, None] * tau) integ = (vols / decays)[:, None] * ( 1.0 - np.exp(-decays[:, None] * tau) ) drift = np.sum(load * integ, axis=0) shock = load.T @ rng.standard_normal(len(vols)) out = fwd.copy() out[active] += drift * dt + shock * np.sqrt(dt) return out

Here each factor Brownian motion is independent and each decay is strictly positive. A zero decay needs the Ho-Lee limit σk(T−t)\sigma_k(T-t). A production engine must also interpolate the curve, integrate forwards into discount factors, respect fixing dates and test convergence in both time and maturity. Advancing a rectangular matrix without treating the moving boundary T=tT=t is not enough.

Musiela parameterisation uses time to maturity x=T−tx=T-t and writes gt(x)=f(t,t+x)g_t(x)=f(t,t+x). The curve then satisfies an SPDE with a shift term ∂xgt(x)\partial_xg_t(x) in addition to the HJM drift and diffusion. That shift is not optional: it records every instrument becoming one time step shorter.

Calibration starts with the initial discount curve, then selects volatility loadings and factor correlations. Gaussian two- or three-factor specifications are usually fitted to selected ATM swaptions or caps with price or vega weights. An exact fit to a full cube is not guaranteed. A small factor set constrains correlations, while a Gaussian model cannot reproduce strike smile without local or stochastic volatility, jumps or another extension.

Historical principal components are useful for choosing factor shapes and starting values. They do not replace risk-neutral calibration. Historical covariance belongs to P\mathbb P; option prices constrain Q\mathbb Q.


Where HJM is and is not useful

HJM is useful when a desk wants direct control of forward-curve volatility, several curve factors or consistent joint dynamics across many bonds. It gives a precise no-arbitrage restriction and accepts today's whole initial curve as an input. Monte Carlo then handles path-dependent cash flows without pretending one short rate explains every curve movement.

The price is state dimension. General HJM is not Markov in rtr_t alone. Early exercise still needs regression, a low-dimensional Markov representation or another approximation; it does not become easy simply because the whole curve is simulated. Likewise, existence and integrability conditions still matter. The drift formula by itself is not a licence to choose an explosive volatility.

Short-rate models remain attractive for low-dimensional PDEs and lattices. HJM becomes attractive when their imposed curve dynamics are the larger error. The boundary is commercial as much as mathematical: use the smallest model that captures the risks the payoff can actually see.


References


Frequently Asked Questions

What does HJM model?

It models the evolution of the entire instantaneous forward-rate curve. A chosen volatility structure and the HJM drift restriction define a particular model within the framework.

What is the HJM drift condition?

Under the money-market risk-neutral measure, the forward drift is σ(t,T)⋅∫tTσ(t,u)du\boldsymbol\sigma(t,T)\cdot\int_t^T\boldsymbol\sigma(t,u)du. Under another measure, a measure-change term must be added.

Is HJM automatically arbitrage-free?

Not from a formula pasted into code. With a valid initial curve, an equivalent martingale measure and sufficient regularity and integrability, the HJM drift restriction enforces the bond-market no-arbitrage condition.

Is Hull-White a special case?

Yes. One-factor Hull-White corresponds to exponentially decaying deterministic forward volatility. That special shape permits a one-dimensional Markov short-rate representation.

Why use Musiela parameterisation?

It indexes the curve by time to maturity rather than calendar maturity. This fixes the curve domain, but introduces the maturity-shift derivative in the SPDE.

Can Gaussian HJM fit a volatility smile?

Not by itself. Deterministic Gaussian HJM generates Gaussian rate distributions. Smile calibration needs an extension such as local volatility, stochastic volatility or non-Gaussian drivers.

Skip the £25k programme - try the alternative

Master's programmes are slow and expensive. Quantt is a self-paced alternative. Start free with a real lesson and interview practice, then unlock 50+ courses and your personalised plan.

Free to start · No credit card required