an actuarial programming language for life insurance and
play

An Actuarial Programming Language for Life Insurance and Pensions - PowerPoint PPT Presentation

An Actuarial Programming Language for Life Insurance and Pensions David R. Christiansen 1 Klaus Grue 2 Henning Niss 2 Peter Sestoft 1 Kristjn S. Sigtryggsson 2 1 IT University of Copenhagen 2 Edlund A/S 1 / 31 Contracts have a longer


  1. An Actuarial Programming Language for Life Insurance and Pensions David R. Christiansen 1 Klaus Grue 2 Henning Niss 2 Peter Sestoft 1 Kristján S. Sigtryggsson 2 1 IT University of Copenhagen 2 Edlund A/S 1 / 31

  2. ◮ Contracts have a longer lifespan than IT systems ◮ At any given time, multiple systems must administer a contract 2 / 31

  3. Our Vision ◮ A formalized description of life insurance and pension products ◮ Supporting automated administration and reporting ◮ Readable and manageable by humans 3 / 31

  4. Participants Supported by 4 / 31

  5. Overview Context AML Models Safety Status and Continuing Work 5 / 31

  6. Overview Context AML Models Safety Status and Continuing Work

  7. Context ◮ Solvency II: new EU rules require more flexible calculations ◮ Contracts are held longer than IT systems exist ◮ Current programming tools are too slow or too difficult 6 / 31

  8. Reporting 7 / 31

  9. Solvency Reporting calculations 7 / 31

  10. Solvency Ongoing Reporting calculations administration 7 / 31

  11. AML Solvency Ongoing Reporting calculations administration 7 / 31

  12. Models Sample product ◮ Pay $1 on death before some time g ◮ Before some expiry time n , pay $1 per year while disabled ◮ Allow an unlimited number of disability diagnoses and reentries to the workforce Modeling risk ◮ 3-state continuous-time Markov model ◮ States: 0 active, 1 disabled, 2 dead ◮ Transition intensities: µ ij ( t ) at time t 8 / 31

  13. Models b 0 0: active 2 ( t ) = 1 t < µ 02 ( t ) g µ 01 ( t ) 2: dead µ 10 ( t ) µ 12 ( t ) g < 1 t t ) = 1: disabled b 02 ( b 1 ( t ) = 1 t < n 9 / 31

  14. Thiele’s Differential Equations d dt V j ( t ) = r ( t ) V j ( t ) − b j ( t ) � � � µ jk ( t ) b jk ( t ) + V k ( t ) − V j ( t ) − k � = j 10 / 31

  15. Overall Architecture Other descriptions AML ODEs Other solvers: cloud, GPU, etc. Calculation Kernel (next talk) 11 / 31

  16. Overview Context AML Models Safety Status and Continuing Work

  17. AML Models ◮ Separate risk models from product definitions ◮ Define transformations on products and risk models ◮ Generate ODEs from the flexible, readable models ◮ Allow fast experimentation with new products 12 / 31

  18. Whole-Life Insurance µ 01 ( t ) 0: alive 1: dead b 01 ( t ) = 1 Upon death of insured, pay $1. Intensity of mortality is µ 01 ( t ) . 13 / 31

  19. AML : Whole-Life Insurance alive dead b 01 ( t ) = 1 µ 01 ( t ) alive dead Separate payment from risk information and name the states. 14 / 31

  20. State Models alive dead statemodel LifeDeath(p : Person) where states = alive dead transitions = alive -> dead 15 / 31

  21. Risk Models riskmodel RiskLifeDeath(p : Person) : LifeDeath(p) where intensities = alive -> dead by gompertzMakehamDeath(p) ◮ Risk models give transition intensities ◮ Here information about the insured is used to calculate the intensities ◮ RiskLifeDeath is defined inside LifeDeath 16 / 31

  22. Whole-Life Insurance in AML product WholeLifeInsurance(p : Person) : LifeDeath(p) where obligations = pay $1 when (alive -> dead) ◮ Products consist of payment specifications ◮ Payment specifications determine who will pay what when, and under which circumstances 17 / 31

  23. Calculation Bases basis BasisLifeDeath(p : Person) : LifeDeath(p) where riskModel = RiskLifeDeath(p) interestRate = constant(0.05) maxtime = p.BirthDate + 120 ◮ A basis contains everything needed to compute a reserve ◮ The interest rate is an arbitrary function, and the constant operator creates a constant function ◮ Some bases will have more information for products that need additional phenomena modeled 18 / 31

  24. Computing Reserves value jane : Person = Person("Jane", TimePoint(2000,1,1), Female) value r : Money = reserve(TimePoint(2030, 1, 1), alive, WholeLifeInsurance(jane), BasisLifeDeath(jane)) ◮ jane represents a customer: name, birthdate, and sex ◮ reserve calculates a reserve at some time for some state, from a product and a basis 19 / 31

  25. Reserves for Whole Life Insurance V alive (r) V dead (r) 0,8 0,6 0,4 0,2 0 2030 2040 2050 2060 2070 2080 2090 2100 2110 2120 20 / 31

  26. Real-World Payments statemodel Riskless where states = noMatterWhen 21 / 31

  27. Real-World Payments statemodel Riskless where states = noMatterWhen product RDA(start: TimePoint, expiry: TimePoint) : Riskless where obligations = at t pay $1 per year provided (start < t < expiry) 21 / 31

  28. Real-World Payments statemodel Riskless where states = noMatterWhen product RDA(start: TimePoint, expiry: TimePoint) : Riskless where obligations = at t pay $1 per year provided (start < t < expiry) product RDA’(start: TimePoint, expiry: TimePoint) : Riskless where obligations = at t pay payments ((expiry-start)*2, $1, 1/2 years, start, t) 21 / 31

  29. Two-Life Insurance statemodel TwoLife where states = alive_alive | alive_dead | dead_alive | dead_dead transitions = alive_alive -> alive_dead | alive_alive -> dead_alive | alive_dead -> dead_dead | dead_alive -> dead_dead product TwoLifeSum : TwoLife where obligations = pay $1 when (alive_alive -> alive_dead) pay $1 when (alive_alive -> dead_alive) 22 / 31

  30. Expressive Power ◮ AML can represent all standard Danish reference pension products — even those with unknown beneficiaries product SpouseBenefits(p : Person) : LifeDeath(p) where obligations = at t pay $1 when (alive -> dead) provided (married) given (married ~ basis.marriageProb(p, t)) 23 / 31

  31. Expressive Power function marriage(p : Person, t : TimePoint) : Dist(Bool) = boolDist( if p.Gender == Male then 0.8 else 0.55) basis SpouseBasis(p : Person) where riskModel = RiskLifeDeath(p) interestRate = constant(0.02) maxtime = p.BirthDate + 120 marriageProb = marriage 24 / 31

  32. Perspective Other descriptions AML ODEs Other solvers: Calculation Kernel cloud, GPU, etc. 25 / 31

  33. Perspective AML Other ODEs Other models Calculation Other Kernel solvers 25 / 31

  34. Overview Context AML Models Safety Status and Continuing Work

  35. Domain-Specific Languages ◮ "Little languages" that support one area very well and others not at all ◮ Can be safer and faster due to special knowledge ◮ Examples: SQL, R, T EX 26 / 31

  36. AML Properties ◮ Type system — prevent errors before the code is run ◮ Termination — no infinite loops ◮ Functions are mathematical functions 27 / 31

  37. Preventing Mistakes Catch errors such as multiplying a date by a dollar: value hourly : Money = $5 value hours : TimePoint = TimePoint(2014,4,3) value wage = hourly * hours 28 / 31

  38. Preventing Mistakes Catch errors such as multiplying a date by a dollar: value hourly : Money = $5 value hours : TimePoint = TimePoint(2014,4,3) value wage = hourly * hours Catch mismatches between products, state models, and bases: product DisabilityInsurance(p : Person) : LifeDeath(p) where obligations = pay $1 provided (disabled) 28 / 31

  39. Preventing Mistakes Catch errors such as multiplying a date by a dollar: value hourly : Money = $5 value hours : TimePoint = TimePoint(2014,4,3) value wage = hourly * hours Catch mismatches between products, state models, and bases: product DisabilityInsurance(p : Person) : LifeDeath(p) where obligations = pay $1 provided (disabled) Even catch the wrong person: value r : Money = reserve(TimePoint(2030, 1, 1), alive, WholeLifeInsurance(joe), BasisLifeDeath(jane)) 28 / 31

  40. Overview Context AML Models Safety Status and Continuing Work

  41. Status ◮ The Actulus calculation kernel is part of a product available from Edlund ◮ AML has been implemented, but the type checker is not yet ready ◮ Alternate calculation kernels from ITU and Edlund demonstrate the flexibility of the approach 29 / 31

  42. Continuing Work ◮ Continued development and implementation of the AML type system ◮ Express calculations in AML directly: accounting, solvency, prognosis, etc. ◮ Long-term administration of AML-defined contracts ◮ Find ways to make it go faster — see next talk 30 / 31

  43. Come talk with us! We appreciate your feedback! Try out AML programming at Booth 10, or drop by for questions or dicsussion. 31 / 31

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend