Professional Documents
Culture Documents
Actuarial Life and Death: How to write a spreadsheet to calculate APVs based on an inputted life
table
The sheet does not use any commutation functions, recursion formulae or approximations, it
calculates exactly.
It is a thirteen column sheet (columns A to M), with the first three columns (columns A to C)
accommodating the input of the values for x, n and v respectively, columns D and E accommodating
the input of the life table, and the last five columns (columns I to M) displaying the five calculated
APVs, namely;
APV1
APV of an n-year temporary immediate life annuity, with a discount factor of v, of 1 per
year payable once a year for (x)
APV2
APV of an n-year temporary life annuity due, with a discount factor of v, of 1 per year
payable once a year for (x)
APV3
APV4
APV of a death benefit, with a discount factor of v, of 1 payable at the end of the year of
death for (x), provided this occurs within n years
APV5
APV of a pure endowment, with a discount factor of v, of 1 payable after n years as long
as (x) is still alive then
HOW TO WRITE THE SHEET
COLUMNS A TO C
Put the headings x, n and v into cells A1, B1 and C1 respectively, and then input the values for x, n
and v into cells A2, B2 and C2 respectively.
COLUMN D
Put the heading, x values, into cell D1, and then input the x values, in ascending order, down column
D, starting by inputting the lowest x value into cell D2
COLUMN E
Put the heading, lx values, into cell E1, and then input the lx values, in descending order, down
column E, starting by inputting the highest lx value into cell E2
Page 2 of 4
COLUMN F
Put the heading, r, into cell F1, then put the value, 0, into cell F2, then input the formulae, =F2+1 into
cell F3 and then copy this formula down to, and including, cell F300
COLUMN G
Put the heading, v^rl(x+r) list for APV1 calc, into cell G1, then input the formula,
=IF(AND(F2>0,F2<$B$2+1),$C$2^F2*LOOKUP($A$2+F2,$D$2:$D$300,$E$2:$E$300),0) into cell G2
and then copy this formula down to, and including, cell G300
COLUMN H
Put the heading, v^rl(x+r) list for APV2 calc, into cell H1, then input the formula,
=IF(F2<$B$2,$C$2^F2*LOOKUP($A$2+F2,$D$2:$D$300,$E$2:$E$300),0) into cell H2 and then copy
this formula down to, and including, cell H300
COLUMN I
Put the heading, APV1, into cell I1 and then input the formula,
=SUM(G2:G300)/LOOKUP(A2,D2:D300,E2:E300) into cell I2
COLUMN J
Put the heading, APV2, into cell J1 and then input the formula,
=SUM(H2:H300)/LOOKUP(A2,D2:D300,E2:E300) into cell J2
COLUMN K
Put the heading, APV3, into cell K1 and then input the formula, =1-(1-C2)*J2 into cell K2
COLUMN L
Put the heading, APV4, into cell L1 and then input the formula, =K2-
C2^B2*LOOKUP(A2+B2,D2:D300,E2:E300)/LOOKUP(A2,D2:D300,E2:E300) into cell L2
COLUMN M
Put the heading, APV5, into cell M1 and then input the formula, =K2-L2 into cell M2
You now have a spreadsheet to calculate APVs based on inputted values for x, n and v and an
inputted life table!
To utilise your spreadsheet to calculate and display the five APVs for x=z,z+1,…h, follow
the four steps below;
STEP 1
Input the values for n and v, as well as the life table, but don’t put in a value for x
STEP 2
Page 3 of 4
Now put the value for z into cell A3, then input the formula, =A3+1 into cell A4 and then copy
this formula down to, and including, the column A cell in which the value for h appears,
noting this row number.
STEP 3
Now enter the following Visual Basic code into Excel’s Visual Basic facility, replacing R
with the row number of the row in which the value for h appeared;
Sub Macro1()
'
'
'
For i = 3 To R
Selection.Copy
Range("A2").Select
:=False, Transpose:=False
Range("I2:M2").Select
Application.CutCopyMode = False
Selection.Copy
:=False, Transpose:=False
Next i
End Sub
STEP 4
The column I, J, K, L and M cells in row 3 down to, and including, the row in which the
value for h appeared, now show the five APVs for x=z,z+1,…h
NOTE: If you now want the spreadsheet to calculate and display the five APVs, using the
same life table and the same values for z and h as before, but using a different value(s) for
n and/or v, then simply; delete what’s in the column I, J, K, L and M cells in row 3
downwards, then delete what’s in cell A2, then make your change(s) to the value(s) for n
and/or v and then run the existing Visual Basic code again.