-
Compound Interest Part 1 6
-
Lecture1.1
-
Lecture1.2
-
Lecture1.3
-
Lecture1.4
-
Lecture1.5
-
Lecture1.6
-
-
Compound Interest Part 2 3
-
Lecture2.1
-
Lecture2.2
-
Lecture2.3
-
-
Present Value 4
-
Lecture3.1
-
Lecture3.2
-
Lecture3.3
-
Lecture3.4
-
-
Annuities 6
-
Lecture4.1
-
Lecture4.2
-
Lecture4.3
-
Lecture4.4
-
Lecture4.5
-
Lecture4.6
-
-
Perpetuities 2
-
Lecture5.1
-
Lecture5.2
-
-
Bonds 6
-
Lecture6.1
-
Lecture6.2
-
Lecture6.3
-
Lecture6.4
-
Lecture6.5
-
Lecture6.6
-
-
Dividend Discount Model 3
-
Lecture7.1
-
Lecture7.2
-
Lecture7.3
-
-
Risk 8
-
Lecture8.1
-
Lecture8.2
-
Lecture8.3
-
Lecture8.4
-
Lecture8.5
-
Lecture8.6
-
Lecture8.7
-
Lecture8.8
-
-
Capital Asset Pricing Model 6
-
Lecture9.1
-
Lecture9.2
-
Lecture9.3
-
Lecture9.4
-
Lecture9.5
-
Lecture9.6
-
Semi-annual Rate
Semi-Annual Annuity Payments¶
We can convert an annuity to semi-annual payments by changing the annualized rate to a semi-annual one. Then we multiply the number of compounding periods by 2. This will give us the correct valuation. The idea here is that 2n payments at the semi-annual rate should equate to n payments at the annual rate.
Let’s say there is an annualized rate of 6%. Our first step is going to be converting it to the semi-annual rate. We will begin with just one year, and two payments.
#Convert to semi-annual
r = (1.06)**.5-1
print(r)
0.02956301409869999
Now, with the semi-annual rate, we compound by half years. So while our payment is in period .5, we actually discount with 1 as t but r as 2.95%. Check out the present value of the payments halfway through the first year and at the end of the first year.
#Show semi-annual payments present value
p1 = 500/(1+r)**1
p2 = 500/(1+r)**2
PV = p1+p2
print(PV)
957.3410443861794
If you have a strong preference to still use annualized, you can also keep the yearly r but use decimals to represent half years.
#Notice we get the same PV!
r = .06
p1 = 500/(1+r)**.5
p2 = 500/(1+r)**1
PV = p1+p2
print(PV)
957.3410443861792
As a check, let's see what the future value of these two payments would come out to be. Our payment at time t=1 has a future value of itself because that is the end of our measurement. For the payment at time t=.5, we need to compound half a year's worth of interest. Our future value comes out to be $1014.78.
#Find the future value of the two payments
FV = 500*1.06**.5+500
print(FV)
1014.78150704935
When we divide the future value by the present value we see that clearly the rate of return comes out to being 6%. This is good news, we are doing it correctly.
print(FV/PV - 1)
0.06000000000000005
The Difference between an Annualized and Nominal Rate¶
The point of an annualized rate is that it is what you will get in terms of yearly return. If we had a rate that was not annualzied, a nominal rate, then we would just divide by the number of periods. The agreement that you make is that you get or pay n periods of interest with a rate of r/n per period. Notice how the present value is lower. This is because the compounding will be larger. With the annualized rate, our semi-annual r was around 2.95% but in this case it would be 3% leading to a larger annual return than 6%!
#The present value is now lower
r = .06/2
p1 = 500/(1+r)**1
p2 = 500/(1+r)**2
PV = p1+p2
print(PV)
956.7348477707607
The effective annual rate of return ends up coming out to about 6.09% in this case which is larger.
#And now since we can still re-invest in the same way...
print((500*1.03+500)/PV - 1)
0.060899999999999954
Converting to an Annualized Rate¶
Recall that we can convert to an annualized rate by doing the following:
$$ r_a = (1 + \frac{r_n}{f})^f - 1 $$
where
$$ r_a = \text{Annualized Rate} $$$$ r_n = \text{Nominal Rate} $$$$ f = \text{Payment frequency} $$
#Annualize the rate
r = .06
r = (1+r/2)**2-1
print(r)
0.060899999999999954
The following shows three equivalent ways to calculate the future value of the payments. The first being the payments with the semi-annual rate applied to the mid year payment and the end payment, the second being the present value multiplied by the annualized rate, and finally the last one as the same calculation as the first one except converting the annualized rate to the equivalent for a half year.
#So using the annualized rate on our PV
print((500*1.03+500))
print((p1+p2)*(1+r))
print(500*(1+r)**.5+500)
1015.0
1015.0
1015.0