In summary, when the yield curve slopes upward, as a bond approaches maturity or “rolls down the yield curve,” it is valued at successively lower yields and higher prices.
If the yield curve is upward sloping, how is the bond valued with successively lower yields?
This assumes that the yield curve doesn’t change.
Here’s a simple example; suppose these spot rates:
The implied 1-year forward rate starting 1 year from today is 7.0388% (= (1.052 / 1.03) − 1). A 2-year, annual-pay bond paying a coupon of 6.0% will have a price of $1,019.70 (= $60 / 1.03 + $1,060 / 1.052) and a YTM of 4.9412% (because $60 / 1.049412 + $1,060 / 1.0494122 = $1,019.70).
If the yield curve is unchanged one year from today, then the bond will have a price of $1,029.13 (= $1,060 / 1.03). Your 1-year return will be ($1,029.13 + $60 − $1,019.70) / $1,019.70 = 6.8081%.
Because the value of the bond is being discounted at 3% (the current 1-year spot rate) rather than 4.9412% (the original YTM).
If the current 1-year spot rate were 4.9412%, then your 1-year return would be 4.9412%. I’ll leave it to you to verify that.
How do we rectify what you wrote with the fact that a bond trading at a premium will move to par as maturity approaches?
Although the price will move to par eventually, it need not be decreasing constantly. I just illustrated that with an unchanged, upward-sloping (normal) yield curve. If the yield curve were flat, or inverted, or if it changed over the holding period, the bond price after one year could be virtually anything. But eventually it will approach par, irrespective of the shape or level of the yield curve:
irrespective of the value for r.