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.
- For example, $100 promised two years from now might be worth $90 today. By “worth” we mean that a saver (lender) would voluntarily give up $90 today in exchange for a promise (offered by the borrower) of $100 two years hence. The value today ($90) is called the present value (PV) of the amount promised ($100). And the ratio (0.9) is called the discount factor.
- The time value of money (TVM) is often expressed in terms of an annual interest rate (or discount rate), compounded with some frequency (typically annually or semi-annually). Compounding means you earn interest on interest. In the example above, the corresponding interest rate would be 5.409% (annually compounded for two years) since \(90(1 + 5.409%)^2 = 100\).
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?
2. You have $30,000 today and you can invest it at 5% per year. How many years until you have $40,000?
3. If you increase the discount rate, the present value will:
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
Note, this presentation was originally here: https://github.com/FinancialMarkets/5MinuteFinance/tree/master/Corporate_Finance/TVM_Single_CFs