## Sunday, January 3, 2021

### Swiss Micros DM42 and HP71B: Present Value of a Growing Annuity

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.