udd

UDD - 1/mthly insurance and annuities with uniform distribution of deaths

MIT License. Copyright 2022-2023 Terence Lim

class actuarialmath.udd.UDD(m: int, life: Annuity, **kwargs)[source]

Bases: Mthly

1/mthly shortcuts with UDD assumption

Parameters:
  • m – number of payments per year

  • life – original fractional survival and mortality functions

static alpha(m: int, i: float) float[source]

Compute 1/mthly UDD interest rate beta function value

Parameters:
  • m – number of payments per year

  • i – annual interest rate

static beta(m: int, i: float) float[source]

Compute 1/mthly UDD interest rate alpha function value

Parameters:
  • m – number of payments per year

  • i – annual interest rate

whole_life_insurance(x: int, s: int = 0, moment: int = 1, b: int = 1) float[source]

1/mthly UDD Whole life insurance: A_x

Parameters:
  • x – age of selection

  • s – years after selection

  • b – amount of benefit

  • moment – compute first or second moment

Examples

>>> UDD(m=0, life=SULT(udd=True)).whole_life_insurance(x)
endowment_insurance(x: int, s: int = 0, t: int = 1, b: int = 1, endowment: int = -1, moment: int = 1) float[source]

1/mthly UDD Endowment insurance = term insurance + pure endowment

Parameters:
  • x – year of selection

  • s – years after selection

  • t – term of insurance in years

  • b – amount of benefit

  • endowment – amount of endowment

  • moment – return first or second moment

term_insurance(x: int, s: int = 0, t: int = 1, b: int = 1, moment: int = 1) float[source]

1/mthly UDD Term insurance: A_x:t

Parameters:
  • x – year of selection

  • s – years after selection

  • t – term of insurance in years

  • b – amount of benefit

  • moment – return first or second moment

Examples

>>> UDD(m=12, life=SULT(udd=True)).term_insurance(45)
whole_life_annuity(x: int, s: int = 0, b: int = 1, variance: bool = False) float[source]

1/mthly UDD Whole life annuity: a_x

Parameters:
  • x – year of selection

  • s – years after selection

  • b – amount of benefit

  • variance – return first moment (False) or variance (True)

Examples

>>> UDD(m=12, life=SULT(udd=True)).whole_life_annuity(x)
temporary_annuity(x: int, s: int = 0, t: int = -999, b: int = 1, variance: bool = False) float[source]

1/mthly UDD Temporary life annuity: a_x:t

Parameters:
  • x – year of selection

  • s – years after selection

  • t – term of annuity in years

  • b – amount of benefit

  • variance – return first moment (False) or variance (True)

Examples

>>> UDD(m=12, life=SULT(udd=True)).temporary_annuity(45, t=20)
deferred_annuity(x: int, s: int = 0, u: int = 0, t: int = -999, b: int = 1, variance: bool = False) float[source]

1/mthly UDD Deferred life annuity n|t_a_x = n+t_a_x - n_a_x

Parameters:
  • x – year of selection

  • s – years after selection

  • u – years of deferral

  • t – term of annuity in years

  • b – amount of benefit

static interest_frame(i: float = 0.05)[source]

Return 1/mthly UDD interest function values in a DataFrame

Parameters:

i – annual interest rate