diff --git a/R/InsuranceParameters.R b/R/InsuranceParameters.R index a339e25808410b994a828d0e73c7059de06b8ac9..9caff53ad100a15c1e195efca9ecd95f7f74eb56 100644 --- a/R/InsuranceParameters.R +++ b/R/InsuranceParameters.R @@ -467,6 +467,8 @@ InsuranceContract.Values = list( #' surrender value before surrender penalties are applied)} #' \item{\code{$unitcostsInGross}}{Whether unit costs are included in the #' gross premium calculation or added after gross premiums. (default: FALSE)} +#' \item{\code{$absPremiumRefund}}{Constant death benefit (typically premium +#' refund of a previous contract), relative to the sum insured.} #' } #' #' ## Elements of sublist \code{InsuranceContract.ParameterDefault$ProfitParticipation} @@ -591,7 +593,8 @@ InsuranceContract.ParameterDefaults = list( alphaRefundLinear = TRUE, # Whether the refund of alpha-costs on surrender is linear in t or follows the NPV of an annuity useUnearnedPremiums = isRegularPremiumContract, # Whether unearned premiums should be calculated in the balance sheet reserves. Otherwise, a premium paid at the beginning of the period is added to the reserve for balance-sheet purposes. surrenderIncludesCostsReserves = TRUE, # Whether (administration) cost reserves are paid out on surrender (i.e. included in the surrender value before surrender penalties are applied) - unitcostsInGross = FALSE + unitcostsInGross = FALSE, + absPremiumRefund = 0 # Constant death benefit (irrespective of the type of contract), typically a premium refund for a previous contract ), ProfitParticipation = list( diff --git a/R/InsuranceTarif.R b/R/InsuranceTarif.R index 222634d79651f0c7d3d20ca35bcc5d8a54e36570..52734ebbdf0c4441e8dc7579d86f07bcaf6957d7 100644 --- a/R/InsuranceTarif.R +++ b/R/InsuranceTarif.R @@ -591,6 +591,9 @@ InsuranceTarif = R6Class( # Death Benefits cf$death_SumInsured = pad0(values$cashFlowsBasic$death, cflen); + if ((!is.null(params$Features$absPremiumRefund)) && (params$Features$absPremiumRefund > 0)) { + cf$death_SumInsured = cf$death_SumInsured + pad0(padLast(params$Features$absPremiumRefund, cflen - 1), cflen); + } cf$disease_SumInsured = pad0(values$cashFlowsBasic$disease, cflen); cf$death_PremiumFree = cf$death_SumInsured; # premium refund diff --git a/man/InsuranceContract.ParameterDefaults.Rd b/man/InsuranceContract.ParameterDefaults.Rd index 925f9700e2fae8d99e42f094b414bfa8e7fe769f..3026da892a3daf36f48e3adc3de060306ec39f16 100644 --- a/man/InsuranceContract.ParameterDefaults.Rd +++ b/man/InsuranceContract.ParameterDefaults.Rd @@ -243,6 +243,8 @@ cost reserves are paid out on surrender (i.e. included in the surrender value before surrender penalties are applied)} \item{\code{$unitcostsInGross}}{Whether unit costs are included in the gross premium calculation or added after gross premiums. (default: FALSE)} +\item{\code{$absPremiumRefund}}{Constant death benefit (typically premium +refund of a previous contract), relative to the sum insured.} } }