Bond yield

This article shows how to calculate several common types of bond yield.

Caveat: This article builds on principles from Bond Pricing to show how bond yields are calculated. It does not discuss why yields change, nor should it be used to predict future performance. Please consult the forum for guidance.

Microsoft Excel was used for this article. However, Open Office Calc will work equally well and is a free application that is supported on several operating systems. Open Office financial functions are very similar to Microsoft's functions.

Excel formulas are shown where applicable. All examples are available for download at the bottom of this page.

Current Yield
The current yield formula is:


 * {| style="border:1px solid darkgray;"


 * align="left" |Current Yield = Annual dollar coupon interest / Price
 * }

This formula does not take into account gains or losses if the bond was purchased at a discount or premium.

For example: An 18-year, $1,000 par value, 6% coupon bond selling for $700.89 has a current yield of:
 * {| style="border:1px solid darkgray;"


 * align="left" |8.56% = $1,000 * 6% / $700.89
 * }

Yield To Maturity
The yield to maturity is calculated using a sum of the present value of the cash flows - the same way as pricing a bond. For a semiannual payment bond, this is shown mathematically as:
 * {| style="border:1px solid darkgray;"


 * align="left" |p = c/(1 + y)1 + c/(1 + y)2 + c/(1 + y)3 + ... + c/(1 + y)n + M/(1 + y)n
 * }

where
 * p = Price
 * c = Semiannual coupon payment
 * y = Yield to Maturity / 2
 * n = Number of periods (number of years x 2)
 * M = Maturity value

However, we need to solve for y which requires an iterative approach. This is not a problem, as Excel has built-in financial formulas which solve this equation internally.

Yield to maturity considers not only the current coupon income, but any capital gain or loss realized by holding the bond to maturity.

Yield to Maturity on the Coupon Date
In a similar manner to bond prices, the RATE function is used to calculate the yield to maturity for transactions that fall exactly on coupon dates. Consider the wiki example: A bond has a $10,000 face value and pays $500 annually until maturity, then pays back the $10,000 principal. If the bond price drops to $9,653 four years before maturity, the yield to maturity is 6.0%:


 * {| style="margin:1em auto 1em auto;" cellpadding= "3" border="1" style="border:1px solid gray; border-collapse: collapse;"


 * align = "right"|Maturity:
 * $10,000.00
 * align = "right"|Coupon Rate:
 * align = "right"|$500.00
 * align = "right"|Frequency:
 * align = "right"|annual
 * align = "right"|Purchase Price:
 * align = "right"|$9,653.00
 * align = "right"|Number of periods:
 * align = "right"|4
 * align = "right"|Yield to Maturity:
 * align = "right"|6.0%
 * =RATE(4,500,-9653,10000,0)
 * }
 * align = "right"|Number of periods:
 * align = "right"|4
 * align = "right"|Yield to Maturity:
 * align = "right"|6.0%
 * =RATE(4,500,-9653,10000,0)
 * }
 * align = "right"|Yield to Maturity:
 * align = "right"|6.0%
 * =RATE(4,500,-9653,10000,0)
 * }

Zero Coupon Bonds
Zero-coupon bonds have a single cash flow at maturity.

For example, a 15-year zero-coupon bond selling for $274.78 with a maturity value of $1,000 has a yield to maturity of 8.80%:


 * {| style="margin:1em auto 1em auto;" cellpadding= "3" border="1" style="border:1px solid gray; border-collapse: collapse;"


 * align = "right"|Maturity:
 * $1,000.00
 * align = "right"|Frequency:
 * align = "right"|semiannual
 * align = "right"|Purchase Price:
 * align = "right"|$274.78
 * align = "right"|Number of periods:
 * align = "right"|30
 * =2*15
 * align = "right"|Yield to Maturity:
 * align = "right"|8.80%
 * =RATE(2*15,0,-274.78,1000,0)*2
 * }
 * align = "right"|30
 * =2*15
 * align = "right"|Yield to Maturity:
 * align = "right"|8.80%
 * =RATE(2*15,0,-274.78,1000,0)*2
 * }
 * }

The formula is consistent with coupon bearing bonds: Use a semiannual compounding period (N*2), the yield to maturity is an annual rate.

Yield to Maturity In-Between Coupon Dates
The concepts used for purchase and sales (settlement) dates in-between coupon dates are similar to pricing bonds.

Caveat: Do not use Excel's compound interest rate financial functions, such as present value PV, for any time other than the exact coupon date. The interest in-between coupon payments is simple interest (not compounded). Using these formulas will always result in an error. Always use the PRICE or YIELD functions, which are intended for bonds.
 * Use the dirty (quoted) price
 * YIELD uses clean price as an argument.

For example: A corporate 10% coupon bond maturing on March 1, 2003 has a dirty price of $118.778. With a settlement date of July 17, 1997, the yield to maturity is 6.747%:


 * {| style="margin:1em auto 1em auto;" cellpadding= "3" border="1" style="border:1px solid gray; border-collapse: collapse;"


 * align = "right"|Settlement Date:
 * align = "right"|7/17/1997
 * B11
 * align = "right"|Maturity date:
 * align = "right"|3/1/2003
 * B12
 * align = "right"|Frequency:
 * align = "right"|2
 * semiannual
 * align = "right"|Day Convention (basis):
 * align = "right"|0
 * 30/360
 * align = "right"|Coupon rate:
 * align = "right"|10.000%
 * B15
 * align = "right"|Coupon days accrued:
 * align = "right"|136
 * =COUPDAYBS(B11,B12,B13,B14) Cell B16
 * align = "right"|Number of days in period:
 * align = "right"|180
 * =COUPDAYS(B11,B12,B13,B14) Cell B17
 * align = "right"|Quoted Dirty Price:
 * align = "right"|$118.7780
 * align = "right"|Accrued interest:
 * align = "right"|3.777778
 * =B15*100/2*B16/B17
 * align = "right"|Clean Price:
 * align = "right"|$115.000222
 * =B18-B19 (Cell B20)
 * align = "right"|Yield to Maturity:
 * align = "right"|6.747%
 * =YIELD(B11,B12,B15,B20,100,B13,B14) annual
 * }
 * align = "right"|3.777778
 * =B15*100/2*B16/B17
 * align = "right"|Clean Price:
 * align = "right"|$115.000222
 * =B18-B19 (Cell B20)
 * align = "right"|Yield to Maturity:
 * align = "right"|6.747%
 * =YIELD(B11,B12,B15,B20,100,B13,B14) annual
 * }
 * =YIELD(B11,B12,B15,B20,100,B13,B14) annual
 * }

Coupon Rate, Current Yield, and Yield to Maturity Relationships
The same relationships apply for yield to maturity as for pricing a bond.


 * Selling at par: Yield to Maturity equals the Coupon rate
 * Selling at discount: Yield to Maturity is greater than the Coupon rate
 * Selling at premium: Yield to Maturity is less than the Coupon rate

Bond Equivalent Yield
Similar to Comparing Investments, calculation of annual yield is an exponential formula. For a semiannual payment bond:


 * {| style="border:1px solid darkgray;"

where
 * align="left" |Effective annual yield = (1 + y)2 - 1
 * }
 * y = semiannual interest rate

Instead of using the above formula, the convention is to double the semiannual yield. Calculating the yield to maturity by doubling the semiannual yield is called the Bond Equivalent Yield (BEY). Doing the calculation in this manner allows comparison to securities that do not have annual yields.