I am supposed to calculate term structure of interest rate. I got the table including several bonds with price of the bond, face value and number of years till maturity. enter image description here

I calculated yield of each bond, picture attached below. enter image description here

My question is.. how am I supposed to calculate the term structure of interest rate from this data? In other words I need the spot rates.

Comma is meant as decimal seperator.

Thanks for any help.

  • $\begingroup$ The wording of this question is too vague. “Spot rates” just means the yields for “immediate” delivery (whatever the market convention is). “Term structure” is also vague, just a reference to yield curves not being flat. Do you mean that you need something like a bootstrapping or par coupon curve? $\endgroup$ Aug 19, 2020 at 19:09
  • $\begingroup$ @BrianRomanchuk I need something like bootstrapping.. this what I did in my calculation is boostrapping? $\endgroup$
    – Daniel
    Aug 19, 2020 at 19:15
  • $\begingroup$ Will write an answer. $\endgroup$ Aug 19, 2020 at 19:16

1 Answer 1


The wording of the question is vague, but I will assume that the objective is to get a zero/discount curve via bootstrapping.

The premise of a bootstrapping is straightforward: fit a zero curve so that the shortest maturity bond is priced perfectly. Since we don’t have any other information, assume the curve is flat up to the first maturity; the curve matches the bond yield (modulo quote conventions). In other words, we have the zero curve defined to the maturity of bond #1.

(Pricing the bond perfectly means that if we discount the cash flows of the bond by our zero curve, the sum of the discounted values equals the market price.)

We then target the next maturity. We extend the zero curve so that it is priced perfectly. We will note that the initial coupons are discounted by the already fitted curve, the later coupons and principal by the new curve. Find the discount curve extension that results in bond #2 being priced correctly. That is, the zero curve is now defined to maturity #2.

Repeat for bond #3, ... N.

Issues arise.

  • There are any number of ways that the curve can be interpolated, including how to define the curve. (Interpolate between knot points, functional definition, etc. Do we interpolate forward rates or zero rates? Etc.)
  • Bonds can be mis-priced, and the curve ends up severely distorted.

Finally, the code/mathematical formulae are complex. Even an ugly approximations take a lot of code.

  • $\begingroup$ Can I show you my calculation in Excel and will you tell me if it is correct? $\endgroup$
    – Daniel
    Aug 19, 2020 at 19:44
  • $\begingroup$ Thank you for your answer, it helps $\endgroup$
    – Daniel
    Aug 19, 2020 at 20:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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