Life Insurance model

This is a simple life insurance model with death benefit calculations. You can create an instance of this project in your workspace as the following: create a new project, select the “Life Insurance” sample project, click create.

The model includes the following group of formulas:

  • create genderless Lx and Commutation tables from mortality table (optional)
  • calculate frequency premium for a contract
  • calculate premium reserve for a contract

You can also navigate (left menu):

  • to Tests to see testing features
  • to API to see how a web service API can be created from you Calculation Model.

Note

In order to continue you need to login to your workspace and create a new project using the “Life insurance” sample as template

Create the genderless L table

This task shows you how to use the formulas to (re)create the genderless mortality table from a fictitious statistics including both genders. The blended mortality is calculated with 75% of male and 25% of female weights.

Note

The Genderless L table is already created for you, you can skip this task if you want.

This process takes the LwG (L with Gender) table as input and produces the L (genderless table) table as the output. Before starting you can delete this result parameter table from the Commutation numbers module as this will be the output of this process.

Evaluate the L table generation formula

The formula that generates the table is the following:

L blended = l age , l male 0.75 + l female 0.25 | l LwG

In order to run the formula we need an evaluation configuration.

Create a new Evaluation context with these modules:

  • Basic calculations
  • Commutation numbers

Variables to use:

  • Add i the technical interest rate input variable (set it to some value e.g. 0 if you have no preference)
  • Add L blendedSorted output variable

Calculation output:

  • Following calculations, inspect the output of the L blendedSorted variable and download it’s contents as a CSV file.

Note

You can preview and download the contents of a variable by clicking the “eye” icon.

Edit the downloaded CSV file

Add a header row:

Age;Count

Upload the CSV file

  1. Create the new L table in the Commutation numbers module.
  2. Set first row as header
  3. Browse to the CSV file and load it
  4. Set the Domains:
  • age: %N
  • count: %R
  1. At this point you should be able to preview the contents of the table. If all seems ok to the import.

Create the commutation table - C

This task shows you how to recreate the commutation (C) table. This table includes some intermediate variables for each age to make premium calculations more efficient.

CN = x , l x , d x , C x , D x , M x , N x | x = 0 , , card L 1

The variables l x , d x , C x , D x , M x , N x refer to indexed functions, you can find them in the sample project’s Commutation Numbers module. The modules begin with the lookup of the L table at age x:

l x lx count | lx L lx age = x : x N

and the formula source for the above lookup function is below:

l_x := ((lx)_'count | lx (- @L /\ (lx)_'age = x) : x (- %N

This process assumes that you already have L, the genderless L table (see previous section)

Evaluate the Commutation sequence generation formula

Create a new Evaluation context with these modules:

  • Basic calculations
  • Commutation numbers

Variables to use:

  • Add i the technical interest rate input variable
  • Add CN output variable, commutation numbers

Download CN contents as a CSV file.

Note

You can do this as previously clicking on the “eye” icon on the CN output variable after calculating it’s value in the Evaluation dialog.

Edit the downloaded CSV file

Add a header row:

age;lx;dx;Cx;Dx;Mx;Nx

Upload the CSV file

Create the new C table in the Commutation numbers module.

Set first row as header.

Browse to the CSV file and load it.

Set the Domains:
  • age: %N
  • lx: %R
  • dx: %R
  • Cx: %R
  • Dx: %R
  • Mx: %R
  • Nx: %R

At this point you should be able to preview the contents of the table. If all seems fine, do the import.

Premium calculation service

The modules “Basic Actuarial Calculations” and “Premium Calculation” do the actual calculations based on the Commutation Numbers table (prepared above).

A quick preview of the calculations shown below:

  1. The net premium formula

P x , n , SA SA A x , n a x , n : x N ; n N ; SA R

  1. The formula definitions for A x , n and a x , n variables

The variables below refer to the indexed commutation number lookup formulas N x , D x , M x References to indexes can also be expressions like this one M x + n

Fixed term annuity:

a x , n N x N x + n D x : x N ; n N

Whole life for one unit of SA:

A x , n M x M x + n D x : x N ; n N

Calculations can be evaluated by creating an evaluation configuration with the following modules:

  • “Basic actuarial calculations”
  • “Premium Calculation”

Add the following variables to calculate premium:

../_images/premium-calculation-eval-config.png

The premium calculation services are generated by the Premium Calculations calculation group. This allows applications to invoke the frequency premium calculation service and host it as a web service for any of your front-end or back-end applications to use. See some of the tasks how to expose services as APIs.

Reserve calculation service

The reserve calculation services are generated by the Reserve calculation group. Reserve calculation will calculate reserves for a given contract for each year within the contract term given the age, term and sum assured.