Quant Memo
Advanced

Heath-Jarrow-Morton Framework

Instead of modeling one short rate and deriving the whole curve from it, HJM directly models how every forward rate on the curve moves at once — trading a simple one-dimensional model for a much bigger one that automatically stays arbitrage-free.

Prerequisites: Hull-White Model, Forward Rates and Implied Forwards

A short-rate model like Vasicek or Hull-White describes one number — the instantaneous short rate — and derives every bond price and every forward rate on the curve mathematically from that one number's dynamics. That's economical, but it also means the entire shape of the curve is a byproduct of a single equation, which limits how flexible the curve's future evolution can be. Heath-Jarrow-Morton takes the opposite approach: model the movement of the entire forward curve at once, every maturity simultaneously, as an infinite family of correlated random processes. It's the difference between describing a rope by the motion of its one attached end versus describing the motion of every point along its length.

The no-arbitrage drift condition

Each instantaneous forward rate f(t,T)f(t,T) (the rate agreed today, at time tt, for lending starting at future time TT) evolves as

df(t,T)=α(t,T)dt+σ(t,T)dWt,df(t,T) = \alpha(t,T)\, dt + \sigma(t,T)\, dW_t,

subject to a crucial restriction on the drift: α(t,T)=σ(t,T)tTσ(t,u)du\alpha(t,T) = \sigma(t,T) \int_t^T \sigma(t,u)\, du. In plain English: you're free to choose any volatility function σ(t,T)\sigma(t,T) for how bumpy each forward rate is — that's the modeling choice — but once you've chosen it, the drift α(t,T)\alpha(t,T) is no longer free; it's forced to a specific value by the volatility alone, otherwise the model would allow arbitrage between bonds of different maturities. This is HJM's central insight: pick the volatility structure, and no-arbitrage picks the drift for you.

Worked example 1 — a single, simple volatility function

Take the simplest possible case, σ(t,T)=σ0\sigma(t,T) = \sigma_0, a constant, independent of both tt and TT (this actually collapses to something close to the Ho-Lee model). The drift condition becomes α(t,T)=σ0tTσ0du=σ02(Tt)\alpha(t,T) = \sigma_0 \int_t^T \sigma_0\, du = \sigma_0^2 (T - t). With σ0=1%\sigma_0 = 1\% and a forward rate for Tt=3T - t = 3 years ahead of the current time tt: α=(0.01)2×3=0.0003\alpha = (0.01)^2 \times 3 = 0.0003, i.e., a drift of 3 basis points per year — small but forced, not chosen, entirely determined once σ0\sigma_0 and the time gap were fixed.

Worked example 2 — why an arbitrary choice breaks

Suppose a modeler instead picked σ(t,T)=σ0ea(Tt)\sigma(t,T) = \sigma_0 e^{-a(T-t)} (volatility decaying for longer-dated forwards, a common realistic choice) but then also independently guessed a drift α(t,T)=0.01\alpha(t,T) = 0.01 flat, ignoring the HJM condition. With σ0=1.5%\sigma_0 = 1.5\%, a=0.1a = 0.1, and Tt=5T - t = 5: the required drift is α=0.015e0.5×tt+50.015e0.1(ut)du\alpha = 0.015 e^{-0.5} \times \int_t^{t+5} 0.015 e^{-0.1(u-t)}\, du. Evaluating the integral, 050.015e0.1sds=0.015×1e0.50.1=0.015×3.935=0.0590\int_0^5 0.015 e^{-0.1s}\, ds = 0.015 \times \frac{1 - e^{-0.5}}{0.1} = 0.015 \times 3.935 = 0.0590. So required α=0.015×0.6065×0.05900.000536\alpha = 0.015 \times 0.6065 \times 0.0590 \approx 0.000536, about 5.4 basis points — nowhere near the guessed 1% (100bp). Using the wrong, un-derived drift here would misprice every bond consistently, since it implies risk-free profit is available by trading along the curve.

Path explorer
13055time →
end (bold path) 100.38spread of ends 58.966 independent paths, same settings

Imagine the paths above not as one line but as an entire stack of correlated lines, one per maturity along the curve, all evolving together — that stack, with drifts locked to volatilities by the no-arbitrage condition, is what an HJM model actually simulates.

maturity along the curve t = 0 curve t = 1yr curve
HJM models the whole curve shifting and twisting together over time, not just one point on it — every maturity's forward rate has its own volatility, correlated with the others.

What this means in practice

Most practical short-rate models, including Hull-White, can be shown to be special cases of HJM with particular volatility structures — HJM is the general umbrella, useful for understanding why a chosen model is or isn't arbitrage-free, even though the fully general version is often too computationally heavy (it can be non-Markovian, requiring the whole path history) to use directly for pricing.

The most common mistake is picking a volatility function that "looks reasonable" and a drift separately, by intuition, instead of deriving the drift from the volatility via the no-arbitrage condition. Any mismatch between the two silently introduces arbitrage into the model — it will still produce prices, but they will be internally inconsistent, and inconsistency of this kind rarely announces itself before it costs money.

HJM models the entire forward curve's evolution directly instead of deriving it from a short rate, and its central rule is that once you choose the volatility structure, no-arbitrage forces a specific drift — you never get to choose both independently.

Related concepts

Practice in interviews

Further reading

  • Heath, Jarrow, Morton, Bond Pricing and the Term Structure of Interest Rates (1992)
ShareTwitterLinkedIn