Author Topic: Question on calculating bond return  (Read 3012 times)

bo_knows

  • Pencil Stache
  • ****
  • Posts: 819
  • Age: 38
  • Location: Fairfax, VA, USA
    • The Crowdsourced FIRE simulator
Question on calculating bond return
« on: January 06, 2014, 01:39:50 PM »
I need the help of people that are more wise than myself.  Over at cFIREsim, I started up a thread that talks about how FireCalc (and therefore cFIREsim) calculate bond "returns" based on the Shiller GS10 data.  Long story short: They calculate "return" as simply the GS10 rate on January of each year, rather than taking into account capital appreciation.

I'm not 100% sure of how capital appreciation plays into the return of a bond, but I've had a couple of users talk me through it, and pointed me to the work on another Finance Guru, where he shows the equation listed in my cFIREsim thread.

http://www.cfiresim.com/phpbb/viewtopic.php?f=2&t=119#p852

However, I wanted to double check this work with folks that knew more about bonds than I.  Am I calculating "return" correctly now?

pom

  • Bristles
  • ***
  • Posts: 288
  • Location: Paris, France
Re: Question on calculating bond return
« Reply #1 on: January 10, 2014, 11:46:32 AM »
just to make sure I understand the GS10 rate, is it the yield to maturity of a 10 years US government bond?

I will assume this is it in my answer so disregard it if it is not the case.

The problem you will have is that to actually calculate the return you need to have the yield of the 10 year bond at the beginning of the year and the yield of a 9 years bond at the end of the year. Now all you have are 10 years yields.

I tried to put your formula in excel and couldn't make it work; aren't you missing some () ... anyway at first glance it appears that you assume that the yield of the 9 years bond is the same as the 10 years bond. This is unlikely as most yield curves increase with maturity (often drops at for the very high maturities).

The "error" that is induced might not be high but you are likely somewhat under-estimating the return.


pom

  • Bristles
  • ***
  • Posts: 288
  • Location: Paris, France
Re: Question on calculating bond return
« Reply #2 on: January 10, 2014, 06:00:09 PM »
Another issue I am thinking about is that C is not constant over time. You could assume that C= Yield which is probably about right for newly issued bonds but definitely would not be correct of a 10 year bond that is actually a 30 year bond issued 20 years ago.

I was thinking about it and I can't figure out a way to do this exactly. There are bond return indices out there but I assume that you want to go back far into the past and I doubt that these indices go back more than 40 years.

You should have the two components: coupon yield and capital appreciation

Coupon Yield = Coupon / Price, could be approximated with the Yield

Capital Appreciation = "Price of a 9 year bond at time t+1" / "Price of a 10 year bond at time t"  - 1 is much harder to approximate because as mentionned, the yield curve is never flat and its shape never stays constant.

In conclusion, I think that your method is as good as you can get it. It likely understates return a little.

One way you could test my conclusion is to get the actual return over 1 year of actual 10 year bonds for the last years. You can find historical prices on a bloomberg machine if you can get help from someone that has access to one.

bo_knows

  • Pencil Stache
  • ****
  • Posts: 819
  • Age: 38
  • Location: Fairfax, VA, USA
    • The Crowdsourced FIRE simulator
Re: Question on calculating bond return
« Reply #3 on: January 15, 2014, 06:18:27 AM »
just to make sure I understand the GS10 rate, is it the yield to maturity of a 10 years US government bond?

That is correct.

Quote
The problem you will have is that to actually calculate the return you need to have the yield of the 10 year bond at the beginning of the year and the yield of a 9 years bond at the end of the year. Now all you have are 10 years yields.

I just updated my thread on cFIREsim to reflect "9" in the formula in both places, from discussion on bogleheads.

Quote
I tried to put your formula in excel and couldn't make it work; aren't you missing some () ... anyway at first glance it appears that you assume that the yield of the 9 years bond is the same as the 10 years bond. This is unlikely as most yield curves increase with maturity (often drops at for the very high maturities).

My understanding of yield curves is that they are not calculated from a formula... they fluctuate throughout history. Is that correct?   My discussion on bogleheads leads me to believe that I can still get a more accurate picture without the yield curve (especially since Firecalc and cFIREsim are currently just simply using the GS10 rate as the exact "return")

pom

  • Bristles
  • ***
  • Posts: 288
  • Location: Paris, France
Re: Question on calculating bond return
« Reply #4 on: January 15, 2014, 08:01:00 AM »

I just updated my thread on cFIREsim to reflect "9" in the formula in both places, from discussion on bogleheads.


Do you have the 9 year yield? I doubt that it is available for the last 100 years. I suspect that the best course of action is to say that it is equal to the 10 year yield even if it slightly understates the total return.


As far as the yield curve goes, it is usually calculated using what is called a boot strap method.

http://en.wikipedia.org/wiki/Bootstrapping_%28finance%29

Basically you calculate the 1 year yield using a 1 year bond, use this one year yield and the 2 years bond to calculate the 2-years yield ... and so on until you have the whole curve.

Assuming annual coupons:

Price-one-year-bond = (Coupon + Nominal) / (1+ 1-year-yield) , solve for 1 year yield

Price-two-years-bond = Coupon / (1+ 1-year-yield) + (Coupon + Nominal) / (1+ 2-years-yield)^2 , solve for 2 years yield now that you know the 1 year yield, it is the only unknown

And so on

Yield curve usually increase with the number of years then reaches a plateau around year 25 but over history there has been all kind. If the market considers that a country has a short term risk but if avoided it will be sailing, then you could have some sort of flat-curve or even a slighly decreasing curve but that has rarely been the case.

http://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield

http://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/Historic-Yield-Data-Visualization.aspx


bo_knows

  • Pencil Stache
  • ****
  • Posts: 819
  • Age: 38
  • Location: Fairfax, VA, USA
    • The Crowdsourced FIRE simulator
Re: Question on calculating bond return
« Reply #5 on: January 15, 2014, 08:07:04 AM »

Do you have the 9 year yield? I doubt that it is available for the last 100 years. I suspect that the best course of action is to say that it is equal to the 10 year yield even if it slightly understates the total return.


From what I understand, in the use of that formula, you don't need the 9yr yield. You just need to indicate that every year you're buying a 10yr bond and selling the previous bond (now a 9yr duration).

Quote
As far as the yield curve goes, it is usually calculated using what is called a boot strap method.

http://en.wikipedia.org/wiki/Bootstrapping_%28finance%29

Basically you calculate the 1 year yield using a 1 year bond, use this one year yield and the 2 years bond to calculate the 2-years yield ... and so on until you have the whole curve.

Assuming annual coupons:

Price-one-year-bond = (Coupon + Nominal) / (1+ 1-year-yield) , solve for 1 year yield

Price-two-years-bond = Coupon / (1+ 1-year-yield) + (Coupon + Nominal) / (1+ 2-years-yield)^2 , solve for 2 years yield now that you know the 1 year yield, it is the only unknown

And so on

Yield curve usually increase with the number of years then reaches a plateau around year 25 but over history there has been all kind. If the market considers that a country has a short term risk but if avoided it will be sailing, then you could have some sort of flat-curve or even a slighly decreasing curve but that has rarely been the case.

http://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/TextView.aspx?data=yield

http://www.treasury.gov/resource-center/data-chart-center/interest-rates/Pages/Historic-Yield-Data-Visualization.aspx

Hmm, very interesting.  I'll have to look into incorporating the yield curve into the formula.