diff --git a/DESCRIPTION b/DESCRIPTION index 07c56c8e86de013c462452d8810ae7f502175777..44a907e53bd8d3eadd6279d31727ae8e6146d8f8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,14 +1,19 @@ Package: LifeInsuranceContracts Type: Package Version: 0.0.2 -Date: 2020-09-04 -Title: A Framework for General, Traditional Life Insurance Contracts, Including Profit - Participation and Contract Changes +Date: 2020-09-14 +Title: Framework for Traditional Life Insurance Contracts Description: R6 classes to model traditional life insurance - contracts like annuities, whole life insurances or endowments. All relevant - quantities like premium decomposition, reserves and benefits over the whole - contract period are calculated and potentially exported to excel. Mortalities - are given using the MortalityTables package. + contracts like annuities, whole life insurances or endowments. Such life + insurance contracts provide a guaranteed interest and are not directly linked + to the performance of a particular investment vehicle. However, they typically + provide (discretionary) profit participation. This package provides a framework + to model such contracts in a very generic (cash-flow-based) way and includes + modelling profit participation schemes, dynamic increases or more general + contract layers, as well as contract changes (like sum increases or premium + waivers). All relevant quantities like premium decomposition, reserves and + benefits over the whole contract period are calculated and potentially + exported to excel. Mortalities are given using the 'MortalityTables' package. Authors@R: c(person("Reinhold", "Kainhofer", role=c("aut", "cre"), email="reinhold@kainhofer.com")) Author: Reinhold Kainhofer [aut, cre] Maintainer: Reinhold Kainhofer <reinhold@kainhofer.com> diff --git a/R/InsuranceContract.R b/R/InsuranceContract.R index fc3a6cc117204478bf7d70d6bc79dab9dada618c..92e43a00f3a4a8188494fac41ded49c116b3cea9 100644 --- a/R/InsuranceContract.R +++ b/R/InsuranceContract.R @@ -455,6 +455,7 @@ InsuranceContract = R6Class( if (!is.null(params$premiumPeriod)) params$premiumPeriod = max(1, params$premiumPeriod - t) if (!is.null(params$deferralPeriod)) params$deferralPeriod = max(0, params$deferralPeriod - t) if (!is.null(params$contractClosing)) params$contractClosing = params$contractClosing + years(t) + # TODO: Adjust non-constant parameters (e.g. profit rates or benefits given as vector) to the later start time # TODO: Generalize this to also allow specifying dynamic premium rather than sum insured if (!missing(SumInsuredDelta)) {