From Vasicek Bond Prices to Yield Curves
A zero-coupon bond pays one unit at maturity, so its price contains the market's discounting information at that maturity. In the Vasicek model, the price is exponential-affine in the current short rate. Taking a logarithm converts that price into a continuously compounded yield; differentiating its logarithm with respect to maturity gives the instantaneous forward rate. These transformations also make it possible to measure how sensitive the price is to the current rate.
Work on a filtered probability space \((\Omega,\mathcal{F},(\mathcal{F}_t),\mathbb{P})\), and let \(\mathbb{Q}\) be the risk-neutral measure. Under \(\mathbb{Q}\), suppose the short rate satisfies \(dr_t=a(b-r_t)\,dt+\sigma\,dB_t\), where \(a>0\), \(b\in\mathbb{R}\), \(\sigma\geq0\), and \(B_t\) is Brownian motion under \(\mathbb{Q}\). Here \(a\) is the mean-reversion speed, \(b\) the long-run mean, and \(\sigma\) the diffusion coefficient. Pricing expectations are under \(\mathbb{Q}\), not the physical measure \(\mathbb{P}\). Any Ito integral used with this model is understood to have an adapted, progressively measurable integrand \(H_s\) satisfying \(\mathbb{E}^{\mathbb{Q}}\int_0^T H_s^2\,ds<\infty\); no stochastic integral is needed in the calculations below.
Write \(\tau=T-t\) for time to maturity and define \(B(\tau)=(1-e^{-a\tau})/a\). The affine Vasicek bond-pricing formula, obtained in the earlier material on affine Vasicek bond pricing, is \(P(t,T)=A(\tau)e^{-B(\tau)r_t}\), where
For \(\tau>0\), define the continuously compounded yield \(y(t,T)=-\log P(t,T)/\tau\). Define the instantaneous forward rate by \(f(t,T)=-\partial_T\log P(t,T)\), with \(t\) and \(r_t\) held fixed. Because \(\tau=T-t\), this is also \(-\partial_\tau\log P(t,t+\tau)\).
Yield and Forward Formulas
Proof. Since \(\log P(t,T)=\log A(\tau)-r_tB(\tau)\), the yield is \((r_tB(\tau)-\log A(\tau))/\tau\). Substituting the stated expression for \(\log A\) gives \[ y(t,T)=\frac{r_tB}{\tau} -\left(b-\frac{\sigma^2}{2a^2}\right)\left(\frac{B}{\tau}-1\right) +\frac{\sigma^2B^2}{4a\tau}, \] which rearranges to the yield formula. In particular, the contribution from the first volatility term has a minus sign.
For the forward rate, \(B'(\tau)=e^{-a\tau}\). Differentiating the displayed expression for \(\log A\) gives \[ (\log A)'(\tau)=\left(b-\frac{\sigma^2}{2a^2}\right)(e^{-a\tau}-1) -\frac{\sigma^2}{2a}B(\tau)e^{-a\tau}. \] Consequently \(f=r_tB'-(\log A)'=r_te^{-a\tau}-(\log A)'\). Substituting \(B=(1-e^{-a\tau})/a\) and collecting terms yields the stated forward formula. For the short-maturity limits, \(B(\tau)/\tau\to1\), \(B(\tau)\to0\), and \(e^{-a\tau}\to1\). The yield therefore tends to \(r_t\), and the forward rate does as well. For long maturities, \(B(\tau)\to1/a\), \(B(\tau)/\tau\to0\), and \(e^{-a\tau}\to0\). In the yield formula the last term also tends to zero because \(B(\tau)\) stays bounded while \(\tau\to\infty\); both limits are \(b-\sigma^2/(2a^2)\). \(\square\)
Worked Example: Yield and Forward at One-Year Maturity
Take \(a=1\), \(b=r_t=0.04\), \(\sigma=0.2\), and \(\tau=1\). Compute the yield and forward rate exactly in terms of \(e^{-1}\), then evaluate them to four significant digits.
Here \(\sigma^2=0.04\) and \(B(1)=1-e^{-1}\). Since \(r_t=b\), the rate-difference term in the yield vanishes. Its volatility terms are \[ -\frac{0.04}{2}(1-B(1))+\frac{0.04B(1)^2}{4} =-0.02e^{-1}+0.01(1-e^{-1})^2. \] Thus \(y=0.04-0.02e^{-1}+0.01(1-e^{-1})^2\). Using \(e^{-1}\approx0.3679\), this is \(0.04-0.007358+0.003996\approx0.03664\).
The forward formula gives \(f=0.04-0.02(1-e^{-1})^2\approx0.04-0.007992=0.03201\). As a price check, \(\log A=0.02(B(1)-1)-0.01B(1)^2=-0.02e^{-1}-0.01(1-e^{-1})^2\approx-0.01135\). Therefore \(-\log P=r_tB(1)-\log A\approx0.02528+0.01135=0.03664\), agreeing with the yield since \(\tau=1\).
How Parameters Shape the Curves
The current rate enters the yield with coefficient \(B(\tau)/\tau\), and the forward with coefficient \(e^{-a\tau}\). Both coefficients are positive. The current short rate therefore affects both rates in the same direction, but its influence on the forward decays exponentially with maturity. The yield averages rate information over the full time to maturity, so its loading \(B(\tau)/\tau\) decays more gradually.
The parameter \(b\) enters the yield with coefficient \(1-B(\tau)/\tau\), which is positive for \(\tau>0\), since \(1-e^{-a\tau}<a\tau\). It enters the forward with coefficient one. The long-maturity level is not \(b\) itself when volatility is nonzero: it is \(b-\sigma^2/(2a^2)\). The mean-reversion speed \(a\) determines how quickly \(e^{-a\tau}\) decays and how quickly \(B(\tau)\) approaches \(1/a\). These formulas describe its role without implying that every curve quantity is monotone in \(a\) for all parameter choices.
Proof. The forward coefficient is \(-(1-e^{-a\tau})^2/(2a^2)\), which is strictly negative because \(a\tau>0\). For the yield coefficient put \(x=a\tau>0\) and \(u=1-e^{-x}\). Substitution of \(B=u/a\) gives the coefficient \[ \frac{1}{2a^2}\left(-1+\frac{u}{x}+\frac{u^2}{2x}\right). \] It remains to show \(u+u^2/2<x\). Define \(g(x)=x-u-u^2/2\), with \(u=1-e^{-x}\). Then \(g(0)=0\), and differentiation gives \[ g'(x)=1-e^{-x}(1+u)=1-2e^{-x}+e^{-2x}=(1-e^{-x})^2>0 \] for \(x>0\). Hence \(g(x)>0\), proving \(u+u^2/2<x\); the yield coefficient is strictly negative. \(\square\)
Worked Example: Checking the Volatility Effect
For \(a=1\), \(\tau=1\), and \(r_t=b\), compare the volatility contributions to the yield and forward. With \(u=1-e^{-1}\), their coefficients per unit of \(\sigma^2\) are \(-\tfrac12(1-u)+\tfrac14u^2\) and \(-\tfrac12u^2\), respectively.
Substituting \(e^{-1}\approx0.3679\) gives \(u\approx0.6321\). The yield coefficient is \(-0.5(0.3679)+0.25(0.6321)^2\approx-0.18395+0.09987=-0.08408\). The forward coefficient is \(-0.5(0.6321)^2\approx-0.1998\). Both are negative, as the proposition requires. Multiplying by \(\sigma^2=0.04\) gives contributions of approximately \(-0.003363\) to the yield and \(-0.007992\) to the forward. For the yield, adding the baseline \(b=0.04\) gives \(0.03664\), consistent with the preceding example.
Duration from Price Sensitivities
“Duration” can refer to different sensitivities, so identify the variable being shifted. For a continuously compounded yield \(y\), a zero-coupon bond price is \(P=e^{-y\tau}\). Its modified duration with respect to that yield is \(-\partial_yP/P\). In the Vasicek model, one can instead measure the sensitivity to the current short rate \(r_t\), holding the other parameters and maturity fixed. Define this rate sensitivity as \(D_r=-\partial_{r_t}P/P\). These definitions need not give the same number.
Proof. For the yield definition, \(P=e^{-y\tau}\), so \(\partial_yP=-\tau e^{-y\tau}=-\tau P\), giving \(-\partial_yP/P=\tau\). For the model-rate sensitivity, \(P=A(\tau)e^{-B(\tau)r_t}\) and \(A,B\) do not depend on \(r_t\). Differentiating once gives \(\partial_{r_t}P=-B(\tau)P\), hence \(D_r=B(\tau)\). Differentiating again gives \(\partial_{r_t}^2P=B(\tau)^2P\). These identities hold also when \(\sigma=0\), because they follow directly from the affine price formula. \(\square\)
Worked Example: Current-Rate Duration and Convexity
Let \(a=1\), \(\tau=2\), \(b=0.05\), \(r_t=0.04\), and \(\sigma=0.1\). The sensitivity duration is \(B(2)=1-e^{-2}\approx1-0.1353=0.8647\) years. The normalized second derivative is \(B(2)^2=(1-e^{-2})^2\approx0.7477\).
Writing the price explicitly, \(\log P=\log A-0.04B(2)\), where \[ \log A=(0.05-0.005)(B(2)-2)-0.0025B(2)^2. \] The price sensitivity is exactly \(\partial_{r_t}P=-(1-e^{-2})P\), and the second derivative is \(\partial_{r_t}^2P=(1-e^{-2})^2P\). For a small rate change \(\Delta r\), the second-order price approximation is therefore \(P(r_t+\Delta r)/P(r_t)\approx1-B(2)\Delta r+\tfrac12B(2)^2(\Delta r)^2\). The negative linear term for a positive rate shift agrees with the exact fact that \(P=Ae^{-Br_t}\) decreases as \(r_t\) increases.
Common Pitfall: Losing the Yield Sign
A frequent error is to substitute the affine factor into the yield and change the sign of its first volatility term. For example, when \(a=1\), \(r_t=b=0.04\), \(\sigma=0.2\), and \(\tau=1\), the incorrect expression \(0.04+0.02e^{-1}+0.01(1-e^{-1})^2\) gives approximately \(0.05135\). But the correct calculation is \(y=(r_tB-\log A)/\tau\), with \(\log A=-0.02e^{-1}-0.01(1-e^{-1})^2\). It yields \(0.04-0.02e^{-1}+0.01(1-e^{-1})^2\approx0.03664\). Substitution into the bond price confirms the latter: \(-\log P=r_tB-\log A\approx0.03664\).
Also keep the two duration definitions separate. The yield duration of a zero-coupon bond is its maturity \(\tau\); its Vasicek sensitivity to the current short rate is \(B(\tau)\). Since \(B(\tau)<\tau\) for \(a,\tau>0\), these are not interchangeable. The model-rate sensitivity saturates at \(1/a\) for long maturities, while yield duration continues to grow with maturity.
Check Your Understanding
Use the affine Vasicek bond price and the definitions of yield, forward rate, and duration to answer the following.
- Derive the yield formula from \(\log P=\log A-r_tB\), identifying the sign of each volatility term.
- For \(\tau>0\), explain why the yield loading \(B(\tau)/\tau\) on \(r_t\) is positive and tends to zero as \(\tau\to\infty\).
- State the short- and long-maturity limits of the instantaneous forward rate.
- For \(a=1\), \(\tau=1\), and \(r_t=b\), write the volatility-squared coefficient in the yield and establish its sign.
- Explain why the yield duration and the Vasicek sensitivity duration differ, and give each expression for a zero-coupon bond.