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.
str(InsuranceContract.ParameterDefaults)
#> List of 8
#> $ ContractData :List of 23
#> ..$ id : chr "Hauptvertrag"
#> ..$ sumInsured : num 1e+05
#> ..$ YOB : NULL
#> ..$ age : NULL
#> ..$ technicalAge : NULL
#> ..$ ageDifferences : NULL
#> ..$ sex : chr "unisex"
#> ..$ policyPeriod : num 25
#> ..$ premiumPeriod : NULL
#> ..$ deferralPeriod : num 0
#> ..$ guaranteedPeriod : num 0
#> ..$ contractClosing : NULL
#> ..$ blockStart : num 0
#> ..$ premiumPayments : chr "in advance"
#> ..$ benefitPayments : chr "in advance"
#> ..$ premiumFrequency : num 1
#> ..$ benefitFrequency : num 1
#> ..$ widowProportion : num 0
#> ..$ deathBenefitProportion: num 1
#> ..$ premiumRefund : num 0
#> ..$ premiumIncrease : num 1
#> ..$ annuityIncrease : num 1
#> ..$ deathBenefit : num 1
#> $ ContractState :List of 3
#> ..$ premiumWaiver : logi FALSE
#> ..$ surrenderPenalty: logi TRUE
#> ..$ alphaRefunded : logi FALSE
#> $ ActuarialBases :List of 9
#> ..$ mortalityTable : NULL
#> ..$ invalidityTable : NULL
#> ..$ invalidityEndsContract : logi TRUE
#> ..$ 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:6, 1:6, 1:4] 0 0 0 0 0 0 0 0 0 0 ...
#> ..- attr(*, "dimnames")=List of 3
#> .. ..$ type : chr [1:6] "alpha" "Zillmer" "beta" "gamma" ...
#> .. ..$ basis : chr [1:6] "SumInsured" "SumPremiums" "GrossPremium" "NetPremium" ...
#> .. ..$ frequency: chr [1:4] "once" "PremiumPeriod" "PremiumFree" "PolicyPeriod"
#> $ Loadings :List of 13
#> ..$ ongoingAlphaGrossPremium: num 0
#> ..$ tax : num 0.04
#> ..$ unitcosts : num 0
#> ..$ security : num 0
#> ..$ noMedicalExam : num 0
#> ..$ noMedicalExamRelative : num 0
#> ..$ sumRebate : num 0
#> ..$ extraRebate : 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 16
#> ..$ advanceProfitParticipation : num 0
#> ..$ advanceProfitParticipationInclUnitCost: num 0
#> ..$ waitingPeriod : NULL
#> ..$ guaranteedInterest : NULL
#> ..$ interestProfitRate : NULL
#> ..$ totalInterest : NULL
#> ..$ mortalityProfitRate : NULL
#> ..$ expenseProfitRate : NULL
#> ..$ sumProfitRate : NULL
#> ..$ terminalBonusRate : NULL
#> ..$ terminalBonusFundRate : NULL
#> ..$ profitParticipationScheme : NULL
#> ..$ profitComponents : chr [1:5] "interest" "risk" "expense" "sum" ...
#> ..$ profitClass : NULL
#> ..$ profitRates : NULL
#> ..$ scenarios : list()
#> $ Hooks :List of 2
#> ..$ adjustCashFlows : NULL
#> ..$ adjustCashFlowsCosts: NULL