Skip to content
Snippets Groups Projects
Commit 95142a49 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Add Features$absPremiumRefund to allow an addition death benefit

When a single-premium contract is used to emulate a paid-up contract with premium refund, the past premiums paid need to be given externally and is not related to the premium calculated for the contractis relative to the (new) sum insured.
parent f42afa9b
No related branches found
No related tags found
No related merge requests found
......@@ -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(
......
......@@ -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
......
......@@ -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.}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment