Present and Future Values





Kerry Back

Exponential growth

If invested funds earn a stable rate of return and funds are not withdrawn, then the account grows exponentially.

Due to exponential growth, the investment period and rate of return matter a lot!


  • at 8%, doubling the investment horizon from 15 to 30 years implies the growth in the account increases from $2.17 to $9.06 (more than quadrupling).
  • at a 30 year horizon, changing the rate of return from 4% to 8% implies the growth in the account increases from $2.24 to $9.06 (more than quadrupling).

Calculating the account growth

With 1 year at 8%, \(1 \rightarrow 1.08\). After a 2nd year, we have

\[ 1.08 + (0.08 \times 1.08) = (1 \times 1.08) + (0.08 \times 1.08) \] which is \(1.08^2\).


  • After \(3\) years at 8%: \(1.08^2 + 0.08\times 1.08^2 = 1.08^3\)
  • After \(n\) years at 8%: \(1.08^n\).

Interest on interest

  • Why is growth exponential?
  • \(1.08^2 = (1+0.08)^2 = 1 + 2 \times 0.08 + 0.08^2\)
  • \(1.08^3 = 1 + 3 \times 0.08 + 3 \times 0.08^2 + 0.08^3\)
  • \(3 \times 0.08\) is linear growth
  • The interest on interest terms \(3 \times 0.08^2 + 0.08^3\) are responsible for exponential growth
  • Those terms eventually add up to large numbers!

Future values and present values

  • We call $\(1.08^n\) the future value of $1 at 8% for \(n\) years.
  • More generally, $\((1+r)^n\) is the future value of $1 at a rate of return of \(r\).
  • If we start with \(x\) dollars, we will have \((1+r)^nx\) dollars after \(n\) years, so \((1+r)^nx\) is the future value of \(x\).
  • Similarly, we call \(x\) the present value of \((1+r)^nx\).
  • Equivalently, for any \(y\), we call \(y/(1+r)^n\) the present value of \(y\).

Future and present value factors


  • We go from present \(x\) to future \(y\) by multiplying by \((1+r)^n\), so we call \((1+r)^n\) the future value factor.
  • We go from future \(y\) to present \(x\) by multiplying by \(1/(1+r)^n\), so we call \(1/(1+r)^n\) the present value factor.

Present value factors

PV factors (also called discount factors) are smaller when the horizon is longer or the rate of return is larger.

FV of multiple cash flows

  • Suppose we invest \(x_0\) dollars today, another \(x_1\) dollars in 1 year, etc. for \(m\) years and earn \(r\) per year.
  • What will we have in \(n \ge m\) years?
  • \(x_0 \rightarrow (1+r)^nx_0\)
  • \(x_1 \rightarrow (1+r)^{n-1}x_1\), \(\ldots, x_m \rightarrow (1+r)^{n-m}x_m\)
  • So, we end up with

\[(1+r)^n x_0 + \cdots + (1+r)^{n-m}x_m\]

FV factors with numpy

import numpy as np

m = 10
n = 15
r = 0.08

fvFactors = (1+r)**np.arange(n, n-m-1, -1)


fvFactors are \[(1+r)^n, \ldots , (1+r)^{n-m}\]

FV of multiple cash flows

n = 10
m = 4
r = 0.08
x0, x1, x2, x3, x4 = 100, 120, 130, 140, 150
x = np.array([x0, x1, x2, x3, x4])

fvFactors = (1+r)**np.arange(n, n-m-1, -1)
fv = np.sum(x*fvFactors)

PV of multiple cash flows

  • Suppose we want to spend \(y_1\) dollars in 1 year, \(y_2\) dollars in 2 years, and so on for \(n\) years.
  • If we want to finance this from existing savings, how much do we need to have, assuming we earn \(r\) each year?
  • We need \(y_1/(1+r)\) to finance \(y_1\) in 1 year, \(y_2/(1+r)^2\) to finance \(y_2\) in 2 years, etc., so we need

\[\frac{y_1}{1+r} + \cdots + \frac{y_n}{(1+r)^n}\]

PV factors with numpy

n = 15
r = 0.08

pvFactors = (1+r)**np.arange(-1, -n-1, -1)

pvFactors are \[\frac{1}{1+r}, \ldots, \frac{1}{(1+r)^n}\]

PV of multiple cash flows


n = 4
r = 0.08
y1, y2, y3, y4 = 120, 130, 140, 150
y = np.array([y1, y2, y3, y4])

pvFactors = (1+r)**np.arange(-1, -n-1, -1)
pv = np.sum(y*pvFactors)