The purpose behind the Bonds module is to price bonds (zero coupon and coupon paying) based on the yield to maturity (the internal rate of return of the bond at the current price). The module consists of two independent sub-modules: (a) Zero Coupon Bonds and (b) Coupon Bonds. The user is prompt to indicate what type of bond to price in the module’s main page.
Zero Coupon Bonds
This sub-module consists of a simple present value calculation where the bond’s face value is hard coded into the application to take a value of “100”. Compounding is assumed to take place on an annual basis and the only two user inputs required to price the bond are the yield (‘y’ - in percent) and maturity (‘n’ - in years) of the bond. The bond price (P) is computed as a function of ‘y’ and ‘n’ using the following formula:
Zero Coupon Bonds
This sub-module consists of a simple present value calculation where the bond’s face value is hard coded into the application to take a value of “100”. Compounding is assumed to take place on an annual basis and the only two user inputs required to price the bond are the yield (‘y’ - in percent) and maturity (‘n’ - in years) of the bond. The bond price (P) is computed as a function of ‘y’ and ‘n’ using the following formula:
Coupon Bonds
The calculations behind coupon bonds tend to be slightly more involved. The user is required to enter five inputs in order to price the bond: (1) yield (‘y’ – in percent), (2) maturity (‘n’ – in years), (3) yearly coupon (‘C’ – as a percent of the face value), (4) coupon frequency (‘m’ – number of coupon payments per year), and (5) face value (‘F’). This sub-module assumes that a bond with face value ‘F’ makes ‘m’ coupon payments of ‘[(C/100)*F]/m’ each year (coupon payments sum to ‘(C/100)*F’ within a year) and there are ‘m*n’ periods remaining. The yield reflects the interest rate implied by the bond assuming interest is compounded ‘m’ times per year. The bond price (P) is computed as a function of ‘y’, ‘n’, ‘C’, ‘m’, and ‘F’ as follows:
The calculations behind coupon bonds tend to be slightly more involved. The user is required to enter five inputs in order to price the bond: (1) yield (‘y’ – in percent), (2) maturity (‘n’ – in years), (3) yearly coupon (‘C’ – as a percent of the face value), (4) coupon frequency (‘m’ – number of coupon payments per year), and (5) face value (‘F’). This sub-module assumes that a bond with face value ‘F’ makes ‘m’ coupon payments of ‘[(C/100)*F]/m’ each year (coupon payments sum to ‘(C/100)*F’ within a year) and there are ‘m*n’ periods remaining. The yield reflects the interest rate implied by the bond assuming interest is compounded ‘m’ times per year. The bond price (P) is computed as a function of ‘y’, ‘n’, ‘C’, ‘m’, and ‘F’ as follows:
Bond Duration
We define duration as the weighted average of the present values (PV) of future cash flows (CF), where the weights are the times (t) to the future cash flows. Assume the bond has a yield of ‘y’, maturity of ‘n’ years and makes ‘m’ coupon payments each year. The bond duration is calculated as follows:
We define duration as the weighted average of the present values (PV) of future cash flows (CF), where the weights are the times (t) to the future cash flows. Assume the bond has a yield of ‘y’, maturity of ‘n’ years and makes ‘m’ coupon payments each year. The bond duration is calculated as follows:
PV(CFk) = δk * CFk (δk being the discount factor associated with the cash flow at period k)