The Time Value of Money: Single Cash Flows

Table of Contents

What does it mean to say that money has “time value”? Essentially it means that $1 (or €1 or ¥1 or £1) promised for some future date has a different value (usually lower) than the same amount today.

1 The Discount Rate

The TVM discount factor (or corresponding discount rate) is determined by a number of factors:

  • Supply of savings – by those wishing to shift consumption from present to future (e.g. for retirement)
  • Demand for loans – by those wishing to shift consumption from future to present (e.g. for investment)
  • Maturity (i.e. the future date when the money is due to be repaid)
  • Expected inflation (or deflation), which affects the purchasing power of cash in the future
  • Credit risk, which reflects the possibility that the loan won’t be repaid in full and on time

In this presentation, we'll cover the basic mechanics of understanding and calculating the time value of money.

2 A General Approach

Say we have \$1 today, and we can invest this dollar every year at 7\% per year.

  • Then at the end of 1 year we'll have \(1(1 + 0.07) = 1.07\)
  • At the end of two years we'll have \(1.07(1 + 0.07) = 1(1.07)(1.07) = 1(1.07^2) = 1.1449\)
  • At the end of 3 years we'll have \(1.1449(1.07) = 1(1.07^3) = 1.2250\)
  • At the end of n years …

3 The General Formula

Proceeding this way for n periods (here a period is a year), we can see the future value (FV) of some amount of money today (denote this as PV) at time n is:

  • \(FV = PV(1 + r)^n\)
  • Where we assume we can reinvest our money every year at r.

4 Interactive App

The following app will calculate the future value of $1 for every year up to the maximum year you select. You can also select the interest rate per year.

  • Note the marked exponential increase as you increase the interest rate and number of years. This shows the exponential effect of compounding.
  • You can also use the app to see the effect of small differences in interest rates on the future value over many years. For example, the future value of a dollar is worth 33% more if invested for 30 years at 5% instead of 4%.

Future Value of a Single Cash Flow Calculator

Present Value:
Number of Periods:
Rate Per Period:

Future Value:




4.1 Python calculation

def future_value(pv, rate, periods):
    return pv * pow(1 + rate, periods)

pv = 100
rate = 0.07
periods = 10

print(round(future_value(pv, rate, periods), 2))

196.72

5 Rearranging the Formula

So now that we have the general formula which describes how a single cash flow moves through time:

  • \(FV = PV(1 + r)^n\)

We can now use this to solve for the PV, r and n. Rearranging for the present value gives:

  • \(PV = \frac{FV}{(1+r)^n}\)
  • This shows that the present value decreases if the interest rate increases. This relationship is very important in asset pricing.
  • Finding the present value is often termed discounting.

Present Value of a Single Cash Flow Calculator

Future Value:
Number of Periods:
Rate Per Period:

Present Value:




5.1 Python Calculation

def present_value(fv, rate, periods):
    return fv / pow(1 + rate, periods)

fv = 200
rate = 0.07
periods = 10

print(round(present_value(fv, rate, periods), 2))

101.67

6 The Interest Rate

Solving our equation for the interest rate we have:

\(r = \sqrt[n]{\frac{FV}{PV}} - 1\)

  • Holding other variables constant, the rate per period \(r\) is increasing in \(FV\) and decreasing in \(PV\) and \(r\).

Interest Rate in a Single Cash Flow Calculator

Future Value:
Present Value:
Number of Periods:

Rate Per Period: %




6.1 Python Calculation

def rate(fv, pv, periods):
    return pow(fv / pv, 1 / periods) - 1

fv = 200
pv = 100
periods = 10

print(str(round(100 * rate(fv, pv, periods), 2)) + "%")
7.18%

7 The Number of Periods

Lastly, solving for the number of periods yields:

\(n = \frac{ln\left(\frac{FV}{PV}\right)}{ln\left(1+r\right)}\)

  • Holding other variables constant, the number of periods \(n\) is also increasing in \(FV\), and decreasing in \(PV\) and \(r\).

Period in a Single Cash Flow Calculator

Future Value:
Present Value:
Rate:

Number of Periods:




import math

def periods(fv, pv, rate):
    return math.log(fv / pv) / math.log(1 + rate)

fv = 200
pv = 100
rate = 0.07

print(str(round(periods(fv, pv, rate), 2)) + " periods")
10.24 periods

8 Self-Quiz Questions

1. You bought a stock for $30 per share. Five years later you sold it for $70 per share. What was your annual return?

1.14%
8.38%
18.47%
37.12%


2. You have $30,000 today and you can invest it at 5% per year. How many years until you have $40,000?

5.90%
10.10%
12.46%
14.55%

3. If you increase the discount rate, the present value will:

Increase
Decrease
not change

9 Reading Ease Score


"Flesch-Kincaid reading ease score: 93.63 Very easy (5th grade)"


"Flesch-Kincaid grade level score: 2.68"

10 Original 5MF Presentation

Author: Matt Brigida, Ph.D.

Created: 2021-01-25 Mon 14:41

Validate