I've been working on what I had hoped to be a simple model demonstrating that a bond "returns" its yield-to-maturity over its life. However, whatever data I use, I end up with a return that is a little higher than the yield-to-maturity.
My process has been to:
- Take a relevant yield curve
- Value the bond today at that yield curve
- Calculate the implied yield curve at future points in time, and revalue the bond at those future yield curves taking into account coupons paid
- Assume that coupons are reinvested at prevailing rates on the yield curve, at each time received
Doing this, I receive a "return" (ending total value vs. initial bond price) that is a) a little higher than the yield-to-maturity, and b) equal to the point on the yield curve of the bond's maturity (as if it were a zero coupon bond).
I've always learned that a bond should "earn" its yield-to-maturity if its coupons were reinvested and the yield curve moved as implied in the initial term structure. Am I missing something critical in my reasoning?