Search
  • Kalpesh Agrawal

Annuity Calculator in Python

When you are working in corporates calculating basic annuities in a calculator is not advisable. So today we are going to learn how to calculate annuity in python.


"BASIC PYTHON KNOWLEDGE IS MUST FOR THIS"


You have to simply add inputs and it automatically calculates the annuity factor for you.


I have divided the process of creating an annuity calculator in 4 Steps.

STEP 1:


Creating a calculator for an annuity in arrears:

Define an object and include interest rate , term , and accumulation factor if you want.
create a for loop to calculate and add annuity factor for each year in the variable a. a+= is a shorthand operation for writing a = a+
Now use if else to return the value stored in a. Accumulate will calculate future value of annuity if you set it to TRUE. Round function returns answer to 5 significant digits.


def annuity_arrear (int_rate, n , accumulate = False):

    a = 0
    
    for i in range (0, n):
        a += (1 + int_rate)** - (i + 1)
        
    if accumulate == False:
        return round (a, 5)
    else: 
        return round(a * ((1 + int_rate)**n), 5)
           








STEP 2 :


Creating a calculator for an annuity in due:

Everything remains same and the only thing that changes here is in 4th line. 

def annuity_due (int_rate, n , accumulate = False):

    a = 0
    
    for i in range (0, n):
        a += (1 + int_rate)** (-i )
        
    if accumulate == False:
        return round (a, 5)
    else: 
        return round(a * ((1 + int_rate)**n), 5)
 








STEP 3 :


Creating a calculator for increasing Annuity in arrears:


def inc_annuity_arrear(int_rate, n , accumulate = False):

    a = 0
    
    for i in range (1 , n+1):
        a += i * (1 + int_rate)** (-i )
        
    if accumulate == False:
        return round (a, 5)
    else: 
        return round(a * ((1 + int_rate)**n), 5)







Step 4 :


Creating a Calculator for Increasing Annuity in due :

def inc_annuity_due(int_rate, n , accumulate = False):

    a = 0

    for i in range (0, n):
        a += (1 + i) * (1 + int_rate)** (-i )
        
    if accumulate == False:
        return round (a, 5)
    else: 
        return round(a * ((1 + int_rate)**n), 5)








STEP 5 :


Combining all the calculators created and creating a master calculator


Import pandas library to use series feature of it 
Now call all the calculators we have created by creating a dictionary

import pandas as pd

def annuity_calculator(int_rate , n):

 df = pd.series({"PV_annuity_arrear": annuity_arrear(int_rate , n),
                 "PV_annuity_due": annuity_due(int_rate , n),
                 "AV_annuity_arrear": annuity_arrear(int_rate,n ,accumulate = True),
                 "AV_annuity_due": annuity_due(int_rate , n  ,accumulate = True),
                 "PV_inc_annuity_arrear": inc_annuity_arrear(int_rate, n),
                 "PV_inc_annuity_due": inc_annuity_due(int_rate , n),
                 "AV_inc_annuity_arrear": inc_annuity_arrear(int_rate,n , accumulate = True),
                 "AV_inc_annuity_due": inc_annuity_due(int_rate , n, accumulate = True)})
                 
 return df             
 

I hope you understand well, how to make an annuity calculator in python.

Related: What is Data Mining & The 9 Laws of Data Mining

Written By: Tirth Shah

About the author: Tirth Shah has cleared the CT series of Actuarial Science from IFOA. He completed his graduation in BCOM from Ahmedabad University in 2019.

Email-ID: tirthshah381@gmail.com


0 comments

Related Posts

See All