lifelib: Actuarial models in Python


lifelib is a collection of actuarial projection models. lifelib models are built as modelx models, ready to be used out of the box with sample formulas and input files, and they are fully customizable by users.

How lifelib works

You can create an actuarial projection model as modelx Model object by:

  • Creating a project folder from a lifelib project template,
  • Build a modelx Model from source modules and input data in the project, by running build function.

Once the model is built, they are available as a modelx Model object in Python console. The model is composed of Space. Spaces contain Cells and other spaces. Cells are much like cells in spreadsheets, which in turn, can store formulas and associated values.

With a lifelib model, you can:

  • Get calculated values by simply accessing model elements,
  • Change the model by changing input and writing formulas in Python,
  • View the tree of model elements in graphical user interface,
  • Output results to Pandas objects,
  • Save the model, load it back again, and do much more.

Start from Quick Start page.

Feature highlights

  • Formulas and their calculated values paired as Cells, just like spreadsheet cells
  • Relevant cells grouped together as a Space, just like a spreadsheet
  • Spaces in other spaces (subspaces), forming trees of spaces
  • Object-oriented Model composed of spaces
  • Space inheritance
  • Parametrized dynamic subspaces created automatically
  • Saving to / loading from files
  • Conversion to Pandas objects
  • Reading data from Excel files
  • Cells graph to track cells interdependency

Why lifelib?

  • Better model integrity and extensibility
  • For readable formula expressions
  • For eliminating spreadsheet errors
  • For better version control/model governance

What for?

  • Pricing / Profit testing
  • Model validation / testing
  • Prototyping for production models
  • As corporate models
  • For simulations
  • As replacement for any spreadsheet models

Got questions?

If you have troubles to shoot, questions to be answered, post them on stackoverflow and add lifelib tag to the posts. If you find bugs or want to request new features, submit issues on lifelib development site on github.