Project simplelife#
This project includes the simplelife model, which is an annual projection model of basic traditional life policies. The simplelife model is designed in such a way that allows you to trace calculations for each individual model point, so it can be a good reference for building validation models.
A simplelife model projects life insurance cashflows and their present values for policies represented by model points. Projected items include:
Premium income,
Commissions and expenses,
Benefit outgo.
Cells for investment income, change in reserve and profits are included but not tested.
The cashflow projection is carried out in the Projection
Space.
Most Cells in the Projection
Spaces are defined in its base Spaces,
BaseProj
and PV
.
The Projection
is parametrized with PolicyID
,
so Projection[1]
represents the Projection Space for Policy 1.
The present values of the cashflow items are also calculated in
the Projection
Spaces.
For example, the expression
simplelife.Projection[1].PV_NetCashflow(0)
returns the present value of net cashflows for Policy 1.
The Projection
Space has child Spaces,
Policy
and Assumptions
.
The Policy
Space contains Cells representing policy attributes, such as
product type, issue age, sum assured, etc.
It also contains Cells for calculating policy values such as premium rates and
cash surrender value rates.
The Assumptions
Space contains Cells to pick up assumption data for
its model point.
The Input
Space is for storing input data read from the Excel input file,
input.xlsx.
Input data, such as:
model point data,
product specs,
actuarial assumptions,
economic scenarios,
are read from an Excel input file, which is in the model folder. The Space contains References that hold ExcelRange objects.
Premium rates are calculated using commutation functions and actuarial formulas. Commutation functions are calculated for each combination of mortality table IDs, sex and constant interest rates in LifeTable Spaces.
Cash surrender values are calculated as net premium reserves net of surrender charges. The net premium reserves are calculated using the same commutation functions as the ones used by the premium rate calculation.
Warning
The simplelife model is designed with a focus more on traceability than speed and is best suited for model validation. To build a fast model, you should take the parallel modeling approach as employed by Project fastlife.
How to use the project#
Create a project folder from IPython in Spyder. as explained in Copying a Library section. Read the model in Spyder by following the steps in Reading a Model section.
The model become accessible
as simplelife
global variable
in the IPython console in Spyder.
There is no explicit ‘Run’ command to run the model. The model calculates its values on the fly, when requested.
Model structure#
Composition Structure#
The diagram below shows the spaces in the simplelife model.
Inheritance Structure#
The Projection
Space inherits from
BaseProj
and PV
.
Jupyter Notebooks#
Space Details#
Input from files |
|
Commutation functions and actuarial notations |
|
Economic scenarios |
|
Base Space for the |
|
Present Value mix-in Space |
|
Space for cashflow projection. |
|
Policy attributes and policy values |
|
Assumption input and calculations for individual policies. |