Mar 19, 2018

Calibrating my annuity calc

Most of the time I'm winging stuff very roughly as a exercise in pure self discovery. A tiny percentage of the time I want to make sure I am not too far off-road.  This is one of those times.  I have been doing annuity math lately in some of the things I have been trying to figure out.  I know the simple formula and spreadsheets I do are "ok" but I wasn't sure how far out of bounds I was.  So, I thought I'd do a quick calibration check on my math vs. two other trusted sources.  Here is the lineup:

1. My amateur hack for annuity price using: sum[t=1:120](tPx*(1+r)^-t) | x=59, r~.0301, SOA data w G2 extension to 2018. CSP is calculated directly from the table for 59+. The rate comes from guessing an average for the result in "3" below. The formula is from any textbook. The mortality function is a simple discrete version of some Gompertz math; the simplest version is the epigraphic equation at the start of chapter 2 of Milevsky's "7 equations book. Data and math are annualized not continuous. 

2. Milevskys ILA function in Rscript (a "discretized (Reimann) version of an actuarial expectation") represented by: 
where w-x is forced to an endpoint around 121 and dt is 1/52. This is from "The Utility Value of Longevity Risk Pooling: TECHNICAL APPENDIX" Milevsky and Huang 2018 which, helpfully, provides the Rscript. 

3. An aacalc.com estimate that uses SOA annuitant cohort data and an interpolated treasury curve with a survival probability wtd avg r as of 3/2018 around .0301.  Annual payout (not continuous) and MWR = 100%. 

Using...

x = 59
m = 89.95 for 2 and 3 which roughly approximates the SOA data for that age...I think
b = 8.4 for 2 and 3
r = .0301

we get the following...

1. -->  17.985
2. -->  17.840
3. -->  18.011

Being sandwiched in between two guys smarter than me does not totally bum me out. I have a long way to go in all this but I at least feel better about my baby steps and now have some slick Rscript in which I can be confident.


No comments:

Post a Comment