Skip to main content
Back to module
Actuarial Mathematics · Financial Mathematics

Time value of money

Reading29mLesson 1 of 3 in this module

Price any set of future cash flows by discounting them to today with an interest rate.

Why it matters

Almost every number an actuary produces is a present value. A pension promise paid over 30 years, a claim that will be settled in 18 months, a life insurance benefit that might be paid next year or in 50 years: each one is money at different times, and you cannot add money at different times until you move it to the same date. The time value of money is the rule for doing that move. It is the first topic of the SOA Financial Mathematics (FM) exam and it runs underneath everything else in this course.

The idea is simple: 100 dollars today is worth more than 100 dollars in a year, because today's 100 can be invested and earn interest. So a payment in the future must be discounted to compare it with money now.

The core formulas

Let i be the effective annual interest rate (for example 5% = 0.05).

  • Accumulation: 1 invested today grows to (1 + i)^t after t years. So the future value of an amount C is FV = C * (1 + i)^t.
  • Discounting: the present value of C paid at time t is PV = C / (1 + i)^t.

Actuaries write the one-year discount factor as v = 1 / (1 + i), so PV = C * v^t. You will see v everywhere in life contingencies, so get used to it now.

t does not have to be a whole number. A payment in 6 months at 5% has PV = C * 1.05^(-0.5). This is compound interest, which is the standard in actuarial work; simple interest (C / (1 + i*t)) only appears in short-term contexts.

Worked example 1: one payment

You will receive 10,000 in 3 years. At 4% effective per year:

v = 1 / 1.04 = 0.961538
PV = 10000 * v^3 = 10000 / 1.124864 = 8889.96

So 8,889.96 today, invested at 4%, grows to exactly 10,000 in three years. The two amounts are equivalent at that rate.

Worked example 2: several cash flows (net present value)

A project costs 5,000 now and returns 2,000 at the end of each of the next three years. At 6%:

timecash flowdiscount factor 1.06^-tpresent value
0-5,0001.000000-5,000.00
12,0000.9433961,886.79
22,0000.8899961,779.99
32,0000.8396191,679.24
NPV346.02

Because present values are all at the same date, they can be added. The net present value (NPV) is positive, so at 6% the project is worth more than it costs. The rate that makes the NPV exactly zero is the internal rate of return (here about 9.7%).

In Python the whole table is one line:

def npv(cashflows, rate):
    return sum(amount / (1 + rate) ** t for t, amount in cashflows)

print(round(npv([(0, -5000), (1, 2000), (2, 2000), (3, 2000)], 0.06), 2))  # 346.02

Nominal rates and the force of interest

Rates are often quoted nominally: "6% compounded monthly" means 0.5% per month, written i^(12) = 0.06. Convert to an effective annual rate before you discount:

i = (1 + i^(m) / m)^m - 1
6% compounded monthly: (1 + 0.06/12)^12 - 1 = 0.061678

At the limit of continuous compounding you get the force of interest delta = ln(1 + i), and v^t = e^(-delta * t). Exam FM and later life contingencies exams use all three forms, so practise switching between them.

Common mistakes

  • Mixing periods. A monthly cash flow needs a monthly rate, or times expressed in years with an annual effective rate. Never use a nominal annual rate as if it were effective.
  • Adding values at different dates. Always move every cash flow to one date first.
  • Sign confusion. Pick a side (the insurer, the borrower) and keep money out negative and money in positive.
  • Rounding too early. Keep full precision for discount factors and round only the final answer.

Quick recap

  • PV = C * v^t with v = 1 / (1 + i); FV = C * (1 + i)^t.
  • Values at the same date can be added; NPV is the sum of discounted cash flows.
  • Convert nominal rates to effective with (1 + i^(m)/m)^m - 1; the force of interest is ln(1 + i).

Try it

Open the Do tab and write pv, fv and npv functions in Python, then use them to compare two payment offers.

Also in this lesson: