How To Calculate The Yield To Maturity Of Bonds
A bonds yield to maturity, or YTM, is the discount rate at which all future interest payments and the principal payment must be discounted to yield the current market price. This value represents a bonds total rate of return assuming the buyer holds the bond until maturity. The YTM can differ greatly from the current yield, especially if the bond matures soon after purchase. Here's an example of calculating the yield to maturity of a corporate bond.
XYZ issued a 30-year bond with a 6% coupon rate in 2004. Interest is paid annually and the bond is not callable or put-able. Now, in 2012, the market price of the bond is 74.62 (par value is 100 regardless of the actual dollar value). The bond is currently trading at a discount to par and you want to know what the yield to maturity will be. The formula to calculate the YTM is
where M is the current market price of the bond, c is the coupon rate, P is the principal, N is the number of years to maturity, and r is the yield to maturity. This equation assumes that the first interest payment occurs exactly one year after purchase; it would need to be adjusted if the payments were offset.
An immediate problem with this equation is that, since we are trying to calculate r but it shows up in every term of the equation raised to a different power, there is no simple analytical solution for this equation (unless N is 1 or 2). The equation must be solved numerically. Computers can do this very quickly, but I'll use a simple trial and error method to calculate r. We know that, since the market price is less than par, the YTM will be greater than the coupon rate. Let's calculate the right-hand-side of the equation for a few different values of r (this is easily done in a spreadsheet).
|r||RHS of Equation|
From this we can see that the market price, 74.62, falls between the value for r=7% and r=8%. We know now that the yield to maturity is between these two values. We can then proceed to try values between 7% and 8% and hone in on the exact answer. Doing this, I arrive at a yield to maturity of 7.364%. Using this yield to maturity in the equation makes the right hand side match (within 3 decimal places) to the current market price. Thus, the yield to maturity on this bond is 7.364%.
Let's do another example. You see a bond which expires in 8 years trading at 123.67, a substantial premium to par. The coupon rate is 9%, paid annually. Using the same method as above, I'll calculate the right-hand-side of the equation for various discount rates.
|r||RHS of Equation|
We can see that the current market price, 123.67, falls between the values for r=5% and r=6%. By trying values in between these rates I arrive at a yield to maturity of 5.294%. Even though this second bond has a coupon rate much higher than the first example, the yield to maturity is much lower since the bond is trading at a premium.