ProfitParticipation | R Documentation |
Base Class for Profit Participation Schemes
Base Class for Profit Participation Schemes
Base class for Profit Participation schemes (holding contract-independent values and providing methods to calculate the profit participation values from the given reserves).
The profit participation object is typically not used directly, but rather defined once and then passed on to an InsuranceTarif or InsuranceContract object, where it will be used internally when profit participation is calculated.
This class provides the technical implementation of a profit plan for traditional life insurance contracts with a guaranteed component (calculated before the profit scheme comes into play) and a discretionary profit on top.
This function is called when a new profit participation scheme
is created with a call to ProfitParticipation$new(...)
. Possible
parameters to the new
-Call are all parameters from the ProfitParticipation
sublist of the
InsuranceContract.ParameterStructure parameter
structure (which are understood as template values that can be overridden
per contract or even per profit participation scenario) and the components
of the Functions
field defining the functions to calculate the individual
components of the profit participation (rates, calculation bases, calculation, benefits)
This method createModification
returns a copy of the profit scheme
with all given arguments changed in the schmes's Parameters
parameter list.
As ProfitParticipation is a R6 class with reference logic, simply assigning the object to a new variable does not create a copy, but references the original profit scheme object. To create an actual copy, one needs to call this method, which first clones the whole object and then adjusts all parameters to the values passed to this method.
The InsuranceContract's param structure InsuranceContract.ParameterStructure
contains the field params$ProfitParticipation$advanceProfitParticipation
,
which can either be numeric rate for advance profit participation, or
a function with signature function(params, values, ...)
that
returns the advance profit participation rate when called with the
contract's parameters and the values calculated so far (cash flows and premiums)
The InsuranceContract's param structure InsuranceContract.ParameterStructure
contains the field params$ProfitParticipation$advanceProfitParticipationInclUnitCost
,
which can either be numeric rate for advance profit participation, or
a function with signature function(params, values, ...)
that
returns the advance profit participation rate when called with the
contract's parameters and the values calculated so far (cash flows and premiums)
This function provides an easy way to modify the whole set of profit rates after their initial setup. Possible applications are waiting periods, which can be implemented once for all rates rather than inside each individual calculation period.
name
The human-readable name of the profit plan.
Parameters
Parameter template for profit-participation-specific
parameters, i.e. the ProfitParticipation
element of the
InsuranceContract.ParameterStructure data structure.
All elements defined in the profit scheme can be overriden per contract
in the call to [InsuranceContract]$new
or even in the explicit
call to InsuranceContract$profitScenario()
or InsuranceContract$addProfitScenario()
.
Functions
list of functions defined to calculate the individual components. For each of the profit components
interest profit
risk profit
expense profit
sum profit
terminal bonus
terminal bonus fund
a rate, a profit base and a calculation function can be defined, by assigning one of the pre-defined
ProfitParticipationFunctions or proving your own function with signature
function(rates, params, values, ...)
. Additionally, for each of the
benefit types (survival, death, surrender, premium waiver) a function can
be provided to calculate the benefit stemming from profit participation.
dummy
Dummy to allow commas in the previous method
new()
Create a new profit participation scheme
ProfitParticipation$new(name = NULL, ...)
name
The name of the profit scheme (typicall the name of the profit plan and its version)
...
profit participation parameters to be stored in the
Parameters field or calculation functions to be stored in the
Functions'
field
setParameters()
Store all passed parameters in the Parameters
field
ProfitParticipation$setParameters(...)
...
any of the named fields defined in the ProfitParticipation
sublist of the
InsuranceContract.ParameterStructure. All other arguments will be ignored
setFunctions()
Store all passed functions in the Functions
field
ProfitParticipation$setFunctions(...)
...
any of the functions defined in the Functions
field. All other
arguments will be ignored
setFallbackParameters()
Fill all missing parameters with the default fall-back values
ProfitParticipation$setFallbackParameters()
createModification()
create a copy of a profit scheme with certain parameters changed
ProfitParticipation$createModification(name = NULL, ...)
name
The new name for the cloned ProfitParticipation object
...
Parameters for the InsuranceContract.ParameterStructure, defining the characteristics of the tariff.
getAdvanceProfitParticipation()
Calculate and return the advance profit participation (to be applied on the actuarial gross premium)
ProfitParticipation$getAdvanceProfitParticipation(params, values, ...)
params
Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)
values
Contract values calculated so far (guaranteed component of the insurance contract, including cash flows, premiums, reserves etc.).
...
optional parameters, to be passed to the advanceProfitParticipation field of the parameter structure (if that is a function)
Return either one numerical value (constant for the whole premium payment period) of a vector of numerical values for the whole contract period
getAdvanceProfitParticipationAfterUnitCosts()
Calculate and return the advance profit participation (to be applied after unit costs are added to the gross premium)
ProfitParticipation$getAdvanceProfitParticipationAfterUnitCosts( params, values, ... )
params
Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)
values
Contract values calculated so far (guaranteed component of the insurance contract, including cash flows, premiums, reserves etc.).
...
optional parameters, to be passed to the advanceProfitParticipationInclUnitCost field of the parameter structure (if that is a function)
Return either one numerical value (constant for the whole premium payment period) of a vector of numerical values for the whole contract period
setupRates()
Set up the data.frame containing the profit participation rates
ProfitParticipation$setupRates(params, values, ...)
params
Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)
values
Contract values calculated so far (guaranteed component of the insurance contract, including cash flows, premiums, reserves etc.).
...
additional parameters passed to the profit calculation functions
stored in the Functions
field.
adjustRates()
Adjust the data.frame of profit participation rates after their setup
ProfitParticipation$adjustRates(rates, params, values)
rates
data.frame of profit paticipation rates
params
Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)
values
Contract values calculated so far (guaranteed component of the insurance contract, including cash flows, premiums, reserves etc.).
getProfitParticipation()
Calculation the full time series of profit participation for the given contract values
ProfitParticipation$getProfitParticipation( calculateFrom = 0, profitScenario = NULL, params, values, ... )
calculateFrom
The time from which to start calculating the profit
participation. When a contract is changed at some time t (possibly even
changing the profit scheme), all future profit participation needs to be
re-calculated from that time on, without changing past profit participation.
All values before calculateFrom
will not be calculated.
profitScenario
profit participation values from a previous calculation
(NULL if profit calculation is to be calculated from the contract inception).
Values before calculateFrom
will be used from this data.frame.
params
Contract-specific, full set of parameters of the contract (merged parameters of the defaults, the tariff, the profit participation scheme and the contract)
values
Contract values calculated so far (guaranteed component of the insurance contract, including cash flows, premiums, reserves etc.).
...
additional parameters to be passed to ProfitParticipation$setupRates()
clone()
The objects of this class are cloneable with this method.
ProfitParticipation$clone(deep = FALSE)
deep
Whether to make a deep clone.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.