How to calculate time value of money with Python for Business and Finance analysis.


The basic idea behind Time Value of Money (TVM) is One Dollar today will worth more than one dollar tomorrow because you can invest or save your money today and earn interest tomorrow. All required TVM calculations can be easily realised with Python.




Future Value (FV) - Compounding formula:


𝐹𝑉 = 𝑃𝑉(1 + 𝑟)^n

Where:

FV: Future Value
PV: Present Value (today)
r: Interest Rate (per period)
n: number of periods


PV = 100 
r = 0.05 
n = 3
FV = PV * (1 + r)**n

You can also calculate FV using NUMPY library which is much more simple way to do it.


import numpy as np
import numpy_financial as npf

PV = 0
cf = -2000
r = 0.03
n = 25

FV = npf.fv(rate = r, nper = n, pmt = cf, pv = PV)
FV

Present Value (PV) - Discounting formula:


𝑃𝑉 = 𝐹𝑉 / (1 + 𝑟)^𝑛

Where:

FV: Future Value
PV: Present Value (today)
r: Interest Rate (per period)
n: number of periods


FV = 20000
n = 4
r = 0.045
PV = FV / (1 + r)**n

You can also calculate PV using NUMPY library which is much more simple way to do it.


import numpy as np
import numpy_financial as npf

FV = 20000
r = 0.03
n = 25
cf = 5000

PV = npf.pv(rate = r, nper = n, pmt = cf, fv = FV)
PV 

Interest Rates formula:


𝑟 = ( 𝐹𝑉/𝑃𝑉) ^ 1/𝑛 − 1

Where:

FV: Future Value
PV: Present Value (today)
r: Interest Rate (per period)
n: number of periods


pv = 10000
fv = 15000
n = 10
r = (fv / pv)**(1/n) - 1

Stock Returns (Price Return) formula:


𝑟 = 𝑃𝑡+1/𝑃𝑡 − 1

Where:

Pt: Price @ timestamp t
Pt+1: Price @ t+1
r: Period Return (Price Return)


p0 = 976
p1 = 1053
p_ret = p1 / p0 - 1

Stock Returns (Total Return = Price Return + Dividend Yield) formula:


𝑟 = (𝑃𝑡+1 + 𝐷𝑡+1) / 𝑃𝑡 − 1 = 𝑃𝑡+1 / 𝑃𝑡 − 1 + 𝐷𝑡+1 / 𝑃𝑡

Where:

Pt: Price @ timestamp t
Pt+1: Price @ t+1
Dt+1: Dividend payment @ t+1
r: Period Return (Total Return)


div = 40
div_y = div / p0
total_ret = p_ret + div_y



See also related topics: