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)