The Hull–White Model

CIR fixed Vasicek's negative-rates problem, but both models share a second, quieter weakness: a constant long-run mean b can't be tuned to match every point on today's real, humped, kinked, occasionally inverted market yield curve at once. For a trading desk that has to price a new swaption today, against bonds and swaps whose prices are already quoted in the market, that's disqualifying — a model that mis-prices the instruments you can already see traded will happily mis-price the ones you're trying to sell too. John Hull and Alan White's 1990 fix is almost embarrassingly simple: stop insisting on a constant mean, and let it vary with time instead.

From a constant mean to a moving target

The Hull–White (or "extended Vasicek") model replaces the constant product ab in Vasicek's drift with a deterministic, time-varying function \theta(t):

dr = \big[\theta(t) - a\,r\big]\,dt + \sigma\,dW.

Everything else is untouched — a is still the reversion speed, \sigma is still the constant volatility, and r is still pulled back toward a target level. The only change is that the target is no longer one fixed number b for all time — it's a whole curve \theta(t)/a that can be a different level at every future date.

That extra freedom is exactly enough to calibrate the model to fit today's entire observed yield curve exactly. Write f(0,t) for today's market instantaneous forward rate curve (readable straight off today's bond prices). Hull and White showed that choosing

\theta(t) = \frac{\partial f}{\partial t}(0,t) + a\,f(0,t) + \frac{\sigma^2}{2a}\Big(1 - e^{-2at}\Big)

forces the model's own bond prices, computed today, to reproduce f(0,t) — and hence today's whole discount curve — exactly, for every maturity at once. (You won't need to re-derive this any more than you re-derived Black–Scholes to price an option — treat it as a formula to feed today's curve into.) Notice one clean special case: at t=0, the last term vanishes (1 - e^0 = 0), leaving simply \theta(0) = f_t(0,0) + a\,r_0 — the model's very first instant of drift is pinned by nothing more than the slope of today's curve at the front end and today's actual short rate.

A constant target can't chase a moving curve

The picture below makes the whole point in one glance: a stylized "today's market forward curve" — humped, the way real curves usually are — against the single flat level a Vasicek-style constant mean is stuck offering. No matter where you slide that flat line, it can match the market curve at one maturity, or on average, but not everywhere at once. Hull–White's \theta(t) is precisely the function that bends the model's implied curve to trace the market curve exactly, point for point.

Worked example: \theta(0) and one later point

Take reversion speed a = 0.1, volatility \sigma = 0.01, and today's short rate (and forward curve level at t=0) r_0 = f(0,0) = 0.03, with the market forward curve rising at a slope of f_t(0,0) = 0.004 (40 basis points per year) right at the front end.

\theta(0) = 0.004 + 0.1\times 0.03 = 0.004 + 0.003 = 0.007.

Now look two years out. Suppose the market curve has flattened by then, with f(0,2) = 0.035 and a now-slightly-negative slope f_t(0,2) = -0.001. With e^{-2\times 0.1\times 2} = e^{-0.4} \approx 0.6703:

\theta(2) = -0.001 + 0.1\times 0.035 + \frac{(0.01)^2}{2\times 0.1}\big(1 - 0.6703\big) = -0.001 + 0.0035 + 0.000165 \approx 0.00267.

\theta(t) genuinely moves around as the shape of the market curve changes — it isn't just ab repeated forever, which is exactly the flexibility a single constant b could never offer.

A trading desk isn't just modelling interest rates in the abstract — it's pricing a new derivative relative to instruments the market has already priced. If a model doesn't reproduce today's quoted bond and swap prices, using it to price a new swaption creates an immediate, embarrassing arbitrage: the model disagrees with the market about the value of things everyone can already see traded, before it's even said anything about the new instrument. That mismatch shows up as "basis" that has to be plugged by hand, hedges that slip for no good reason, and P&L that doesn't reconcile. Hull–White (and its cousins — the Black–Karasinski, Cheyette, and full Heath–Jarrow–Morton frameworks all follow the same philosophy) trades away Vasicek's tidy interpretability of b as "the long-run rate" in exchange for internal consistency with the market you're actually quoting into. In practice, exact curve-fitting almost always wins the trade.

Two traps specific to Hull–White: