The ProductBase Space#

Base projection logic for all products

The ProductBase space serves as the base space for concrete product spaces defined in the Run space.

This space defines main projection logic that is common for all products.

Projection parameters#

fixed_params()

Fixed parameters

proj_len()

Projection length in months

scen_index()

asmp_id()

Assumption ID

date_id()

Date ID

Model point data#

model_point()

Target model points

model_point_index()

Index for model points

model_point_table_ext()

Extended model point table

age(t)

The attained age at time t.

sex()

The sex of the model points

age_at_entry()

The age at entry of the model points

av_pp_init()

Initial account value per policy

commission_rate()

Commission rate

duration(t)

Duration of model points at t in years

duration_mth(t)

Duration of model points at t in months

duration_mth_init()

Initial duration in month

has_gmab()

Whether GMAB is attached

has_gmdb()

Whether GMDB is attached

has_surr_charge()

Whether surrender charge applies

is_wl()

Whether the model point is whole life

maint_fee_rate()

Maintenance fee per account value

policy_term()

The policy term of the model points.

premium_type()

Type of premium payment

sum_assured()

The sum assured of the model points

surr_charge_id()

ID of surrender charge pattern

Assumptions#

base_lapse_rate(t)

Base lapse rate

is_lapse_dynamic()

Whether the lapse assumption is dynamic

dyn_lapse_param()

Dynamic lapse parameters

dyn_lapse_factor(t)

Dynamic lapse factor

lapse_rate_key(t)

Index keys to retrieve lapse rates for time t

lapse_rate(t)

Lapse rate

disc_factors(t)

Discount factors.

disc_rate(t)

Discount rate to be applied at time t

disc_rate_mth(t)

Monthly discount rate

expense_acq()

Acquisition expense per policy

expense_maint()

Annual maintenance expense per policy

inflation_rate()

Inflation rate

inflation_factor(t)

The inflation factor at time t

mort_last_age()

The last age of mortality tables

base_mort_rate(t)

Base mortality rate to be applied at time t

mort_rate(t)

Mortality rates for time t

mort_rate_key(t)

Index keys to retrieve mortality rates for time t

mort_rate_mth(t)

Monthly mortality rate to be applied at time t

mort_table_id()

Mortality table IDs

Policy values#

claim_net_pp(t, kind)

Per policy claim in excess of account value

claim_pp(t, kind)

Claim per policy

coi_pp(t)

Cost of insurance charges per policy

coi_rate(t)

Cost of insurance rate per account value

premium_pp(t)

Premium amount per policy

surr_charge_key(t)

Index keys to retrieve surrender charge rates at time t

surr_charge_rate(t)

Surrender charge rate

Policy decrement#

pols_if(t)

Number of policies in-force

pols_if_at(t, timing)

Number of policies in-force

pols_if_init()

Initial number of policies in-force

pols_lapse(t)

Number of lapse

pols_death(t)

Number of death

pols_maturity(t)

Number of maturing policies

pols_new_biz(t)

Number of new business policies

Account Value#

inv_income(t)

Investment income on account value

inv_income_pp(t)

Investment income on account value per policy

inv_return_mth(t)

Rate of investment return

av_at(t, timing)

Account value in-force

av_change(t)

Change in account value

av_pp_at(t, timing)

Account value per policy

csv_pp(t)

Cash surrender value per policy

coi(t)

Cost of insurance charges

maint_fee(t)

Maintenance fee deducted from account value

maint_fee_pp(t)

Maintenance fee per policy

net_amt_at_risk(t)

Net amount at risk per policy

prem_to_av(t)

Premium portion put in account value

prem_to_av_pp(t)

Per-policy premium portion put in the account value

Cashflows#

claims(t[, kind])

Claims

claims_from_av(t, kind)

Account value taken out to pay claim

claims_over_av(t, kind)

Claim in excess of account value

commissions(t)

Commissions

expenses(t)

Expenses

surr_charge(t)

Surrender charge

net_cf(t)

Net cashflow

Margin Analysis#

margin_expense(t)

Expense margin

margin_guarantee(t)

Mortality margin

Present values#

pv_av_change()

Present value of change in account value

pv_claims([kind])

Present value of claims

pv_claims_from_av([kind])

Present value of claims

pv_claims_over_av([kind])

Present value of claims

pv_commissions()

Present value of commissions

pv_expenses()

Present value of expenses

pv_inv_income()

Present value of investment income

pv_maint_fee()

Present value of maintenance fees

pv_net_cf()

Present value of net cashflows.

pv_pols_if()

Present value of policies in-force

pv_premiums()

Present value of premiums

Results and output#

result_pv()

Result table of present value of cashflows

result_cf()

Result table of cashflows

result_pols()

Result table of policy decrement

result_sample([point_id, scen])

Sample projection result for a specific model point and scenario

excel_sample([point_id, scen])

Output sample cashflows to Excel

Validation#

check_av_roll_fwd()

Check account value roll-forward

check_margin()

Check consistency between net cashflow and margins

check_pv_net_cf()

Check present value summation