Unit 9, lesson 67

Hull White and initial curve fitting

How the Hull-White model adds a time-dependent drift to a Gaussian short rate, how a deterministic shift fits an initial discount curve exactly, and how conditional bond prices follow from Gaussian integrals.

  • Video 67
  • Numeraires and short-rate models

A desk has bootstrapped a discount curve from market quotes and wants a short-rate model whose bond prices reproduce that curve exactly today, while keeping Gaussian dynamics for options and future scenarios. A Vasicek model has three constant parameters, so in general it cannot match a whole curve. Which time-dependent drift makes a Gaussian short rate fit any smooth initial curve, and what does the fitted model say about bond prices at a later date? This lesson writes the Hull-White rate as a mean-reverting Gaussian factor plus a deterministic shift, derives the shift and the drift from Gaussian discount moments, obtains the conditional bond price, and explains why fitting the curve does not identify the speed and volatility parameters.

Key terms

Hull-White model

Definition Under a pricing measure Q\mathbb{Q} for the money-market account Bt=exp⁡(∫0trs ds)B_t = \exp\bigl(\int_0^t r_s \, ds\bigr), the one-factor Hull-White model is

drt=(θ(t)−art)dt+σ dWtQ,\begin{aligned} dr_t &= \bigl(\theta(t) - a r_t\bigr) dt \\[0.4em] &\quad + \sigma \, dW^{\mathbb{Q}}_t , \end{aligned}

with constants a>0a > 0 per year and σ≥0\sigma \ge 0 per square-root year, a known r0r_0, and a deterministic, locally integrable function θ\theta in rate units per year. For s≤ts \le t the solution is

rt=rse−a(t−s)+∫ste−a(t−u)θ(u) du+σ∫ste−a(t−u) dWuQ.\begin{aligned} r_t &= r_s e^{-a(t - s)} \\[0.4em] &\quad + \int_s^t e^{-a(t - u)} \theta(u) \, du \\[0.4em] &\quad + \sigma \int_s^t e^{-a(t - u)} \, dW^{\mathbb{Q}}_u . \end{aligned}

In this convention θ(t)\theta(t) is the whole constant term of the drift. Another common convention writes the drift as a(θˉ(t)−rt)a\bigl(\bar{\theta}(t) - r_t\bigr) with a mean level θˉ=θ/a\bar{\theta} = \theta/a, so the same symbol has a different numerical meaning there, and formulas from the two conventions must not be mixed. A constant θ(t)=aθV\theta(t) = a\theta_V gives the Vasicek model with speed aa and level θV\theta_V. This lesson keeps aa and σ\sigma constant, and time-varying aa or σ\sigma is a further extension.

In plain words Hull-White keeps the Gaussian noise and the pull toward a level of the Vasicek model, but lets the target move over time on a schedule fixed today. That schedule is chosen so that the model’s bond prices match an observed curve.

Example With a=0.1a = 0.1 per year and the constant θ(t)=0.003\theta(t) = 0.003 per year, the model is Vasicek with long-run level 0.003/0.1=0.030.003/0.1 = 0.03. In the convention a(θˉ(t)−rt)a\bigl(\bar{\theta}(t) - r_t\bigr) the same model has θˉ=0.03\bar{\theta} = 0.03. A value read as 0.0030.003 in one convention and entered as 0.0030.003 in the other would change the drift constant by a factor of ten.

Gaussian short rate

Definition Write the rate as

rt=xt+ϕ(t),x0=0,r_t = x_t + \phi(t), \qquad x_0 = 0,

