Description Usage Format Value Methods References Examples

Class for a VA with Guaranteed Minimum Accumulation Benefit (GMAB)
and Guaranteed Minimum Accumulation Benefit (GMDB).
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.

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`death_payoff`

`payoff`

object with the payoff of the GMDB guarantee

`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 of the GMAB rider`set_death_payoff`

set method for the

`payoff_guarantee`

object of the GMDB rider`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 and`death_time`

a time index with the time of death`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`t`

the time index of the survival benefit.`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 | ```
#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)
#Five years time-line
begin <- timeDate::timeDate("2016-01-01")
end <- timeDate::timeDate("2020-12-31")
#Age of the insured
age <- 60
# A constant fee of 2% per year (365 days)
fee <- constant_parameters$new(0.02, 365)
#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 the GMAB + GMDB with the same payoff for survival and death
#benefits
contract <- GMAB_GMDB$new(rollup, t0 = begin, t = end, age = age, fee =fee,
barrier = barrier, penalty = penalty, death_payoff = rollup)
``` |

```
Loading required package: orthopolynom
Loading required package: polynom
```

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.