The BaseProj Space#
Core annual cashflow projection logic for a single traditional life policy.
This Space defines the period-by-period Cells that project policy
decrement, benefits, premiums, commissions, expenses, investment
income, reserves and the resulting net cashflow and profit for one
model point. It is the base Space inherited by
Projection, which parameterizes these
Cells by policy and scenario.
Parameters and References#
The following references are defined in this Space and inherited by
Projection. The integer idx from the
enclosing Projection ItemSpace is used to
index into the per-policy NumPy arrays returned by pol and
asmp.
- pol#
Alias for
PolicyAttrs.
- asmp#
Alias for
Assumptions.
Cells Summary#
Projection Parameters#
Parameters that define the scope of the projection for the selected policy, such as its length and the attained age.
Assumptions#
Cells that retrieve or derive the actuarial and economic assumptions applied to the selected policy: mortality, lapse, premium and reserve rates, surrender charge, inflation and discounting.
|
Base mortality rate at age |
|
Mortality factor |
|
Surrender Rate |
Gross Premium Rate per Sum Assured per payment |
|
Annualized Premium Rate per Sum Assured |
|
|
Net level premium rate per Sum Assured. |
|
Net level premium reserve rate per Sum Assured. |
Cash Value Rate per Sum Assured |
|
|
Surrender Charge Rate per Sum Assured |
Inflation factor at time |
|
|
Discount rate at time |
Policy Decrement#
The number of in-force policies and the movements (new business,
death, surrender, maturity and rider exposures) that change it over
the projection. Cells whose names start with pols_ deal with
numbers of policies.
|
Number of policies: New business |
|
Number of policies: Renewal policies |
|
Number of policies: Beginning of period |
|
Number of policies: Beginning of period 1 |
|
Number of policies: End of period |
Number of policies: After maturity |
|
|
Number of policies: Death |
|
Number of policies: Surrender |
Number of policies: Maturity |
|
|
Number of policies: Annuity |
|
Number of policies: Living benefits |
Number of policies: Accidental death |
|
Number of policies: Accidental Hospitalization |
|
Number of policies: Sickness Hospitalization |
|
|
Number of policies: Surgery |
|
Number of policies: Other benefits |
Policy Values#
The sum assured for the selected policy and the insurance in force at the beginning and the end of the period.
|
Sum assured per policy at time |
Insurance in-force: Beginning of period 1 |
|
|
Insurance in-force: End of period |
Claims#
Aggregate benefit cashflows by cause, each shown together with its
per-policy amount. Cells whose names start with claims_ represent
benefit cashflows for the period from t to t+1, and those
ending with _pp are the corresponding benefit per policy.
|
Total benefits |
|
Death benefits |
Death benefit per policy |
|
|
Maturity benefits |
Maturity benefit per policy |
|
|
Surrender benefits |
Surrender benefit per policy |
|
|
Annuity benefits |
Annuity benefit per policy |
|
Accidental death benefits |
|
Accidental death benefit per policy |
|
Accidental hospitalization benefits |
|
Accidental hospitalization benefit per policy |
|
Sickness hospitalization benefits |
|
Sickness hospitalization benefit per policy |
|
|
Surgery benefits |
Surgery benefit per policy |
|
Living benefits |
|
Living benefit per policy |
|
|
Other benefits |
Other benefit per policy |
Investment Income#
Investment income earned on accumulated funds, with the corresponding per-policy amount.
Warning
Investment income depends on reserve balances that are not yet fully implemented (see the warning in the Reserves subsection); the values produced are provisional and subject to change.
|
Investment income |
Investment Income per policy from t to t+1 |
Commissions and Expenses#
Acquisition, maintenance and other expense cashflows together with
initial and renewal commissions, each with its per-policy amount.
Cells whose names start with exps_ represent expense cashflows.
|
Total expenses |
|
Acquisition expenses |
Commissions and acquisition expenses |
|
Acquisition expense per policy at time t |
|
|
Maintenance expenses |
Total maintenance expenses including other expenses |
|
Maintenance expense per policy at time t |
|
|
Other expenses |
Other expenses per policy at time t |
|
|
Commissions Total |
Initial commissions |
|
Initial commission per policy at time t |
|
Renewal commissions |
|
Renewal commission per policy at time t |
Reserves#
End-of-period reserve balances, their per-policy and after-maturity components, and the change in reserve over the period.
Warning
Reserve calculations are not yet fully implemented. The hospitalization reserve and the unearned premium reserve currently return placeholder zeros and are to be implemented.
Premium reserve: End of period |
|
Premium reserve per policy: End of period |
|
Premium reserve per policy: After maturity |
|
Unearned Premium: End of period |
|
Unearned reserve per policy: End of period |
|
Unearned premium: After maturity |
|
Hospitalization reserve: End of period |
|
Total reserve: End of period |
|
Total reserve per policy: After maturity |
|
|
Change in reserve |
Net Cashflows#
The net liability cashflow and the accumulated cashflows with interest.
|
Net liability cashflow |
|
Accumulated cashflows |
|
Interest on accumulated cashflows |
Profits#
Profit before tax for the period.
Warning
Profit before tax depends on the change in reserves, which is not yet fully implemented (see the warning in the Reserves subsection); the values produced are provisional and subject to change.
Profit before Tax |
Cells Descriptions#
- proj_len()[source]#
Projection length in years for the selected policy.
The projection ends at whichever comes first: the age at which base mortality reaches 1 (returned by
last_mort_age()), or the end of the policy term.
- last_mort_age()[source]#
Age at which the base mortality rate reaches 1 for this policy.
Refers to
last_mort_age()for the selected policy.
- net_prem_rate(basis)[source]#
Net level premium rate per Sum Assured.
The level annual net premium per unit Sum Assured that, at policy issue, balances the present value of the obligations against the present value of an annuity-due over the policy term. Let
\(x\) =
issue_age(),\(n\) =
policy_term(),\(m\) =
prem_term(),\(\gamma_{2}\) =
load_maint_sa2(), the maintenance-expense loading per unit Sum Assured charged after the premium-paying period.
The premium is
\[\require{enclose} P \;=\; \frac{\overline{A}^{1}_{x:\enclose{actuarial}{n}} + \gamma_{2}\,{}_{m|}\ddot{a}_{x:\enclose{actuarial}{n-m}}} {\ddot{a}_{x:\enclose{actuarial}{n}}}.\]The numerator is the present value at issue of the modelled obligations:
\(\overline{A}^{1}_{x:\enclose{actuarial}{n}}\) — present value of the death benefit (1 per unit Sum Assured) over the policy term \(n\).
\(\gamma_{2}\,{}_{m|}\ddot{a}_{x:\enclose{actuarial}{n-m}}\) — present value of the post-premium maintenance expenses: an annuity-due of \(\gamma_{2}\) for \(n-m\) years, deferred to policy time \(m\).
The denominator \(\ddot{a}_{x:\enclose{actuarial}{n}}\) is the present value of an annuity-due of 1 per year over the full policy term \(n\) — note that premiums are annuitised here over \(n\), not over the premium-paying term \(m\).
The same formula is used for the
TERM,WLandENDWproducts inProductID; any other value raisesValueError('invalid product'). Commutation functions are taken fromCommTable, indexed by the policy’s sex together with the interest-rate and mortality-table ids selected bybasis. Seereserve_nlp_rate()for the prospective reserve built from this premium.- Parameters:
basis – A
RateBasisIDvalue selecting the interest-rate and mortality-table id used to look up the commutation table.
- reserve_nlp_rate(basis, t)[source]#
Net level premium reserve rate per Sum Assured.
The prospective net-level-premium reserve at duration
t, expressed per unit Sum Assured. Let\(x\) =
issue_age(),\(n\) =
policy_term(),\(m\) =
prem_term(),\(\gamma_{2}\) =
load_maint_sa2(), the maintenance-expense loading per unit Sum Assured charged after the premium-paying period,\(P\) =
net_prem_rate()evaluated on the samebasis.
The reserve at duration
tis then\[\begin{split}\require{enclose} {}_{t}V = \begin{cases} \overline{A}^{1}_{x+t:\enclose{actuarial}{n-t}} + \gamma_{2}\,{}_{m-t|}\ddot{a}_{x+t:\enclose{actuarial}{n-m}} - P\,\ddot{a}_{x+t:\enclose{actuarial}{m-t}}, & 0 \le t \le m, \\[4pt] \overline{A}^{1}_{x+t:\enclose{actuarial}{n-t}} + \gamma_{2}\,{}_{m-t|}\ddot{a}_{x+t:\enclose{actuarial}{n-m}}, & t > m. \end{cases}\end{split}\]The three terms have the usual prospective interpretation:
\(\overline{A}^{1}_{x+t:\enclose{actuarial}{n-t}}\) — present value of the death benefit (1 per unit Sum Assured) payable over the remaining policy term \(n-t\).
\(\gamma_{2}\,{}_{m-t|}\ddot{a}_{x+t:\enclose{actuarial}{n-m}}\) — present value of the post-premium maintenance expenses: an annuity-due of \(\gamma_{2}\) for \(n-m\) years, deferred to policy time \(m\). Once \(t>m\) the deferral \(m-t\) is negative; under the commutation-column expression \((N_{x+m}-N_{x+n})/D_{x+t}\) it still picks out the payments at ages \(x+m,\dots,x+n-1\).
\(P\,\ddot{a}_{x+t:\enclose{actuarial}{m-t}}\) — present value of the remaining net premiums over the residual premium term \(m-t\). This term vanishes for \(t>m\).
The premium \(P\) itself satisfies the equivalence relation \({}_{0}V=0\) (see
net_prem_rate()). Commutation functions are taken fromCommTable, indexed by the policy’s sex together with the interest-rate and mortality-table ids selected bybasis.- Parameters:
basis – A
RateBasisIDvalue selecting the interest-rate and mortality-table id used to look up the commutation table.t – Elapsed duration in years from policy issue.
- inflation_factor(t)[source]#
Inflation factor at time
tused to adjust expense cashflows.Compounded from
inflation_rate()starting frominflation_factor(0) = 1.
- disc_rate(t)[source]#
Discount rate at time
t.Refers to
Economic[scen_id].disc_rate.
Premium income
Premium income per policy from t to t+1