Swiss Micros DM42 and HP71B: Present Value of a Growing Annuity
Introduction
Today we are going to calculate the present value of a growing annuity. Unlike most annuities where the payment is constant, in a growing annuity, the payment increases each period. For this particular blog, we are working with annuities that payments increase by a growth percent (g%) each period. The annuity has an different interest rate (r%) in which payments are discounted.
Since the payments are not constant, the time value of money (TVM) keys on a financial calculator are not going to be used. If your calculator has the the net present value (NPV) function, this can assist you in these calculations.
I am going to use a different approach.
Derivation
Variables:
P = base payment (the first payment)
g = growth rate per period
r = interest rate per period
n = number of periods
PV = present value
Ordinary Growing Annuity
In an ordinary growing annuity, the first payment will be received after one period (typically a year or a month) has passed. Discounting all the payments to calculate present value:
PV
= P/(1+r) + P * (1+g)/(1+r)^2 + P * (1+g)^2/(1+r)^3 + ... + P * (1+g)^(n-1)/(1+r)^n
= P/(1+r) * [ 1 + (1+g)/(1+r) + (1+g)^2/(1+r)^2 + ... + (1+g)^(n-1)/(1+r)^(n-1)
Let w = (1+g)/(1+r), then:
PV
= P/(1+r) * [ 1 + w + w^2 + ... + w^(n-1) ]
The result is a geometric series. In a general geometric series:
a + a*r + a*r^2 + ... + a*r^(n-1) = Σ(a*r^k, k=0 to n-1) = a * (1 - r^n)/(1 - r)
Then:
PV
= P/(1+r) * [ 1 + w + w^2 + ... + w^(n-1) ]
= P/(1+r) * Σ(w^k, k=0 to n-1)
= P/(1+r) * (1 - w^n)/(1 - w)
Alternatively, change w back to (1+g)/(1+r):
PV
= P/(1+r) * (1 - (1+g)^n/(1+r)^n) / (1 - (1+g)/(1+r))
= [ P/(1+r) * (1 - (1+g)^n/(1+r)^n) ] / [ 1 - (1+g)/(1+r) ]
= [ P/(1+r) * P/(1+r) * (1+g)^n/(1+r)^n ] / [ 1 - (1+g)/(1+r) ]
The article from finaceformulas.net (see source) suggests multiplying by (1+r) / (1+r):
= [ P/(1+r) - P/(1+r) * (1+g)^n/(1+r)^n ] / [ 1 - (1+g)/(1+r) ] * (1 + r) / (1 + r)
= [ P - P * (1+g)^n/(1+r)^n ] / [ 1 + r - (1 + g) ]
= [ P - P * (1+g)^n/(1+r)^n ] / [ r - g ]
= P / (r - g) * (1 - (1+g)^n/(1+r)^n )
Growing Annuity Due
On an annuity due, the first payment takes place immediately. The present value is calculated as:
PV
= P + P * (1+ g)/(1+r) + P * (1+g)^2/(1+r)^2 + P * (1+g)^3/(1+r)^3 + ... + P * (1+g)^n/(1+r)^n
= P * [ 1 + (1+ g)/(1+r) + (1+g)^2/(1+r)^2 + (1+g)^3/(1+r)^3 + ... + (1+g)^n/(1+r)^n ]
Let w = (1+g)/(1+r), then:
PV
= P * [1 + w + w^2 + w^3 + ... + w^n ]
We have another geometric progression:
PV
= P * (1 - w^(n+1))/(1 - w)
Summary:
Present Value of a Growing Annuity - Ordinary
PV = P/(1+r) * (1 - w^n)/(1 - w)
Present Value of a Growing Annuity - Due
PV = P * (1 - w^(n+1))/(1 - w)
HP 42S/DM42 Program: PVGROW
Both PVGROW and PVGDUE use only one register, R01.
00 {79-Byte Prgm}
01 LBL "PVGROW"
02 "BASE PMT?"
03 PROMPT
04 "INTEREST?"
05 PROMPT
06 1
07 X<>Y
08 %
09 +
10 STO 01
11 ÷
12 1
13 "GROWTH?"
14 PROMPT
15 %
16 +
17 RCL÷ 01
18 STO 01
19 "N?"
20 PROMPT
21 Y↑X
22 1
23 X<>Y
24 -
25 1
26 RCL- 01
27 ÷
28 ×
29 "PV="
30 ARCL ST X
31 AVIEW
32 END
HP 42S/DM42 Program: PVGDUE
00 {79-Byte Prgm}
01 LBL "PVGDUE"
02 "BASE PMT?"
03 PROMPT
04 "INTEREST?"
05 PROMPT
06 1
07 X<>Y
08 %
09 +
10 1
11 "GROWTH?"
12 PROMPT
13 %
14 +
15 ÷
16 1/X
17 STO 01
18 "N?"
19 PROMPT
20 1
21 +
22 Y↑X
23 1
24 X<>Y
25 -
26 1
27 RCL- 01
28 ÷
29 ×
30 "PV="
31 ARCL ST X
32 AVIEW
33 END
HP 71B Program: PVGROW
Note: This is for both ordinary and growing annuities due.
100 DESTROY P,G,R,W,A,C
105 INPUT "PAYMENT? "; P
110 INPUT "INTEREST? "; R
115 R=.01*R
120 INPUT "GROWTH? "; G
125 G=.01*G
130 W=(1+G)/(1+R)
135 INPUT "N? "; N
140 INPUT "DUE?(Y=1,N=0) ";C
145 IF C=1 THEN 200
150 IF C=0 THEN 300 ELSE 140
200 A=P*(1-W^(N+1))/(1-W) @ ! DUE
205 GOTO 400
300 A=P*(1-W^N)/((1+R)*(1-W)) @ ! ORD
305 GOTO 400
400 PRINT "PV ="; A
Examples:
Base Payment: P = 20.00
Interest Rate: r = 4%
Growth Rate: g = 5%
n = 5
Ordinary Growing Annuity
Result: PV = 98.02
Timeline of Payments:
Period 0: 0.00
Period 1: 20.00
Period 2: 21.00
Period 3: 22.05
Period 4: 23.15
Period 5: 24.31
Growing Annuity Due
Result: PV = 122.92
Period 0: 20.00
Period 1: 21.00
Period 2: 22.05
Period 3: 23.15
Period 4: 24.31
Period 5: 25.53
Source:
"Present Value of a Growing Annuity" financeformulas.net https://financeformulas.net/Present_Value_of_Growing_Annuity.html Retrieved December 13, 2020.
Eddie
All original content copyright, © 2011-2021. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.