The annuallife Library#

modelx

Overview#

The annuallife library packages TradLife_A, an annual new business projection model of basic traditional life policies, covering term, whole life and endowment products, built with modelx.

TradLife_A projects liability cashflows and their present values for policies represented by model points. Projected items include:

  • Premiums,

  • Commissions and expenses,

  • Claims.

Premiums are calculated using commutation functions.

Cells for investment income reserves are defined but not implemented.

See TradLife_A for more details.

Successor of simplelife#

The annuallife library is the updated successor of the legacy Project simplelife project. Compared with the original simplelife model, TradLife_A introduces:

  • Snake-case cell and reference names following the basiclife.BasicTerm_SC naming convention (for example, net_cf rather than NetInsurCF, claims rather than BenefitDeath).

  • Array-based model points. Policy attributes are read from input.xlsx as 1-D NumPy arrays and addressed by the integer parameter idx (0-based) instead of PolicyID (1-based).

  • A flatter space layout. Assumptions and PolicyAttrs are top-level spaces instead of being nested inside Projection.

  • A renamed input space. The space holding input.xlsx-backed References is now InputData and is referenced as input_data by the rest of the model.

How to Use the Library#

As explained in the Copying a Library section, create your own copy of the annuallife library. For example, to copy as a folder named annuallife under the path C:\path\to\your\, type below in an IPython console:

>>> import lifelib

>>> lifelib.create("annuallife", r"C:\path\to\your\annuallife")

The TradLife_A model loads its data from input.xlsx, which lives next to the model directory inside the library folder.

To read the model on the IPython console, change the working directory to the library folder and use modelx’s read_model function:

>>> import modelx as mx

>>> m = mx.read_model("TradLife_A")

More detailed instructions on how to read, run and inspect the model are described in the Basic Usage section of the TradLife_A documentation.

Older modelx versions#

TradLife_A is saved in the modelx serializer version 7 format and requires modelx v0.31.0 or newer.

For users whose modelx is older than v0.31.0, the library also includes TradLife_A_mx30, a copy of TradLife_A saved in the older serializer version 6 format. It is the same model and reads its data from the same input.xlsx. Read it instead with:

>>> import modelx as mx

>>> m = mx.read_model("TradLife_A_mx30")

Library Contents#

File or Folder

Description

TradLife_A

The TradLife_A model.

TradLife_A_mx30

Copy of TradLife_A saved in the modelx serializer version 6 format, for modelx older than v0.31.0.

input.xlsx

Excel workbook holding policy data, assumptions, mortality tables, scenarios and product specs.

plot_tradlife_a.py

sphinx-gallery plot script that renders the cashflow chart.

plot_pvcashflows_tradlife_a.py

sphinx-gallery plot script that renders present-value cashflows.

tradlife_a-demo.ipynb

Jupyter notebook demonstrating cashflow projection.

tradlife_a-space-overview.ipynb

Tutorial notebook on the space tree of TradLife_A.

Jupyter Notebooks#