lifeannuities.ijs

Script: ~addons/finance/finexec/actuariallife/lifeannuities.ijs
Contributor: William Szuch
Updated: 2022 6 25
Depend: ~addons/finance/finexec/qxtables/qxtools.ijs’
Definitions: loaded to locale base
Status: update
Script scource: lifeannuities.ijs

Definitions to calculate life annuities
for single and multiple lives.
Qx tables loaded to the locale base.
See: Qx_ALL for a list of names.
See: Qx_ALT for a list of Australian Life Tables.
All mortality tables start at age = 0.

Note:
(1) Extending Qx tables by 5 years.
(2) Variable interest rates
(3) Multiple lives
(4) term annuities
(5) axy
(6) reversionary
(7) payment frequency within a year
(8) dev tacits

Equations:
NF

Definitions

A ax, ax0, ax0_M, ax_M, axn, axn1, axy, axyLS, axyR

ax (dyad)

Form: tacit
single life annuity with yearly payments of 1 in arrears.

Syntax

(Qx;E)ax(Age)
Qx = name of Qx table starting at age = 0
E = yearly effective interest rate
Age = integer ages

Example

   (ALT_1960_62_M;0.04)ax(65)
8.71606
   (ALT_1960_62_M;0.04)ax(50 60 65 70)
13.8119 10.4011 8.71606 7.10639
   (AL_AM92_ULT;0.04)ax(17 50 60)
22.367 16.4441 13.1335

ax0 (dyad)

Form: tacit
single life annuity with yearly payments of 1 in advance.

Syntax

(Qx;E)ax0(Age)
Qx = name of Qx table starting at age = 0
E = yearly effective interest rate
Age = integer ages

Example

   (ALT_1960_62_M;0.04)ax0(65)
9.71606
   (ALT_1960_62_M;0.04)ax0(50 60 65 70)
14.8119 11.4011 9.71606 8.10639
   (AL_AM92_ULT;0.04)ax0(17 50 60)
23.367 17.4441 14.1335

ax0_M (monad)

Form: tacit
Monadic form of ax0
Single life annuity with payments yearly payments
in advance of one.

Syntax

axm0(Qx;Age;E)
Qx = name of Qx table starting at age = 0
Age = integer ages
E = yearly effective interest rate

Example

    axm0(ALT_1960_62_M;65;0.04)
9.71606
   axm0(ALT_1960_62_M;50 60 65 70;0.04)
14.8119 11.4011 9.71606 8.10639
   axm0(AL_AM92_ULT;17 50 60;0.04)
23.367 17.4441 14.1335

ax_M (monad)

Form: tacit
Monadic form of ax.
single life annuity with payments in arrears
Equation: (Qx)ax_M(Age)
Calculate the value of a single life annuity with
yearly payments in arrears of one.

Syntax

ax_M(Qx;Age;E)
Qx = name of Qx table starting at age = 0
Age = integer ages
E = yearly effective interest rate

Example

   ax_M(ALT_1960_62_M;65;0.04)
8.71606
   ax_M(ALT_1960_62_M;50 60 65 70;0.04)
13.8119 10.4011 8.71606 7.10639
   ax_M(AL_AM92_ULT;17 50 60;0.04)
22.367 16.4441 13.1335

axn (dyad)

Form: explicit
Single life term annuity with yearly payments of 1 in arrears.

Syntax

(Qx;E)axn(Age;N)
Qx = name of Qx table starting at age = 0
E = yearly effective interest rate
Age = integer ages
N = term of annuity - integer years

Example

   (AL_49_52_M_ULT;0.05)axn(65;10)
6.39308
   (AL_49_52_M_ULT;0.05)axn(50;20)
11.2005
   (AL_49_52_M_ULT;0.05)axn(40 50;20)
12.0099 11.2005
   (AL_49_52_M_ULT;0.05)axn(50;10 20 30)
7.39698 11.2005 12.6708
   (AL_49_52_M_ULT;0.05)axn(40 50;10 20 30)
 7.6169 12.0099 14.2688
7.39698 11.2005 12.6708

axn1 (dyad)

Form: tacit
(Same as axn - one life)
Single life term annuity with yearly payments of 1 in arrears.

Syntax

(Qx;E)axn1(Age;N)
Qx = name of Qx table starting at age = 0
E = yearly effective interest rate
Age = integer ages
N = term of annuity - integer years

Example

   (AL_49_52_M_ULT;0.05)axn1(65;10)
6.39308
   (AL_49_52_M_ULT;0.05)axn1(50;20)
11.2005

axy (dyad)

Form: explicit
Joint life annuity with yearly payments of 1 in arrears.
(ie: payable while both lives are alive)
The last value in the Qx tables is extended so that tables
are of equal length for the selected ages.

Syntax

(Qx;Qy;E)ax(Agex;Agey)
Qx = name of Qx table for life x starting at age = 0
Qy = name of Qx table for life y starting at age = 0
E = yearly effective interest rate
Agex = age of life x(integer age)
Agey = age of life y(integer age)

Example

   (ALT_2013_15_F;ALT_2013_15_M;0.035)axy(60;65)
11.9358
   (ANN_55_F_ULT;ANN_55_M_ULT;0.025)axy(20;20)
26.7798
   (ANN_55_F_ULT;ANN_55_M_ULT;0.04)axy(30;40)
17.0961
   (ANN_55_F_ULT;ANN_55_M_ULT;0.04)axy(66;70)
6.71193

axyLS (dyad)

Form: explicit
Last survivor annuity with yearly payments of 1 in arrears.
(ie: payable while at least one life is alive)
The last value in the Qx tables is extended so that tables
are of equal length for the selected ages.

Syntax

(Qx;Qy;E)axLS(Agex;Agey)
Qx = name of Qx table for life x starting at age = 0
Qy = name of Qx table for life y starting at age = 0
E = yearly effective interest rate
Agex = age of life x(integer age)
Agey = age of life y(integer age)

Example

   (ALT_2013_15_F;ALT_2013_15_M;0.035)axyLS(60;65)
17.4866
   (ANN_55_F_ULT;ANN_55_M_ULT;0.04)axyLS(20;20)
22.7473
   (ANN_55_F_ULT;ANN_55_M_ULT;0.04)axyLS(30;40)
21.2563
   (ANN_55_F_ULT;ANN_55_M_ULT;0.04)axyLS(66;70)
12.3762

axyR (dyad)

Form: explicit
Reversionary annuity - payable on the life of x
then a percentage to the life y if life y survives life x.
Payments yearly in arresrs.
The last value in the Qx tables is extended so that tables
are of equal length for the selected ages.

Syntax

(Qx;Qy;E)axLS(P:Agex;Agey)
Qx = name of Qx table for life x starting at age = 0
Qy = name of Qx table for life y starting at age = 0
E = yearly effective interest rate
Agex = age of life x(integer age)
Agey = age of life y(integer age)