1/M’thly#

A 1/m-thly annuity pays \(1/m\) every \(m\)-th of a year, while a 1/m-thly insurance pays $1 of benefits at the end of the \(1/m\)-th year of death. A new lifetime random variable \(K^{(m)}_x\) is introduced to value benefits which depend on the number of complete periods of length \(1/m\) years lived by a life (x).

\(K^{(m)}_x = \dfrac{1}{m} \lfloor m T_x \rfloor\)

  • 1/mthly curtate future lifetime random variable, where \(m > 1\) is an integer, is the future lifetime of (x) in years rounded to the lower \(\frac{1}{m}\) th of a year.

\(Pr[K_x^{(m)} = k] = Pr [k \le T_x \le k + \dfrac{1}{m}] = ~_{k|\frac{1}{m}} q_x = ~_kp_x - ~_{k+\frac{1}{m}} p_x\)

  • the probability function for \(K_x^{(m)}\) can be derived from the associated probabilities for \(T_x\).

Life Insurance#

Whole life insurance

\(Z = v^{K_x^{(k)}+1/m}\)

  • present value random variable of 1/mthly whole life insurance

\(A^{(m)}_x = E[Z] = \sum_{k=0}^{\infty} ~ v^{\frac{k+1}{m}} ~ _{\frac{k}{m}|\frac{1}{m}}q_x\)

  • 1/m’thly whole life insurance

\(E[Z^2] = E[(v^2)^{K_x^{(k)}+1/m}] =~ ^2A^{(m)}_x\)

  • second moment is also obtained from \(A^{(m)}_x\) at double the force of interest

\(Var(Z) = E[Z^2] - E[Z]^2 = ~^2A^{(m)}_x - (A^{(m)}_x)^2\)

  • the variance of the present value of the 1/\(m\)’thly insurance benefit can be derived by adjusting the interest rate in the first time

Term life insurance

\(Z = 0\) if \(K_x^{(m)} \ge t\), else \(v^{K_x^{(k)}+1/m}\)

  • death benefit is payable at the end of the 1/m-th year of death , provided this occurs within \(t\) years.

\(A^{1^{(m)}}_{x:\overline{t|}} = \sum_{k=0}^{mt-1} ~ v^{\frac{k+1}{m}} ~ _{\frac{k}{m}|\frac{1}{m}}q_x \)

  • EPV of 1/m-thly term insurance benefits

Life Annuity#

\(\ddot{a}^{(m)}_x =\sum_{k=0}^{\infty} \dfrac{1}{m} ~ v^{\frac{k}{m}} ~ _{\frac{k}{m}}p_x\)

  • 1/mthly whole life annuity

\(\ddot{a}^{(m)}_{x:\overline{t|}} = \sum_{k=0}^{mt-1} \dfrac{1}{m} ~ v^{\frac{k}{m}} ~ _{\frac{k}{m}}p_x \)

  • 1/mthly temporary life annuity

\(a^{(m)}_{x} = \ddot{a}^{(m)}_{x} - \dfrac{1}{m}\)

  • immediate 1/m’thly whole life annuity

\(a^{(m)}_{x:\overline {t|}} = \ddot{a}^{(m)}_{x:\overline {t|}} - \dfrac{1}{m}(1 - ~_tE_x)\)

  • immediate 1/m’thly temporary life annuity

Life Insurance Twin#

Whole and Temporary Life Annuities (and Whole Life and Endowment Insurance) ONLY:

\(A^{(m)}_{x} = 1 - d^{(m)} ~ \ddot{a}^{(m)}_{x} ~ \Longleftrightarrow ~ \ddot{a}^{(m)}_{x} = \dfrac{1 - A^{(m)}_{x}}{d^{(m)}}\)

  • 1/m’thly whole life annuity due

\(A^{(m)}_{x:\overline {t|}} = 1 - d^{(m)} ~ \ddot{a}^{(m)}_{x:\overline {t|}} ~ \Longleftrightarrow ~ \ddot{a}^{(m)}_{x:\overline {t|}} = \dfrac{1 - A^{(m)}_{x:\overline {t|}}}{d^{(m)}}\)

  • 1/m’thly temporary annuity due and endowment insurance

Methods#

Ths Mthly class implements methods to compute life insurance and annuity values with 1/mthly benefits.

