Zero-Coupon Bond Pricing Under CIR¶
The Cox-Ingersoll-Ross model belongs to the affine class of short-rate models, which means zero-coupon bond prices admit an exponential-affine closed-form solution. This analytical tractability is one of the main reasons the CIR model remains widely used in practice. Unlike the Vasicek model, the CIR bond price formula involves a square-root characteristic that prevents negative rates from appearing in the discount factor. This section derives the closed-form bond price formula from first principles, starting from the bond pricing PDE, introducing the affine ansatz, solving the resulting Riccati ordinary differential equations, and verifying the solution.
Risk-neutral pricing framework¶
Under the risk-neutral measure \(\mathbb{Q}\), the CIR short rate satisfies
where \(\kappa > 0\) is the speed of mean reversion, \(\theta > 0\) is the long-run mean, and \(\sigma > 0\) is the volatility parameter. The zero-coupon bond price at time \(t\) for maturity \(T\) is defined by the conditional expectation
Because the short rate is Markovian, this price depends only on the current rate \(r_t\) and the time to maturity \(\tau = T - t\), so we write \(P(t,T) = f(t, r_t)\).
Bond pricing PDE¶
Applying Ito's lemma to \(f(t, r_t)\) and requiring the discounted bond price \(e^{-\int_0^t r_s\,ds}f(t,r_t)\) to be a \(\mathbb{Q}\)-martingale yields the fundamental PDE
with the terminal condition \(f(T, r) = 1\) for all \(r \geq 0\). The key feature distinguishing this PDE from the Vasicek case is the factor of \(r\) multiplying both \(f_{rr}\) (from the square-root diffusion) and \(f\) (from discounting). This state-dependent structure is precisely what makes the CIR model affine.
Exponential-affine ansatz¶
The affine structure of the CIR PDE suggests searching for a solution of the form
where \(\tau = T - t\) is the time to maturity, \(A(\tau)\) is a deterministic function, and \(B(\tau)\) determines the rate sensitivity. The terminal condition \(f(T, r) = 1\) translates to
Computing the required partial derivatives (noting \(\partial_t = -\partial_\tau\)):
Deriving the Riccati system¶
Substituting the ansatz into the PDE and dividing through by \(A(\tau)\exp(-B(\tau)\,r)\) yields
Collecting terms by powers of \(r\):
- Coefficient of \(r\): \(B'(\tau) + \kappa\,B(\tau) + \frac{1}{2}\sigma^2 B(\tau)^2 - 1 = 0\)
- Constant term: \(-\frac{A'(\tau)}{A(\tau)} - \kappa\theta\,B(\tau) = 0\)
Since these must hold for all \(r \geq 0\), each coefficient must vanish separately, producing the system:
Riccati ODE for \(B\):
Linear ODE for \(A\):
equivalently \(\ln A(\tau) = -\kappa\theta\int_0^\tau B(s)\,ds\).
Solving the Riccati ODE¶
The Riccati equation for \(B\) is a quadratic ODE. Define the discriminant
This quantity \(\gamma\) plays a central role analogous to \(\kappa\) in the Vasicek model but incorporates the volatility through the square-root diffusion. The solution is
Derivation of \(B(\tau)\)
The Riccati ODE \(B' = 1 - \kappa B - \frac{1}{2}\sigma^2 B^2\) with \(B(0) = 0\) can be solved by factoring the right-hand side. Write
where \(B_\pm = \frac{-\kappa \pm \gamma}{\sigma^2}\) are the roots of \(1 - \kappa B - \frac{1}{2}\sigma^2 B^2 = 0\). Using partial fractions and separating variables:
Applying \(B(0) = 0\) to determine \(C\), then solving for \(B(\tau)\), yields the stated formula after algebraic simplification using \(B_+ - B_- = \frac{2\gamma}{\sigma^2}\). \(\square\)
Verification of initial condition: At \(\tau = 0\), the numerator \(2(e^0 - 1) = 0\), so \(B(0) = 0\). \(\checkmark\)
Behavior as \(\tau \to \infty\): As \(\tau \to \infty\), \(B(\tau) \to \frac{2}{\gamma + \kappa} = B_+\), which is the positive equilibrium of the Riccati ODE.
Solving for A¶
Substituting \(B(\tau)\) into the ODE for \(A\) and integrating:
After evaluating the integral (which requires careful manipulation of the exponential terms), the result is
Derivation of \(A(\tau)\)
Define \(D(\tau) = (\gamma + \kappa)(e^{\gamma\tau} - 1) + 2\gamma\). Then \(B(\tau) = \frac{2(e^{\gamma\tau} - 1)}{D(\tau)}\) and
One can verify that
so the integral becomes
Since \(D(0) = 2\gamma\), this gives
Exponentiating yields the stated formula. \(\square\)
Verification of initial condition: At \(\tau = 0\), the denominator equals \(2\gamma\) and the exponential equals \(1\), giving \(A(0) = 1\). \(\checkmark\)
Complete bond price formula¶
Combining both components, the CIR zero-coupon bond price is
where \(\tau = T - t\) and
Interpreting the formula
The bond price has two components: \(A(\tau)\) captures the effect of mean reversion and long-run mean on accumulated discounting, while \(e^{-B(\tau)r_t}\) captures the sensitivity to the current short rate. Higher current rates \(r_t\) reduce the bond price through the exponential factor, with the sensitivity governed by \(B(\tau)\).
Properties of the bond price¶
Monotonicity in the short rate¶
Since \(B(\tau) > 0\) for \(\tau > 0\), the bond price is strictly decreasing in \(r_t\):
This confirms the economic intuition that higher current interest rates reduce the present value of future cash flows.
Short-maturity limit¶
As \(\tau \to 0^+\):
so for very short maturities, \(P(t,T) \approx e^{-r_t\tau}\), which matches the instantaneous discounting rate.
Long-maturity limit¶
As \(\tau \to \infty\):
Therefore the long-maturity yield is
This long rate is independent of the current short rate \(r_t\) and depends only on the model parameters \(\kappa\), \(\theta\), and \(\sigma\).
Comparison with the Vasicek formula¶
| Feature | Vasicek | CIR |
|---|---|---|
| Ansatz | \(P = A(\tau)e^{-B(\tau)r}\) | \(P = A(\tau)e^{-B(\tau)r}\) |
| \(B(\tau)\) ODE | \(B' = 1 - \kappa B\) (linear) | \(B' = 1 - \kappa B - \frac{1}{2}\sigma^2 B^2\) (Riccati) |
| \(B(\tau)\) solution | \(\frac{1 - e^{-\kappa\tau}}{\kappa}\) | \(\frac{2(e^{\gamma\tau} - 1)}{(\gamma+\kappa)(e^{\gamma\tau}-1)+2\gamma}\) |
| Discriminant | \(\kappa\) (trivial) | \(\gamma = \sqrt{\kappa^2 + 2\sigma^2}\) |
| Rate dependence of vol | None (\(\sigma\) constant) | \(\sigma\sqrt{r}\) (state-dependent) |
| Negative rates possible | Yes | No (if Feller condition holds) |
The additional quadratic term \(\frac{1}{2}\sigma^2 B^2\) in the CIR Riccati ODE arises from the state-dependent volatility \(\sigma\sqrt{r}\), which introduces an \(r\)-dependent contribution to \(f_{rr}\) in the PDE. When \(\sigma \to 0\), both models converge to pure mean-reversion discounting.
Numerical example¶
Consider CIR parameters \(\kappa = 0.5\), \(\theta = 0.06\), \(\sigma = 0.1\), and current rate \(r_0 = 0.04\).
Step 1: Compute the discriminant:
Step 2: For \(\tau = 5\) years, compute \(B(5)\):
Step 3: Compute \(A(5)\):
Step 4: Bond price:
The corresponding continuously compounded yield is \(R(0, 5) = -\ln(0.770)/5 \approx 0.0523\), or about 5.23%.
Summary¶
The CIR model produces zero-coupon bond prices of the exponential-affine form \(P(t,T) = A(\tau)e^{-B(\tau)r_t}\), where the functions \(A\) and \(B\) solve a coupled system of ordinary differential equations. The Riccati ODE for \(B(\tau)\) --- quadratic rather than linear as in Vasicek --- arises from the state-dependent volatility \(\sigma\sqrt{r}\) and is solved in closed form using the discriminant \(\gamma = \sqrt{\kappa^2 + 2\sigma^2}\). The resulting formula preserves non-negativity of rates (when the Feller condition holds), provides the long-run yield \(R_\infty = 2\kappa\theta/(\gamma + \kappa)\), and reduces to instantaneous discounting at short maturities. This closed-form solution is the foundation for yield curve fitting, bond option pricing, and calibration procedures developed in subsequent sections.
Exercises¶
Exercise 1. Substitute the exponential-affine ansatz \(f(t,r) = A(\tau)e^{-B(\tau)r}\) into the CIR bond pricing PDE and derive the two ODEs for \(A\) and \(B\) by collecting powers of \(r\). Show each step explicitly.
Solution to Exercise 1
The CIR bond pricing PDE is \(f_t + \kappa(\theta - r)f_r + \frac{1}{2}\sigma^2 r\,f_{rr} - rf = 0\) with \(f(T,r) = 1\).
Substitute \(f(t,r) = A(\tau)e^{-B(\tau)r}\) with \(\tau = T - t\). Since \(\partial_t = -\partial_\tau\):
Step 1: Compute \(f_t\).
Step 2: Compute \(f_r\) and \(f_{rr}\).
Step 3: Substitute into the PDE.
Step 4: Divide by \(Ae^{-Br}\).
Step 5: Collect powers of \(r\).
Coefficient of \(r\):
Constant term:
With initial conditions \(B(0) = 0\) and \(A(0) = 1\) from \(f(T,r) = 1\).
Exercise 2. For \(\kappa = 0.3\), \(\theta = 0.05\), \(\sigma = 0.08\), compute the discriminant \(\gamma\), then evaluate \(B(\tau)\) for \(\tau = 1, 5, 10, 30\). What is the limiting value \(B_\infty = 2/(\gamma + \kappa)\)? How close is \(B(30)\) to \(B_\infty\)?
Solution to Exercise 2
Given \(\kappa = 0.3\), \(\theta = 0.05\), \(\sigma = 0.08\):
Computing \(B(\tau)\) for each maturity:
For \(\tau = 1\): \(e^{0.3206} = 1.378\).
For \(\tau = 5\): \(e^{1.603} = 4.968\).
For \(\tau = 10\): \(e^{3.206} = 24.68\).
For \(\tau = 30\): \(e^{9.618} \approx 15{,}043\).
\(B(30) \approx 3.223\) vs \(B_\infty = 3.222\): the difference is less than 0.001, so \(B(30)\) is virtually equal to \(B_\infty\).
Exercise 3. Factor the Riccati ODE as \(B' = -\frac{\sigma^2}{2}(B - B_+)(B - B_-)\) where \(B_{\pm} = (-\kappa \pm \gamma)/\sigma^2\). For \(\kappa = 0.5\) and \(\sigma = 0.1\), compute \(B_+\) and \(B_-\). Verify that \(B_+ > 0\) is the stable equilibrium and \(B_- < 0\) is the unstable equilibrium.
Solution to Exercise 3
For \(\kappa = 0.5\), \(\sigma = 0.1\): \(\gamma = \sqrt{0.25 + 0.02} = 0.5196\).
Verification: \(B_+ = 1.961 > 0\) \(\checkmark\) and \(B_- = -101.96 < 0\) \(\checkmark\).
Stability analysis: At a fixed point \(B^*\), the linearized ODE is \(\delta\dot{B} = (-\kappa - \sigma^2 B^*)\delta B\). The eigenvalue is \(-\kappa - \sigma^2 B^*\).
At \(B_+\): eigenvalue \(= -\kappa - \sigma^2 B_+ = -0.5 - 0.01 \times 1.961 = -0.5196 = -\gamma < 0\). Stable.
At \(B_-\): eigenvalue \(= -\kappa - \sigma^2 B_- = -0.5 - 0.01 \times (-101.96) = -0.5 + 1.0196 = +0.5196 = +\gamma > 0\). Unstable.
Since \(B(0) = 0\) lies between \(B_-\) and \(B_+\), and \(B_+\) is the stable equilibrium, the solution \(B(\tau)\) flows toward \(B_+\) as \(\tau \to \infty\). The equilibrium \(B_-\) is unstable and repels nearby trajectories, so it is never approached.
Exercise 4. Compute the complete CIR bond price \(P(0, 10)\) for \(\kappa = 0.5\), \(\theta = 0.06\), \(\sigma = 0.10\), \(r_0 = 0.05\). Show each intermediate step: \(\gamma\), \(e^{\gamma \cdot 10}\), \(B(10)\), the denominator \(D(10)\), \(A(10)\), and finally \(P = A \cdot e^{-Br_0}\).
Solution to Exercise 4
Given \(\kappa = 0.5\), \(\theta = 0.06\), \(\sigma = 0.10\), \(r_0 = 0.05\), \(\tau = 10\).
Step 1: \(\gamma = \sqrt{0.25 + 0.02} = \sqrt{0.27} \approx 0.5196\).
Step 2: \(e^{\gamma \cdot 10} = e^{5.196} \approx 180.7\).
Step 3: Denominator \(D(10) = (0.5196 + 0.5)(180.7 - 1) + 2(0.5196) = 1.0196 \times 179.7 + 1.039 = 183.2 + 1.039 = 184.3\).
Step 4: \(B(10) = 2(180.7 - 1)/184.3 = 359.4/184.3 \approx 1.950\).
Step 5: Exponent for \(A\): \(2\kappa\theta/\sigma^2 = 2(0.5)(0.06)/0.01 = 6\).
Step 6: Bond price:
Exercise 5. The bond price sensitivity to the short rate is \(\partial P/\partial r_t = -B(\tau)P(t,T)\). For a $1,000,000 face value 10-year zero-coupon bond with the parameters from Exercise 4, compute the DV01 (dollar value of a one-basis-point change in \(r_t\)). Compare with the Vasicek DV01 using \(B^{\text{Vas}}(10) = (1 - e^{-\kappa \cdot 10})/\kappa\).
Solution to Exercise 5
The DV01 is:
From Exercise 4: \(B(10) = 1.950\) and \(P(0,10) = 0.554\). With face value $1,000,000:
CIR DV01:
Vasicek DV01: \(B^{\text{Vas}}(10) = (1 - e^{-5})/0.5 = (1 - 0.00674)/0.5 = 1.987\).
For a fair comparison, we need the Vasicek bond price. The Vasicek \(A(\tau)\) is different, but using the same parameters for \(\kappa\) and \(\theta\), the Vasicek bond price at \(\tau = 10\) is approximately \(P^{\text{Vas}} \approx 0.538\) (lower due to larger \(B\) and additional convexity terms).
The DV01 values are similar because the larger \(B^{\text{Vas}}\) is partially offset by the smaller \(P^{\text{Vas}}\). The CIR DV01 is slightly larger in absolute terms due to the higher bond price.
Exercise 6. Show that in the limit \(\sigma \to 0\), the CIR bond price formula reduces to pure deterministic discounting: \(P(t,T) = \exp(-\int_t^T r_s\,ds)\) where \(r_s = \theta + (r_t - \theta)e^{-\kappa(s-t)}\). Verify by showing \(\gamma \to \kappa\), \(B(\tau) \to (1 - e^{-\kappa\tau})/\kappa\), and computing \(\lim_{\sigma \to 0} A(\tau)\).
Solution to Exercise 6
As \(\sigma \to 0\): \(\gamma \to \kappa\).
\(B(\tau)\) limit: As shown previously, \(B(\tau) \to (1 - e^{-\kappa\tau})/\kappa\), the Vasicek form.
\(A(\tau)\) limit: The exponent \(2\kappa\theta/\sigma^2 \to \infty\). Write:
As \(\gamma \to \kappa\), \(D(\tau) \to 2\kappa(e^{\kappa\tau}-1) + 2\kappa = 2\kappa e^{\kappa\tau}\).
So \(\ln A(\tau) = (2\kappa\theta/\sigma^2) \times \ln(1 - \epsilon)\) where \(\epsilon \to 0\). We need L'Hopital or a more careful expansion. Writing \(\ln A(\tau) = -\kappa\theta\int_0^\tau B(s)\,ds\):
As \(\sigma \to 0\), \(B(s) \to (1 - e^{-\kappa s})/\kappa\), so:
Therefore:
With \(B(\tau) = (1-e^{-\kappa\tau})/\kappa\):
The deterministic rate path is \(r_s = \theta + (r_t - \theta)e^{-\kappa(s-t)}\). Its integral is:
So \(\ln P = -\int_t^T r_s\,ds\), confirming \(P(t,T) = \exp(-\int_t^T r_s\,ds)\) in the deterministic limit. \(\checkmark\)
Exercise 7. Compare the CIR and Vasicek bond prices for \(\tau = 1, 5, 10, 30\) using \(\kappa = 0.5\), \(\theta = 0.06\), \(\sigma = 0.10\), \(r_0 = 0.04\). For which maturities is the difference largest? Explain why the CIR price is higher than Vasicek for long maturities by relating the difference to the saturation levels \(B_\infty^{\text{CIR}}\) versus \(B_\infty^{\text{Vas}} = 1/\kappa\).
Solution to Exercise 7
Using \(\kappa = 0.5\), \(\theta = 0.06\), \(\sigma = 0.10\), \(r_0 = 0.04\), \(\gamma = 0.5196\).
CIR bond prices (from the formulas):
| \(\tau\) | \(B^{\text{CIR}}\) | \(A^{\text{CIR}}\) | \(P^{\text{CIR}}\) |
|---|---|---|---|
| 1 | 0.786 | 0.989 | 0.958 |
| 5 | 1.813 | 0.828 | 0.770 |
| 10 | 1.950 | 0.654 | 0.604 |
| 30 | 1.961 | 0.190 | 0.176 |
Vasicek bond prices (with \(B^{\text{Vas}}(\tau) = (1-e^{-0.5\tau})/0.5\)):
The Vasicek \(A(\tau) = \exp\{(\theta - \sigma^2/(2\kappa^2))(B - \tau) - \sigma^2 B^2/(4\kappa)\}\).
\(\theta - \sigma^2/(2\kappa^2) = 0.06 - 0.01/0.5 = 0.06 - 0.02 = 0.04\).
| \(\tau\) | \(B^{\text{Vas}}\) | \(P^{\text{Vas}}\) |
|---|---|---|
| 1 | 0.787 | 0.957 |
| 5 | 1.836 | 0.759 |
| 10 | 1.987 | 0.578 |
| 30 | 2.000 | 0.131 |
Differences:
| \(\tau\) | \(P^{\text{CIR}} - P^{\text{Vas}}\) |
|---|---|
| 1 | +0.001 |
| 5 | +0.011 |
| 10 | +0.026 |
| 30 | +0.045 |
The difference is largest at 30 years. CIR bond prices are consistently higher (yields lower) than Vasicek.
Explanation: The CIR \(B\) function saturates at \(B_\infty^{\text{CIR}} = 2/(\gamma+\kappa) = 1.961\), which is less than \(B_\infty^{\text{Vas}} = 1/\kappa = 2.0\). Since \(P = A(\tau)e^{-B(\tau)r_0}\), a smaller \(B\) means less sensitivity to the short rate, and the \(e^{-Br_0}\) factor is larger for CIR. Additionally, the CIR \(A(\tau)\) function captures a smaller convexity adjustment than Vasicek's, further supporting higher CIR prices. The net effect is that CIR long-maturity yields are lower than Vasicek's, because the state-dependent volatility \(\sigma\sqrt{r}\) reduces effective volatility in low-rate states where the convexity correction matters most.