Saving for Retirement

Table of Contents

1 Annuity Retirement Model

Say as your retirement plan you intend to put $5000 per year, for the next 20 years, into a retirement account. Further, you expect this account to earn 8% per year. In this case your savings plan is in the form of an annuity.

Annuity: a security with a fixed cash flow every period for a fixed number of periods.

In your retirement plan $5000 is the fixed cash flow, the period is yearly, and the number of periods is 20.

1.1 Future Value

To calculate how much we'll have in our retirement account we can (1) use a convenient annuity formula, or (2) find the future value of each individual cash flow and sum these future values.

1.1.1 Using an Annuity Formula

We can calculate how much money you will have in your account at the end of year 20 with the following future value of an annuity formula:

\(FVA = C\left(\frac{(1 + r)^n - 1}{r}\right)\)

where FVA denotes the future value of the annuity, C is the cash flow per period, r is the interest rate per period, and n is the number of periods.

Using this formula you can calculate how much money you will have in 20 years:

\(FVA = 5000\left(\frac{(1 + 0.08)^20 - 1}{0.08}\right) = 228809.8\)

So you will have $228,809.90 in your retirement account in 20 years.

1.1.2 Future Value of Each Cash Flow

Annuity formulas were much more useful prior to widespread use of spreadsheets and programming languages.

  1. Spreadsheet

    The following table shows how you can organize a spreadsheet to find the future value of the annuity. The formula in the future value column is:

    \(FV = C(1 + r)^{(20 - t)}\)

    Time (t) Cash Flow (cf) Interest Rate (r) FV @ year 20
    1 5000 0.08 21578.505
    2 5000 0.08 19980.097
    3 5000 0.08 18500.090
    4 5000 0.08 17129.713
    5 5000 0.08 15860.846
    6 5000 0.08 14685.968
    7 5000 0.08 13598.119
    8 5000 0.08 12590.851
    9 5000 0.08 11658.195
    10 5000 0.08 10794.625
    11 5000 0.08 9995.0231
    12 5000 0.08 9254.6511
    13 5000 0.08 8569.1213
    14 5000 0.08 7934.3716
    15 5000 0.08 7346.6404
    16 5000 0.08 6802.4448
    17 5000 0.08 6298.56
    18 5000 0.08 5832.
    19 5000 0.08 5400.
    20 5000 0.08 5000.
        FVA = 228809.82
  2. Loop
    cf = 5000
    r = 0.08
    n = 20
    
    fva = 0
    for n in range(n):
        fva += cf * (1 + r)**(n)
    
    return fva
    
    228809.82149058158
    
    

    Note range(n) gives you 0, 1, … , n-1 which is happily what we want.

  3. Recursive

    Here is a functional programming approach implemented in python—it uses recursion instead of the imperative style loop. It is nice because it doesn't rely on changing variables' state, which can lead to errors. Don't worry if it doesn't make sense at this point.

    def fva(cf, r, n):
        if n - 1 == 0:
            return cf
        else:
            return cf * (1 + r)**(n - 1) + fva(cf, r, n - 1)
    
    return fva(5000, 0.08, 20)
    
    228809.82149058158
    
    

    Same approach in R.

    fva <- function(cf, r, n){
        if(n - 1 == 0){
            cf
        } else {
            cf * (1 + r)^(n - 1) + fva(cf, r, n - 1)
        }
    }
    
    fva(5000, 0.08, 20)
    
    228809.821490582
    
    

1.2 Interactive App

The following app will calculate OCF for any company you choose.

  • Note how different OCF can be from Net Income.

Future Value of an Annuity Calculator:

Cash Flow:

Interest Rate per Period: %

Number of Periods:



The future value of the annuity is $



1.3 Solving for the Number of Periods

You may also want to know how long you have to save for retirement until you hit a particular goal amount.

1.3.1 Using the FV Annuity Formula

We can rearrange our future value of an annuity formula for n:

\(FVA = C\left(\frac{(1 + r)^n - 1}{r}\right)\)

becomes:

\((1 + r)^n = \frac{FVA(r)}{C} + 1 = \frac{FVA(r) + C}{C}\)

and taking logs:

\(n = \frac{ln\left(\frac{FVA(r) + C}{C}\right)}{ln(1 + r)}\)

So, say we wanted to have $400,000 in our account at retirement. Then we have to save for:

\(n = \frac{ln\left(\frac{400,000(0.08) + 5000}{5000}\right)}{ln(1 + 0.08)} = 26\ years\)

1.4 Solving for r

2 Growing Annuity Retirement Model

A possibly unrealistic feature of using an annuity to model your retirement savings is its assumption that you make constant retirement payments. It is more likely that you will increase your payments over time as your salary increases. In this case we can calculate your retirement savings using the future value of a Growing Annuity. The formula is:

3 Credits and Collaboration

Author: Matt Brigida, Ph.D.

Created: 2021-01-25 Mon 14:44

Validate