Using the LifeInsuranceContracts Package

Reinhold Kainhofer

Open Tools
reinhold@kainhofer.com

2016-09-06

The LifeInsuranceContracts package provides a full-featured framework to model classical life insurance contracts (non-unit linked). Mathematically, a general life insurance contracts can be defined using death and survival (and disability) benefit vectors to define the cash flows and calculate all premiums and reserves recursively. This powerful approach is taken by the LifeInsuranceContracts package to provide the most flexible contract modelling framework in R.

Contract/Tariff parameter structure an default values

str(InsuranceContract.ParameterDefaults)
#> List of 7
#>  $ ContractData       :List of 15
#>   ..$ sumInsured            : num 1e+05
#>   ..$ YOB                   : num 1975
#>   ..$ age                   : num 40
#>   ..$ policyPeriod          : num 25
#>   ..$ premiumPeriod         : num 25
#>   ..$ deferralPeriod        : num 0
#>   ..$ guaranteedPeriod      : num 0
#>   ..$ contractClosing       : Date[1:1], format: "2016-09-06"
#>   ..$ premiumPayments       : chr "in advance"
#>   ..$ benefitPayments       : chr "in advance"
#>   ..$ premiumFrequency      : num 1
#>   ..$ benefitFrequency      : num 1
#>   ..$ widowProportion       : num 0
#>   ..$ deathBenefitProportion: num 1
#>   ..$ premiumRefund         : num 0
#>  $ ContractState      :List of 3
#>   ..$ premiumWaiver   : logi FALSE
#>   ..$ surrenderPenalty: logi TRUE
#>   ..$ alphaRefunded   : logi FALSE
#>  $ ActuarialBases     :List of 8
#>   ..$ mortalityTable           : NULL
#>   ..$ invalidityTable          : NULL
#>   ..$ i                        : num 0
#>   ..$ balanceSheetDate         : Date[1:1], format: "1900-12-31"
#>   ..$ balanceSheetMethod       : chr "30/360"
#>   ..$ surrenderValueCalculation: NULL
#>   ..$ premiumFrequencyOrder    : num 0
#>   ..$ benefitFrequencyOrder    : num 0
#>  $ Costs              : num [1:5, 1:3, 1:4] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..- attr(*, "dimnames")=List of 3
#>   .. ..$ : chr [1:5] "alpha" "Zillmer" "beta" "gamma" ...
#>   .. ..$ : chr [1:3] "SumInsured" "SumPremiums" "GrossPremium"
#>   .. ..$ : chr [1:4] "once" "PremiumPeriod" "PremiumFree" "PolicyPeriod"
#>  $ Loadings           :List of 12
#>   ..$ ongoingAlphaGrossPremium: num 0
#>   ..$ tax                     : num 0.04
#>   ..$ unitcosts               : num 0
#>   ..$ security                : num 0
#>   ..$ noMedicalExam           : num 0
#>   ..$ noMedicalExamRelative   : num 0
#>   ..$ sumRebate               : num 0
#>   ..$ premiumRebate           : num 0
#>   ..$ partnerRebate           : num 0
#>   ..$ extraChargeGrossPremium : num 0
#>   ..$ benefitFrequencyLoading :List of 4
#>   .. ..$ 1 : num 0
#>   .. ..$ 2 : num 0
#>   .. ..$ 4 : num 0
#>   .. ..$ 12: num 0
#>   ..$ premiumFrequencyLoading :List of 4
#>   .. ..$ 1 : num 0
#>   .. ..$ 2 : num 0
#>   .. ..$ 4 : num 0
#>   .. ..$ 12: num 0
#>  $ Features           :List of 2
#>   ..$ betaGammaInZillmer: logi FALSE
#>   ..$ alphaRefundLinear : logi TRUE
#>  $ ProfitParticipation:List of 10
#>   ..$ advanceProfitParticipation            : num 0
#>   ..$ advanceProfitParticipationInclUnitCost: num 0
#>   ..$ guaranteedInterest                    : num 0
#>   ..$ interestBonusRate                     : num 0
#>   ..$ totalInterest                         : num 0
#>   ..$ mortalityBonusRate                    : num 0
#>   ..$ costBonusRate                         : num 0
#>   ..$ terminalBonusRate                     : num 0
#>   ..$ terminalBonusQuote                    : num 0
#>   ..$ profitParticipationScheme             : NULL

#pandoc.listRK(InsuranceContract.ParameterDefaults)