where ϕ\phi is a continuous deterministic function and the factor xx solves dxt=−axt dt+σ dWtQdx_t = -a x_t \, dt + \sigma \, dW^{\mathbb{Q}}_t. Then xt=σ∫0te−a(t−u) dWuQx_t = \sigma \int_0^t e^{-a(t - u)} \, dW^{\mathbb{Q}}_u is Gaussian with mean 00 and variance σ2(1−e−2at)/(2a)\sigma^2(1 - e^{-2at})/(2a), so rtr_t is Gaussian with mean ϕ(t)\phi(t) and the same variance, and given Fs\mathcal{F}_s it is Gaussian with mean ϕ(t)+xse−a(t−s)\phi(t) + x_s e^{-a(t - s)} and variance σ2(1−e−2a(t−s))/(2a)\sigma^2(1 - e^{-2a(t - s)})/(2a). With the kernel B(u,t)=(1−e−a(t−u))/aB(u,t) = (1 - e^{-a(t - u)})/a, a stochastic Fubini interchange, valid because the kernel is deterministic and square integrable on every finite horizon, gives

∫0txs ds=σ∫0tB(u,t) dWuQ,\begin{aligned} &\int_0^t x_s \, ds \\[0.4em] &\quad = \sigma \int_0^t B(u,t) \, dW^{\mathbb{Q}}_u , \end{aligned}

a centered Gaussian variable. Expanding the square of the kernel inside the Itô isometry gives its variance

V(t)=σ2a2(t−2(1−e−at)a+1−e−2at2a).\begin{aligned} V(t) &= \frac{\sigma^2}{a^2}\Bigl(t - \frac{2(1 - e^{-at})}{a} \\[0.4em] &\qquad + \frac{1 - e^{-2at}}{2a}\Bigr). \end{aligned}

For σ>0\sigma > 0 and t>0t > 0 the rate rtr_t is negative with positive Q\mathbb{Q}-probability. That is a property of the Gaussian model, not a failure of its solution.

In plain words The short rate at each future date is a Gaussian random variable, made of a fixed curve plus a mean-reverting noise that starts at zero. Its integral over time is Gaussian too, which makes discount factors easy to average.

Example With a=0.1a = 0.1 and σ=0.01\sigma = 0.01, the variance of r1r_1 is 0.0001 (1−e−0.2)/0.2≈0.00009060.0001\,(1 - e^{-0.2})/0.2 \approx 0.0000906, a standard deviation of about 0.0095200.009520. For the fitted flat curve of the later cards the mean is ϕ(1)≈0.030045\phi(1) \approx 0.030045, so Q(r1<0)≈Φ(−3.156)≈0.0008\mathbb{Q}(r_1 < 0) \approx \Phi(-3.156) \approx 0.0008. At five years the standard deviation is about 0.0177780.017778 and the mean about 0.0307740.030774, which gives Q(r5<0)≈0.042\mathbb{Q}(r_5 < 0) \approx 0.042. The integrated factor has V(5)≈0.002912V(5) \approx 0.002912.

Deterministic shift

Definition In the representation r=x+ϕr = x + \phi, the deterministic shift ϕ\phi moves the rate distribution at each date by a fixed amount and leaves its randomness to the factor xx. Since −∫0Txs ds-\int_0^T x_s \, ds is centered Gaussian with variance V(T)V(T), the model’s initial bond prices are

P(0,T)=EQ[e−∫0Trs ds]=e−∫0Tϕ(s) ds+V(T)/2.\begin{aligned} P(0,T) &= \mathbb{E}^{\mathbb{Q}}\bigl[e^{-\int_0^T r_s \, ds}\bigr] \\[0.4em] &= e^{-\int_0^T \phi(s) \, ds + V(T)/2} . \end{aligned}

Because x0=0x_0 = 0, the initial short rate is r0=ϕ(0)r_0 = \phi(0). When ϕ\phi is continuously differentiable, adding dϕ=ϕ′(t) dtd\phi = \phi'(t)\,dt to the equation for xx gives

drt=(ϕ′(t)+aϕ(t))dt−art dt+σ dWtQ,\begin{aligned} dr_t &= \bigl(\phi'(t) + a\phi(t)\bigr) dt \\[0.4em] &\quad - a r_t \, dt + \sigma \, dW^{\mathbb{Q}}_t , \end{aligned}

which is the Hull-White model with θ=ϕ′+aϕ\theta = \phi' + a\phi. Conversely, every Hull-White model has this form with ϕ(t)=EQ[rt]=r0e−at+∫0te−a(t−u)θ(u) du\phi(t) = \mathbb{E}^{\mathbb{Q}}[r_t] = r_0 e^{-at} + \int_0^t e^{-a(t - u)}\theta(u)\,du, because subtracting this mean from the solution leaves exactly the factor xx.

In plain words The model splits the rate into a random part that carries all the uncertainty and a fixed curve that carries the level. Moving the fixed curve changes every bond price without touching the randomness.

Example Take a constructed flat initial curve with forward rate 0.030.03, so the market price of the five-year bond is e−0.15≈0.860708e^{-0.15} \approx 0.860708. With σ=0\sigma = 0 the factor vanishes, V=0V = 0, and the shift ϕ≡0.03\phi \equiv 0.03 reproduces this price. With a=0.1a = 0.1 and σ=0.01\sigma = 0.01 the same shift gives

P(0,5)=e−0.15+0.002912/2≈0.861962,\begin{aligned} P(0,5) &= e^{-0.15 + 0.002912/2} \\[0.4em] &\approx 0.861962 , \end{aligned}

too high by about 0.0012540.001254. Setting the shift equal to the forward curve ignores the convexity that rate uncertainty adds to discount factors.

Initial curve fitting

Definition Let the initial market curve satisfy PM(0,T)>0P^M(0,T) > 0 for 0≤T≤T∗0 \le T \le T^{*} and PM(0,0)=1P^M(0,0) = 1, with instantaneous forward rate fM(0,T)=−∂Tln⁡PM(0,T)f^M(0,T) = -\partial_T \ln P^M(0,T) continuous on [0,T∗][0, T^{*}], so that PM(0,T)=exp⁡(−∫0TfM(0,s) ds)P^M(0,T) = \exp\bigl(-\int_0^T f^M(0,s)\,ds\bigr). The model fits the initial curve if P(0,T)=PM(0,T)P(0,T) = P^M(0,T) for every T∈[0,T∗]T \in [0, T^{*}]. With the shift representation this means

∫0Tϕ(s) ds=∫0TfM(0,s) ds+12V(T)\begin{aligned} &\int_0^T \phi(s) \, ds \\[0.4em] &\quad = \int_0^T f^M(0,s) \, ds \\[0.4em] &\qquad + \tfrac12 V(T) \end{aligned}

for every such TT. Both sides vanish at T=0T = 0, so for a continuous ϕ\phi the condition is equivalent to equality of the derivatives. With V′(T)=σ2(1−e−aT)2/a2V'(T) = \sigma^2(1 - e^{-aT})^2/a^2, the unique fitting shift is

ϕ(T)=fM(0,T)+σ22a2(1−e−aT)2.\begin{aligned} \phi(T) &= f^M(0,T) \\[0.4em] &\quad + \frac{\sigma^2}{2a^2}\bigl(1 - e^{-aT}\bigr)^2 . \end{aligned}

At T=0T = 0 it gives r0=ϕ(0)=fM(0,0)r_0 = \phi(0) = f^M(0,0), so the model’s initial short rate must equal the curve’s instantaneous forward rate at zero. The fit holds for every a>0a > 0 and σ≥0\sigma \ge 0, so it does not identify these parameters. Choosing them is a separate calibration to further instruments, such as caps or swaptions, under a declared objective and constraints.

In plain words To reproduce today’s curve, the shifted rate must equal the market forward rate plus a small convexity correction. The correction offsets the extra value that rate uncertainty gives every bond. It grows with the horizon and with σ\sigma, and it is smaller when mean reversion is stronger.

Example For the flat curve with fM(0,t)=0.03f^M(0,t) = 0.03, a=0.1a = 0.1 and σ=0.01\sigma = 0.01, the correction factor is σ2/(2a2)=0.005\sigma^2/(2a^2) = 0.005. Since (1−e−0.1)2≈0.009056(1 - e^{-0.1})^2 \approx 0.009056, the shift at one year is ϕ(1)≈0.03+0.000045≈0.030045280\phi(1) \approx 0.03 + 0.000045 \approx 0.030045280. At five years ϕ(5)≈0.030774\phi(5) \approx 0.030774, and for long horizons the correction approaches 0.0050.005. The fit is exact. At T=5T = 5, for example, ∫05ϕ(s) ds=0.15+V(5)/2\int_0^5 \phi(s)\,ds = 0.15 + V(5)/2, so P(0,5)=e−0.15≈0.860708P(0,5) = e^{-0.15} \approx 0.860708. For t>0t > 0 the expected short rate ϕ(t)\phi(t) under Q\mathbb{Q} lies above the forward rate fM(0,t)f^M(0,t), which is instead the expected short rate under the tt-forward measure of Numeraires and forward measures.

Time-dependent drift

Definition Assume in addition that fM(0,⋅)f^M(0,\cdot) is continuously differentiable on [0,T∗][0, T^{*}]. In the convention drt=(θ(t)−art) dt+σ dWtQdr_t = (\theta(t) - a r_t)\,dt + \sigma\,dW^{\mathbb{Q}}_t with r0=fM(0,0)r_0 = f^M(0,0), the drift function that fits the initial curve is θ=ϕ′+aϕ\theta = \phi' + a\phi for the fitting shift, which works out to

θ(t)=∂tfM(0,t)+afM(0,t)+σ22a(1−e−2at).\begin{aligned} \theta(t) &= \partial_t f^M(0,t) \\[0.4em] &\quad + a f^M(0,t) \\[0.4em] &\quad + \frac{\sigma^2}{2a}\bigl(1 - e^{-2at}\bigr). \end{aligned}

The derivative of the shift contributes (σ2/a)(e−at−e−2at)(\sigma^2/a)(e^{-at} - e^{-2at}), and aa times the shift contributes (σ2/(2a))(1−2e−at+e−2at)(\sigma^2/(2a))(1 - 2e^{-at} + e^{-2at}), and together these give the last term. It is the unique continuous θ\theta with this initial rate for which the model reproduces PM(0,T)P^M(0,T) on [0,T∗][0, T^{*}], since the fit determines ϕ\phi and ϕ\phi determines θ\theta. The drift depends on the slope of the forward curve, which is the second derivative of the log discount curve, and differentiation amplifies small errors in a bootstrapped curve. Smooth interpolation of the initial curve matters for this reason.

In plain words The drift has to follow the slope of the forward curve, pull toward its level and add a small convexity term. A jagged forward curve gives a jagged drift.

Example For the flat curve with a=0.1a = 0.1 and σ=0.01\sigma = 0.01 the slope term is zero, σ2/(2a)=0.0005\sigma^2/(2a) = 0.0005 and 1−e−0.2≈0.1812691 - e^{-0.2} \approx 0.181269, so the drift at one year is θ(1)≈0.003+0.000091≈0.003090635\theta(1) \approx 0.003 + 0.000091 \approx 0.003090635 per year, slightly above a⋅0.03=0.003a \cdot 0.03 = 0.003 because of the convexity term. If the forward curve carried a small wiggle 0.0001sin⁡(2πt)0.0001 \sin(2\pi t), one basis point with a period of one year, the drift would gain 0.0001(2πcos⁡(2πt)+0.1sin⁡(2πt))0.0001\bigl(2\pi\cos(2\pi t) + 0.1\sin(2\pi t)\bigr), whose amplitude is about 0.0006280.000628 per year, about a fifth of θ(1)\theta(1).

Conditional bond price

Definition In the fitted model, let 0≤t≤T≤T∗0 \le t \le T \le T^{*} and B(t,T)=(1−e−a(T−t))/aB(t,T) = (1 - e^{-a(T - t)})/a. Given Ft\mathcal{F}_t, the integral ∫tTxu du\int_t^T x_u \, du is Gaussian with mean B(t,T) xtB(t,T)\,x_t and variance vt,T=σ2∫tTB(u,T)2 duv_{t,T} = \sigma^2 \int_t^T B(u,T)^2 \, du. With It,T=∫tTru duI_{t,T} = \int_t^T r_u \, du and ct,T=∫tTϕ(u) duc_{t,T} = \int_t^T \phi(u) \, du, the Gaussian exponential moment gives

P(t,T)=EQ[e−It,T∣Ft]=e−ct,T−B(t,T) xt+vt,T/2.\begin{aligned} P(t,T) &= \mathbb{E}^{\mathbb{Q}}\bigl[e^{-I_{t,T}} \mid \mathcal{F}_t\bigr] \\[0.4em] &= e^{-c_{t,T} - B(t,T)\,x_t + v_{t,T}/2} . \end{aligned}

Substituting the fitting shift and xt=rt−ϕ(t)x_t = r_t - \phi(t) and evaluating the exponential integrals gives, with B=B(t,T)B = B(t,T),

P(t,T)=PM(0,T)PM(0,t) eG,P(t,T) = \frac{P^M(0,T)}{P^M(0,t)} \, e^{G},

where

G=B (fM(0,t)−rt)−σ2B24a(1−e−2at).\begin{aligned} G &= B\,\bigl(f^M(0,t) - r_t\bigr) \\[0.4em] &\quad - \frac{\sigma^2 B^2}{4a}\bigl(1 - e^{-2at}\bigr) . \end{aligned}

The price is exponential-affine in rtr_t with slope −B(t,T)-B(t,T) in the log, as in Vasicek. At t=0t = 0 both terms of GG vanish, because r0=fM(0,0)r_0 = f^M(0,0) and 1−e0=01 - e^{0} = 0, so P(0,T)=PM(0,T)P(0,T) = P^M(0,T) for every maturity. The ratio PM(0,T)/PM(0,t)P^M(0,T)/P^M(0,t) is the forward bond price fixed today, while P(t,T)P(t,T) is random through rtr_t.

In plain words The future price of a bond in the fitted model starts from today’s forward bond price. It is pushed down when the short rate at that date is above the curve’s forward rate and up when it is below, and a small convexity term lowers it further.

Example In the flat-curve model with a=0.1a = 0.1 and σ=0.01\sigma = 0.01, suppose the short rate at year one is 0.040.04, a constructed state rather than a market observation, and value the bond that matures at year five. Then B(1,5)=(1−e−0.4)/0.1≈3.296800B(1,5) = (1 - e^{-0.4})/0.1 \approx 3.296800 years, the forward bond price is e−0.12≈0.886920e^{-0.12} \approx 0.886920, the state term is 3.296800⋅(0.03−0.04)≈−0.0329683.296800 \cdot (0.03 - 0.04) \approx -0.032968, and the variance term is 0.00025⋅0.181269⋅3.2968002≈0.0004930.00025 \cdot 0.181269 \cdot 3.296800^2 \approx 0.000493. The exponent is −0.12−0.032968−0.000493≈−0.153461-0.12 - 0.032968 - 0.000493 \approx -0.153461, so

P(1,5)≈e−0.153461≈0.857735.\begin{aligned} P(1,5) &\approx e^{-0.153461} \\[0.4em] &\approx 0.857735 . \end{aligned}

The direct Gaussian expression of the first display gives the same value. If instead r1=0.03r_1 = 0.03, the forward rate at year one, the state term vanishes and P(1,5)≈0.886484P(1,5) \approx 0.886484, still below the forward bond price because of the variance term.

Check yourself

  1. For the flat initial curve with forward rate 0.030.03, a=0.1a = 0.1 and σ=0.01\sigma = 0.01, compute the fitting shift ϕ(2)\phi(2) and the drift θ(2)\theta(2) in the convention (θ(t)−art) dt(\theta(t) - a r_t)\,dt.
Show the answer

The shift is ϕ(2)=0.03+0.005 (1−e−0.2)2\phi(2) = 0.03 + 0.005\,(1 - e^{-0.2})^2. Since 1−e−0.2≈0.1812691 - e^{-0.2} \approx 0.181269, its square is about 0.0328590.032859, and ϕ(2)≈0.03+0.000164=0.030164\phi(2) \approx 0.03 + 0.000164 = 0.030164. The slope of the flat forward curve is zero, so the drift is

θ(2)=a⋅0.03+σ22a(1−e−0.4).\begin{aligned} \theta(2) &= a \cdot 0.03 \\[0.4em] &\quad + \frac{\sigma^2}{2a}\bigl(1 - e^{-0.4}\bigr). \end{aligned}

With a⋅0.03=0.003a \cdot 0.03 = 0.003, σ2/(2a)=0.0005\sigma^2/(2a) = 0.0005 and 1−e−0.4≈0.3296801 - e^{-0.4} \approx 0.329680, this is θ(2)≈0.003+0.000165≈0.003165\theta(2) \approx 0.003 + 0.000165 \approx 0.003165 per year. Both quantities exceed their zero-volatility values 0.030.03 and 0.0030.003 by convexity terms.

  1. A pricing library implements Hull-White with the drift a(θˉ(t)−rt)a\bigl(\bar{\theta}(t) - r_t\bigr). A colleague passes it the value θ(1)≈0.003091\theta(1) \approx 0.003091 from this page, with a=0.1a = 0.1, as θˉ(1)\bar{\theta}(1). What constant drift term does the library then use, what is the resulting drift at r=0.03r = 0.03, and what input is correct?
Show the answer

The library forms the constant term aθˉ(1)=0.1⋅0.003091≈0.000309a\bar{\theta}(1) = 0.1 \cdot 0.003091 \approx 0.000309 instead of 0.0030910.003091, so at r=0.03r = 0.03 its drift is about 0.000309−0.003=−0.0026910.000309 - 0.003 = -0.002691 per year, while the fitted model has 0.003091−0.003≈0.0000910.003091 - 0.003 \approx 0.000091 per year. The rate would be pushed down toward a level near 0.00310.0031, and the model would no longer reproduce the initial curve. The correct input is θˉ(1)=θ(1)/a≈0.030906\bar{\theta}(1) = \theta(1)/a \approx 0.030906, a mean level in rate units, not a drift rate. The two conventions describe the same model only when this rescaling is applied at every date.

  1. Two analysts fit the same flat curve with forward rate 0.030.03. One uses a=0.1a = 0.1 and the other a=0.3a = 0.3, both with σ=0.01\sigma = 0.01. Do both reproduce the curve? Compare their values of the bond maturing at year five, at year one, given r1=0.04r_1 = 0.04, and say what information could separate the two choices.
Show the answer

Both reproduce the curve exactly, because the fitting shift exists for every a>0a > 0 and σ≥0\sigma \ge 0. The shifts differ only slightly, for example ϕ(1)≈0.030045\phi(1) \approx 0.030045 and ϕ(1)≈0.030037\phi(1) \approx 0.030037. Their conditional bond prices differ more. For a=0.1a = 0.1 the previous card gives P(1,5)≈0.857735P(1,5) \approx 0.857735. For a=0.3a = 0.3 the slope is B(1,5)=(1−e−1.2)/0.3≈2.329353B(1,5) = (1 - e^{-1.2})/0.3 \approx 2.329353, the state term is about −0.023294-0.023294, the variance term is about 0.0002040.000204, the exponent is about −0.143498-0.143498, and

P(1,5)≈e−0.143498≈0.866323.\begin{aligned} P(1,5) &\approx e^{-0.143498} \\[0.4em] &\approx 0.866323 . \end{aligned}

Faster mean reversion pulls the high rate back sooner, so the bond loses less value. The initial curve cannot tell the two models apart. Prices of instruments that depend on rate volatility and on how future curves move, such as caps and swaptions, carry that information, and choosing aa and σ\sigma from them is a calibration with its own objective. A choice of σ=0\sigma = 0 would also fit the curve, but then the short rate at year one equals 0.030.03 with certainty, and the state r1=0.04r_1 = 0.04 cannot occur.

How this lesson connects