diff --git a/R/InsuranceParameters.R b/R/InsuranceParameters.R index 02291f00bc5d93b03665d30fd3052e8d7bb713ed..06e5b13ba52889f9c3a1283aae686ef84d63d190 100644 --- a/R/InsuranceParameters.R +++ b/R/InsuranceParameters.R @@ -443,6 +443,9 @@ InsuranceContract.Values = list( #' immediately for balance-sheet purposes. In particular, the #' balance sheet reserve at time $t=0$ is not 0, but the #' premium paid. In turn, no unearned premiums are applied.} +#' \item{\code{$surrenderIncludesCostsReserves}}{Whether (administration) +#' cost reserves are paid out on surrender (i.e. included in the +#' surrender value before surrender penalties are applied)} #' } #' #' ## Elements of sublist \code{InsuranceContract.ParameterDefault$ProfitParticipation} @@ -563,7 +566,8 @@ InsuranceContract.ParameterDefaults = list( Features = list( # Special cases for the calculations betaGammaInZillmer = FALSE, # Whether beta and gamma-costs should be included in the Zillmer premium calculation 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. + 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) ), ProfitParticipation = list( diff --git a/R/InsuranceTarif.R b/R/InsuranceTarif.R index 11b7c2b86c30f48c2399bd1c7a56dbc521d3958b..3a0b6d48d401d038a7f83c7130a2bb690f92b1c3 100644 --- a/R/InsuranceTarif.R +++ b/R/InsuranceTarif.R @@ -1090,7 +1090,11 @@ InsuranceTarif = R6Class( } # Reduction Reserve: Reserve used for contract modifications: - resReduction = pmax(0, resZ + resGamma + alphaRefund) # V_{x,n}^{Rkf} + resReduction = resZ + alphaRefund; + if (params$Features$surrenderIncludesCostsReserves) { + resReduction = resReduction + resGamma; + } + resReduction = pmax(0,resReduction) # V_{x,n}^{Rkf} # Collect all reserves to one large matrix res = cbind( diff --git a/man/InsuranceContract.ParameterDefaults.Rd b/man/InsuranceContract.ParameterDefaults.Rd index 118bde820c9f02aae8b73536c9659dd8a5ada6f6..f3c00be930e3c8e84b4fdca9e89334219f1144a1 100644 --- a/man/InsuranceContract.ParameterDefaults.Rd +++ b/man/InsuranceContract.ParameterDefaults.Rd @@ -241,6 +241,9 @@ premiums, but the initial single premium is added to the reserve immediately for balance-sheet purposes. In particular, the balance sheet reserve at time $t=0$ is not 0, but the premium paid. In turn, no unearned premiums are applied.} +\item{\code{$surrenderIncludesCostsReserves}}{Whether (administration) +cost reserves are paid out on surrender (i.e. included in the +surrender value before surrender penalties are applied)} } }