You can use the following equation to calculate the Bond Price:
PMT x [1 – (1 + i)-N] Bond Price = i + FV x (1 + i)-N
- N = (Number of payments per period) x (Number of years to maturity)
- i = (Interest rate or YTM) / (Number of payments per period)
- FV = The Bond’s Face Value
- PMT = (FV) x (Coupon Rate) / (Number of payments per period)
Example of calculating the bond value
Let’s suppose that you have a bond, where the:
- Coupon rate is 6% with semiannually payments
- Yield to maturity (YTM) is 8%
- Bond matures in 9 years
- Bond’s Face Value is 1000
What is the Bond price?
Since we are dealing with semiannually payments each year, then the number of payments per period (i.e., per year) is 2.
Before we derive the Bond’s price, let’s compute all the components that will be used in the main equation:
- N = (Number of payments per period) x (Number of years to maturity) = (2) x (9) = 18
- i = (YTM) / (Number of payments per period) = (8%) / (2) = 4% or 0.04
- FV = The Bond’s Face Value = 1000
- PMT = (FV) x (Coupon Rate) / (Number of payments per period) = (1000) x (6%) / (2) = 30
Let’s now plug all those components within the main equation:
30 x [1 – (1 + 0.04)-18] Bond Price = 0.04 + 1000 x (1 + 0.04)-18
And the result is a Bond Price = 873.4
You’ll notice that the calculated Bond Price is lower than the Bond’s Face Value. This means that we are dealing with a discount bond, where the bond’s yield is greater than the coupon rate.
Solving the problem using BA II Plus Financial Calculator
If you’re using the BA II Plus Financial calculator, you can then type the following parameters in the calculator:
- N = 18
- I/Y = 4
- FV = 1000
- PMT = 30
Using these values, you’ll then get the same result of PV = 873.4
Finally, you may want to check the following source that includes a tool to calculate the Bond Price using Python.