Description Usage Format Details Value Methods References Examples
Class for VA with Guaranteed Minimum Income Benefit (GMIB).
A GMIB rider provides a lifetime annuity from a specified future time.
Types of GMIB supported are a whole-life annuity (Ia),
an annuity-certain (Ib) or annuity-certain followed by a deferred
whole-life annuity (Ic).
It supports a simple state-dependent fee structure with a single barrier.
See References for a description of variable annuities life
insurance products, their guarantees and fee structures.
1 |
R6Class
object.
The annuity payment is assumed to be annual and it's calculated as
the annuitization rate by the roll-up or ratchet payoff at the end
of the accumulation period t
.
Object of R6Class
new
Constructor method with arguments:
payoff
payoff
object of the GMAB guarantee
t0
timeDate
object with
the issue date of the contract
t
timeDate
object with the end date of the
accumulation period
t1
timeDate
object with the end date of the
life benefit payment
age
numeric
positive scalar with the age
of the policyholder
fee
constant_parameters
object with
the fee
barrier
numeric
positive scalar with the
state-dependent fee barrier
penalty
penalty_class
object with the
penalty
eta
numeric
scalar with the market
annuitisation rate
type
string
with the income benefit type:
it can be 'Ia' for a whole-life annuity, 'Ib' for an
annuity-certain with maturity t1, 'Ic' for an annuity certain
with maturity t1 followed with a deferred life-annuity if
the insured is alive after t1.
get_times
get method for the product time-line.
Returns a timeDate
object
get_age
get method for the age of the insured
set_age
set method for the age of the insured
get_barrier
get method for the state-dependent fee barrier. Returns a positive scalar with the barrier
set_barrier
set method for the state-dependent fee barrier. Argument must be a positive scalar.
set_penalty_object
the argument penalty
is a
penalty_class
object which is stored in a private field.
get_penalty_object
gets the penalty_class
object.
set_penalty
set method for the penalty applied in case of surrender. The argument must be a scalar between 0 and 1.
get_penalty
get method for the surrender penalties. It can be a scalar between 0 and 1 in case the penalty is constant or a numeric vector in case the penalty varies with time.
set_fee
set method for the contract fee. The argument is
a constant_parameters
object with the fee.
set_payoff
set method for the payoff_guarantee
object.
survival_benefit_times
returns a numeric
vector with
the survival benefit time indexes.
surrender_times
returns a numeric
vector with the
surrender time indexes. Takes as argument a string with the frequency
of the decision if surrendering the contract, e.g. "3m"
corresponds to a surrender decision taken every 3 months.
times_in_yrs
returns the product time-line in fraction of year
cash_flows
returns a numeric
vector with the
cash flows of the product. It takes as argument spot_values
a
numeric
vector which holds the values of the underlying
fund, death_time
a time index with the time of death and
discounts
a numeric
vector with the discount factors
at time of death. These latest are used to calculate the death
benefit for type Ib and Ic.
survival_benefit
Returns a numeric scalar corresponding to
the survival benefit.
The arguments are spot_values
vector which holds the values of
the underlying fund and time
the time index of the survival benefit.
The function will return 0 if there's no survival benefit at the
specified time
get_premium
Returns the premium as non negative scalar
[BMOP2011] Bacinello A.R., Millossovich P., Olivieri A., Pitacco E., "Variable annuities: a unifying valuation approach." In: Insurance: Mathematics and Economics 49 (2011), pp. 285-297.
[BHM2014] Bernard C., Hardy M. and Mackay A. "State-dependent fees for variable annuity guarantees." In: Astin Bulletin 44 (2014), pp. 559-585.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #Sets up the payoff as a roll-up of premiums with roll-up rate 1%
rate <- constant_parameters$new(0.01)
premium <- 100
rollup <- payoff_rollup$new(premium, rate)
t0 <- timeDate::timeDate("2016-01-01")
#Five year accumulation period
t <- timeDate::timeDate("2020-12-31")
#Five year annuity certain period
t1 <- timeDate::timeDate("2025-12-31")
age <- 60
# A constant fee of 2% per year (365 days)
fee <- constant_parameters$new(0.02)
#Barrier for a state-dependent fee. The fee will be applied only if
#the value of the account is below the barrier
barrier <- 200
#Withdrawal penalty applied in case the insured surrenders the contract
#It is a constant penalty in this case
penalty <- penalty_class$new(type = 1, 0.01)
#Sets up a VA contract with GMIB guarantee, whole-life (Ia).
contract <- GMIB$new(rollup, t0 = t0, t = t, age = age, fee = fee,
barrier = barrier, penalty = penalty, eta = 0.04)
#Sets up a VA contract with GMIB gurantee annuity-certain with
#maturity t1
contract <- GMIB$new(rollup, t0 = t0, t = t, t1 = t1, age = age,
fee = fee, barrier = barrier, penalty = penalty, eta = 0.04, type = "Ib")
|
Loading required package: orthopolynom
Loading required package: polynom
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.