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

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.