The InnerProj Space (TradLife_A_EX1)#
Inner projection that re-runs the cashflows under a single life stress.
This Space is the engine behind the Solvency II life-risk results in
Projection. Each ItemSpace
InnerProj[t0, risk, shock] re-runs the per-policy projection from the
valuation time t0 under one prescribed life stress, so that the
stressed present value of net cashflows can be compared with the
unstressed (baseline) one by
risk_life_sub().
It inherits all cashflow and present-value Cells from
TradLife_A.BaseProj and
TradLife_A.PV, and overrides only the Cells needed to
anchor the projection at t0 and to apply the stress. The unstressed
mortality, lapse and renewal-commission rates are taken from the outer
projection and scaled by the shock; the acquisition and maintenance
expenses are recomputed locally so they pick up the stressed
inflation_factor().
Parameters and References#
- t0#
Valuation time the inner projection is anchored at; at
t0the in-force equals that of the outer projection.- Type:
int
- risk#
A
LifeRiskIDcode selecting the life sub-risk to stress. Defaults toBASE(0), the unstressed run.- Type:
int, optional
- shock#
A
LapseShockIDcode selecting the lapse shock (UP,DOWNorMASS) whenriskisLAPSE. Defaults to 0.- Type:
int, optional
Cells Summary#
Overridden Cells#
The following Cells override their
TradLife_A.BaseProj counterparts to anchor the
projection at t0 and to apply the life shocks.
|
Number of policies: End of period. |
|
Number of policies: Beginning of period 1. |
Number of policies that instantly surrender under the mass-lapse shock. |
|
|
Surrender benefits. |
Surrender benefit per policy for the instantaneous mass-lapse surrenders. |
|
|
Mortality rate at age |
|
Surrender Rate |
Acquisition expense per policy with the expense shock applied. |
|
Maintenance expense per policy with the expense shock applied. |
|
Renewal commission per policy with the expense shock applied. |
|
Expense inflation factor with the expense-inflation shock applied. |
Cells Descriptions#
- pols_if(t)[source]#
Number of policies: End of period.
The inner projection is anchored at the valuation time
t0(where this returns the outer projection’s in-force) and is defined only fort >= t0. Present values are taken att0(e.g.TradLife_A.PV.pv_net_cfatt0), so thet < t0region is never reached in normal use; evaluating any in-force cell there would recurse without terminating.
- pols_if_beg1(t)[source]#
Number of policies: Beginning of period 1.
Overrides the base cell to remove the instantaneous mass-lapse surrenders (
pols_lapse_mass()) from the in-force at the start of the period, so the mass lapsers drop out instantly under the Solvency II mass-lapse shock. Identical to the base cell for every other risk / shock, wherepols_lapse_mass()is zero.
- pols_lapse_mass(t)[source]#
Number of policies that instantly surrender under the mass-lapse shock.
Solvency II models mass lapse as an instantaneous discontinuance at the valuation time
t0rather than an elevated surrender rate spread over the year. Att == t0a segment-dependent fraction (theLAPSE/MASSfactor from theLifeShocksinput, selected bysegment()) of the policies in force at the beginning of the period instantly surrenders. The amount is removed frompols_if_beg1()so those policies neither pay premiums nor are exposed to mortality or ongoing lapse during the period, and is added to the surrender benefit inclaims_surr(). It is zero for every other risk / shock and fort != t0.Mirrors
Override.LapseMass.PolsSurrMassin thesolvency2library.
- claims_surr(t)[source]#
Surrender benefits.
Overrides the base cell so the surrender benefit is paid on both the ongoing surrenders (
pols_lapse()) and the instantaneous mass-lapse surrenders (pols_lapse_mass()). The ongoing surrenders receive the mid-period average cash value (TradLife_A.BaseProj.claims_surr_pp), while the mass-lapse surrenders receive the cash value at timet(claims_surr_mass_pp()).
- claims_surr_mass_pp(t)[source]#
Surrender benefit per policy for the instantaneous mass-lapse surrenders.
The ongoing surrenders are assumed to occur throughout the period, so
TradLife_A.BaseProj.claims_surr_pppays the mid-period average of the cash value attandt+1. The mass-lapse surrenders, by contrast, occur instantaneously at the valuation time, so the benefit is the cash value at timetonly (TradLife_A.BaseProj.cash_value_rateatt).
- mort_rate(x)[source]#
Mortality rate at age
xwith the mortality / longevity shock applied.The unstressed rate is taken from the outer projection (
TradLife_A.BaseProj.mort_rate). Under theMORTrisk it is increased and under theLONGVrisk it is decreased, by the factor read from theLifeShocksinput vialife_shock_param(). For any other risk the unstressed rate is returned unchanged.
- lapse_rate(t)[source]#
Surrender Rate
The unstressed rate is taken from the outer projection (
TradLife_A.BaseProj.lapse_rate); the lapse-up / lapse-down shocks scale it (capped by theLIMITfactor), while the mass-lapse shock leaves the ongoing rate unchanged (it is modelled bypols_lapse_mass()instead).
- expense_acq_pp(t)[source]#
Acquisition expense per policy with the expense shock applied.
Recomputes the acquisition expense locally (mirroring
TradLife_A.BaseProj.expense_acq_pp) so it uses this Space’s stressedinflation_factor(), then under theEXPSrisk increases it by the factor read from theLifeShocksinput vialife_shock_param(). For any other risk the unstressed amount is returned.
- expense_maint_pp(t)[source]#
Maintenance expense per policy with the expense shock applied.
Recomputes the maintenance expense locally (mirroring
TradLife_A.BaseProj.expense_maint_pp) so it uses this Space’s stressedinflation_factor(), then under theEXPSrisk increases it by the factor read from theLifeShocksinput vialife_shock_param(). For any other risk the unstressed amount is returned.
- commissions_ren_pp(t)[source]#
Renewal commission per policy with the expense shock applied.
The unstressed renewal commission is taken from the outer projection (
TradLife_A.BaseProj.commissions_ren_pp); under theEXPSrisk it is increased by the factor read from theLifeShocksinput vialife_shock_param(). For any other risk the unstressed amount is returned unchanged.
- inflation_factor(t)[source]#
Expense inflation factor with the expense-inflation shock applied.
Overrides
TradLife_A.BaseProj.inflation_factorto compound at a stressed inflation rate under theEXPSrisk: the base rate plus theINFLfactor read from theLifeShocksinput vialife_shock_param()(a +1 percentage-point stress). The locally recomputed expenses (expense_maint_pp(),expense_acq_pp()) therefore inflate faster. For any other risk it equals the unstressed factor.