from actuarialmath import Mthly, Premiums, LifeTable
import describe
describe.methods(Mthly)
class Mthly - Compute 1/M'thly insurance and annuities

    Args:
      m : number of payments per year
      life : original survival and life contingent functions

    Methods:
    --------

    v_m(k):
      Compute discount rate compounded over k m'thly periods

    p_m(x, s_m, t_m):
      Compute survival probability over m'thly periods

    q_m(x, s_m, t_m, u_m):
      Compute deferred mortality over m'thly periods

    Z_m(x, s, t, benefit, moment):
      Return PV of insurance r.v. Z and probability of death at mthly intervals

    E_x(x, s, t, moment, endowment):
      Compute pure endowment factor

    A_x(x, s, t, u, benefit, moment):
      Compute insurance factor with m'thly benefits

    whole_life_insurance(x, s, moment, b):
      Whole life insurance: A_x

    term_insurance(x, s, t, b, moment):
      Term life insurance: A_x:t^1

    deferred_insurance(x, s, n, b, t, moment):
      Deferred insurance n|_A_x:t^1 = discounted whole life

    endowment_insurance(x, s, t, b, endowment, moment):
      Endowment insurance: A_x:t = term insurance + pure endowment

    immediate_annuity(x, s, t, b):
      Immediate m'thly annuity

    insurance_twin(a):
      Return insurance twin of m'thly annuity

    annuity_twin(A):
      Return value of annuity twin of m'thly insurance

    annuity_variance(A2, A1, b):
      Variance of m'thly annuity from m'thly insurance moments

    whole_life_annuity(x, s, b, variance):
      Whole life m'thly annuity: a_x

    temporary_annuity(x, s, t, b, variance):
      Temporary m'thly life annuity: a_x:t

    deferred_annuity(x, s, u, t, b):
      Deferred m'thly life annuity due n|t_a_x =  n+t_a_x - n_a_x

    immediate_annuity(x, s, t, b):
      Immediate m'thly annuity

Examples#

The Mthly class is initialized with its life argument set to an instance of a survival model with fractional age assumption, and the number of periods \(m\) in a year. The v_m, p_m and q_m methods can then be called to compute the discount factor, survival probability and mortality rate for m-thly ages and durations. The Z_m methods returns a table of the PV of the insurance random variable and deferred mortality rate by m-thly time of death. Actuarial present values, at integer ages, of insurance and annuities that pay every m-th of a year, can be computed by calling their respective methods in the usual manner.

SOA Question 6.4

For whole life annuities-due of 15 per month on each of 200 lives age 62 with independent future lifetimes, you are given:

  • \(i = 0.06\)

  • \(A_{62}^{(12)} = 0.2105\) and \(^2A_{62}^{(12)} = 0.4075\)

  • \(\pi\) is the single premium to be paid by each of the 200 lives

  • \(S\) is the present value random variable at time 0 of total payments made to the 200 lives

Using the normal approximation, calculate \(\pi\) such that \(Pr(200 \pi > S ) = 0.90\).

print("SOA Question 6.4:  (E) 1893.9")
mthly = Mthly(m=12, life=Premiums().set_interest(i=0.06))
A1, A2 = 0.4075, 0.2105
mean = mthly.annuity_twin(A1)*15*12
var = mthly.annuity_variance(A1=A1, A2=A2, b=15 * 12)
S = Premiums.portfolio_percentile(mean=mean, variance=var, prob=.9, N=200)
print(S / 200)
SOA Question 6.4:  (E) 1893.9
1893.912859650868

SOA Question 4.2

For a special 2-year term insurance policy on (x), you are given:

  • Death benefits are payable at the end of the half-year of death

  • The amount of the death benefit is 300,000 for the first half-year and increases by 30,000 per half-year thereafter

  • \(q_x = 0.16\) and \(q_{x + 1} = 0.23\)

  • \(i^{(2)} = 0.18\)

  • Deaths are assumed to follow a constant force of mortality between integral ages

  • Z is the present value random variable for this insurance

Calculate \(Pr(Z > 277,000)\).

print("SOA Question 4.2:  (D) 0.18")
life = LifeTable(udd=False).set_table(q={0: 0.16, 1: 0.23})\
                           .set_interest(i_m=0.18, m=2)
mthly = Mthly(m=2, life=life)
Z = mthly.Z_m(0, t=2, benefit=lambda x,t: 300000 + t*30000*2)
print(Z)
print(Z[Z['Z'] >= 277000]['q'].sum())
SOA Question 4.2:  (D) 0.18
               Z         q
m                         
1  275229.357798  0.083485
2  277754.397778  0.076515
3  277986.052822  0.102903
4  276285.832315  0.090297
0.17941813045022975