The Projection Space (TradLife_A_EX1)#

Per-policy projection, present values and Solvency II life-risk results.

This Space is TradLife_A.Projection with the Solvency II life-risk outputs added and a new inner projection child Space. The parameters (idx, scen_id), the inherited cashflow Cells (from TradLife_A.BaseProj) and present-value Cells (from TradLife_A.PV) are unchanged; see TradLife_A.Projection.

New child Space

InnerProj re-runs the cashflows under a single prescribed life stress, anchored at a valuation time t0.

Cells Summary#

New Cells#

risk_life_sub() is the capital requirement for a single life sub-risk – the loss in TradLife_A.PV.pv_net_cf under the stress, floored at zero. risk_life() aggregates the sub-risks with the correlation matrix from life_corr(). risk_margin() is the Solvency II risk margin: the cost-of-capital rate coc_rate() applied to the projected risk_life(), discounted to t.

risk_life_sub(t, risk)

Life underwriting capital requirement for sub-risk risk at time t.

risk_life(t)

Aggregated life underwriting capital requirement at valuation time t.

risk_margin(t)

Solvency II risk margin at valuation time t.

Cells Descriptions#

risk_life_sub(t, risk)[source]#

Life underwriting capital requirement for sub-risk risk at time t.

The capital requirement for a single life sub-risk is the loss in the value of in-force business caused by applying the prescribed Solvency II life stress: the baseline present value of net cashflows less the stressed present value, floored at zero.

\[\mathrm{risk\_life\_sub}(t, risk) = \max\left(\mathrm{pv\_net\_cf}_{base}(t) - \mathrm{pv\_net\_cf}_{risk}(t),\; 0\right)\]

Both present values are taken at the valuation time t from the inner projection InnerProj, which is anchored at t. InnerProj[t] is the unstressed (baseline) run, while InnerProj[t, risk] applies the life shock selected by risk. For the lapse risk the requirement is the worst loss across the three prescribed lapse shocks (up, down and mass).

The individual sub-risk requirements are aggregated into the total life underwriting requirement by risk_life().

This mirrors SCR_life.Life (and, for the lapse shocks, SCR_life.LapseRisk) in the solvency2 library, with TradLife_A.PV.pv_net_cf standing in for the net asset value.

Parameters:
  • t – Valuation time at which the inner projection is anchored.

  • risk – A LifeRiskID value selecting the life sub-risk (e.g. MORT, LONGV, LAPSE, EXPS).

risk_life(t)[source]#

Aggregated life underwriting capital requirement at valuation time t.

The individual life sub-risk requirements risk_life_sub() are combined with the prescribed life-risk correlation matrix:

\[\mathrm{risk\_life}(t) = \sqrt{\sum_{i,j} Corr_{i,j}\, \mathrm{risk\_life\_sub}(t, i)\,\mathrm{risk\_life\_sub}(t, j)}\]

where i and j range over the life sub-risks and \(Corr_{i,j}\) is the correlation coefficient between them, supplied per pair by life_corr().

This mirrors SCR_life.SCR_life in the solvency2 library, parameterized by the valuation time t. The aggregation is kept on native scalar types (a tuple of integer risk codes, with risk_life_sub() and life_corr() returning float) so the Space stays efficient when compiled with Cython.

Parameters:

t – Valuation time at which the inner projections are anchored.

risk_margin(t)[source]#

Solvency II risk margin at valuation time t.

The risk margin is the cost of holding the future life underwriting capital over the run-off of the in-force business: the cost-of-capital rate coc_rate() applied to each future aggregated life SCR risk_life(), discounted to t.

\[\mathrm{risk\_margin}(t) = \mathrm{CoC} \sum_{s=t}^{\mathrm{proj\_len}} \frac{\mathrm{risk\_life}(s)} {\prod_{u=t}^{s}\left(1 + \mathrm{disc\_rate}(u)\right)}\]

The cost of capital for the capital held over year [s, s+1] is taken to be incurred at s + 1, so each risk_life(s) is discounted by s - t + 1 periods (the standard EIOPA convention). This is evaluated by the recursion

\[\mathrm{risk\_margin}(t) = \frac{\mathrm{CoC}\cdot\mathrm{risk\_life}(t) + \mathrm{risk\_margin}(t + 1)} {1 + \mathrm{disc\_rate}(t)}\]

which terminates at 0 once t is beyond TradLife_A.BaseProj.proj_len. At t = 0 it is the risk margin at the valuation date.

Parameters:

t – Valuation time at which the risk margin is evaluated.