Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to bootstrap spot rates given coupon-paying bond data. To simplify my problem, assume we are working with only 3 given data, the price/coupon rate on semi-annual bonds maturing in 0.5, 1, and 2 years.

I can infer the 0.5 and 1 year spot rates from the given data. How do I infer the 1.5 and 2 year spot rates? If it simplifies the problem, assume that the spot rate changes linearly from 1 to 2 years.

Is there an analytic solution to find the 1.5 and 2 year spot rates? Do I need some iterative process?

Any leads on this problem would help. Thanks!

share|improve this question
up vote 1 down vote accepted

Assume we have $r(t)$ continuously compounded spot rate for maturity $t$. The price of the 2-year bond with semi-annual coupon $C$ is known to be $P$. We already have $r(0.5)$ and $r(1)$. We need $r(2)$ and $r(1.5) = f(r(1), r(2))$. Then

$$ P = C [e^{-0.5 \times r(0.5)} + e^{-r(1)}+e^{-1.5 \times r(1.5)}] + (1+C)e^{-2 \times r(2)} $$

Using linear interpolation, $r(1.5) = 0.5 [r(2) + r(1)]$. Substituting in, we get:

$$ P = C [e^{-0.5 \times r(0.5)} + e^{-r(1)}+e^{-1.5 \times 0.5 [r(2) + r(1)]}] + (1+C)e^{-2 \times r(2)} $$

The best way to solve for $r(2)$ is with some optimisation technique. If you want to use an iterative approach, a simple Newton-Rhapson will be good enough.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.