Skip to main content

Heavylight Actuarial Modelling Framework

Reason this release was yanked:

Incorrect release

Project description

heavylight

A lightweight actuarial modelling framework for Python

  • single script
  • installation optional: package with your models.
  • only depends on pandas

Components

Model: - projection controller - class to subclass with your proprietary models - BeforeRun and AfterRun methods

Table: - simple long format table object - type information encoded via |int, |float, |str header suffixes

Usage

Create your model as a subclass of Model. Each model variable is defined as a method:

class Annuity(Model):
    def t(self, t):
        return t

    def expected_claim(self, t):
        return self.number_alive(t) * self.data["annuity_per_period"]

    def number_alive(self, t):
        if t == 0:
            return self.data["initial_policies"]
        else:
            return self.number_alive(t - 1) - self.deaths(t - 1)
    
    def deaths(self, t):
        return self.number_alive(t) * self.mortality_rate(t)

    def mortality_rate(self, t):
        return 0.02

Define input data as a dictionary

policy_data = {
    "initial_policies": 10,
    "annuity_per_period": 55,
}

Call the model, passing in the data dictionary, with a projection length of 20.

model = Annuity(data = policy_data,
                do_run = True,
                proj_len = 20,
                )

display result as a pandas table

model_cashflows = model.ToDataFrame()

Use numpy_financial or another package to calculate NPVs.

Notes

Projecting vs. discounting

  • This package is designed for projecting actuarial variables, and calculates t=0, 1... in order.

  • Actuarial models are generally highly recursive.

  • If you create a method which refers to future t value (such as an NPV function) you may hit the python stack limit.

  • The recommended solution is to project forward first, and then calculate T0 metrics based on the result.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

heavylight-1.0.1.tar.gz (431.0 kB view hashes)

Uploaded Source

Built Distribution

heavylight-1.0.1-py3-none-any.whl (5.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page