premiums

Premiums - Computes net and gross premiums, with the equivalence principle

MIT License. Copyright (c) 2022-2023 Terence Lim

class actuarialmath.premiums.Premiums(udd: bool = True, **kwargs)[source]

Bases: Annuity

Compute et and gross premiums under equivalence principle

net_premium(x: int, s: int = 0, t: int = -999, u: int = 0, n: int = 0, b: int = 1, endowment: int = 0, discrete: bool | None = True, return_premium: bool = False, annuity: bool = False, initial_cost: float = 0.0) float[source]

Net level premium for special n-pay, u-deferred t-year term insurance

Parameters:
  • x – age initially insured

  • s – years after selection

  • u – years of deferral

  • n – number of years of premiums paid

  • t – year of death

  • b – benefit amount

  • endowment – endowment amount

  • initial_cost – EPV of any other expenses or benefits, if any

  • return_premium – if premiums without interest refunded at death

  • annuity – whether benefit is insurance (False) or annuity

  • discrete – whether annuity due (True) or continuous (False)

Examples

>>> life = Premiums().set_interest(delta=0.06)          >>>                  .set_survival(mu=lambda x,s: 0.04)
>>> life.net_premium(x=0)
insurance_equivalence(premium: float, b: int = 1, discrete: bool = True) float[source]

Compute whole life or endowment insurance factor, given net premium

Parameters:
  • premium – level net premium amount

  • b – benefit amount

  • discrete – discrete/annuity due (True) or continuous (False)

Returns:

Insurance factor value, given net premium under equivalence principle

Examples

>>> life = Premiums().set_interest(d=0.05)
>>> life.insurance_equivalence(premium=2143, b=100000)
annuity_equivalence(premium: float, b: int = 1, discrete: bool = True) float[source]

Compute whole life or temporary annuity factor, given net premium

Parameters:
  • premium – level net premium amount

  • b – benefit amount

  • discrete – discrete/annuity due (True) or continuous (False)

Returns:

Annuity factor value, given net premium under equivalence principle

Examples

>>> life = Premiums().set_interest(d=0.05)
>>> a = life.annuity_equivalence(premium=2143, b=100000)
premium_equivalence(A: float | None = None, a: float | None = None, b: int = 1, discrete: bool = True) float[source]

Compute premium from whole life or endowment insurance and annuity factors

Parameters:
  • A – insurance factor

  • a – annuity factor

  • b – insurance benefit amount

  • discrete – annuity due (True) or continuous (False)

Returns:

Net premium under equivalence principle

gross_premium(a: float | None = None, A: float | None = None, IA: float = 0, discrete: bool = True, benefit: float = 1, E: float = 0, endowment: int = 0, settlement_policy: float = 0.0, initial_policy: float = 0.0, initial_premium: float = 0.0, renewal_policy: float = 0.0, renewal_premium: float = 0.0) float[source]

Gross premium by equivalence principle

Parameters:
  • A – insurance factor

  • a – annuity factor

  • IA – increasing insurance factor, to return premiums w/o interest

  • E – pure endowment factor for endowment benefit

  • benefit – insurance benefit amount

  • endowment – endowment benefit amount

  • settlement_policy – settlement expense per policy

  • initial_policy – initial expense per policy

  • renewal_policy – renewal expense per policy

  • initial_premium – initial premium per $ of gross premium

  • renewal_premium – renewal premium per $ of gross premium

  • discrete – annuity due (True) or continuous (False)

Examples

>>> Premiums().gross_premium(a=0.17094,
>>>                          A=6.8865,
>>>                          IA= 0.96728,
>>>                          benefit=100000,
>>>                          initial_premium=0.5,
>>>                          renewal_premium=.05,
>>>                          renewal_policy=200,
>>>                          initial_policy=200)