Source code for solvency2.model.Override.Expense

"""Override module for the expense risk calculation

The formulas in this module add or overrides cells related to expense in
:mod:`projection <solvency2.projection>` module.
"""

from modelx.serialize.jsonvalues import *

_formula = None

_bases = [
    "..BaseProj",
    "..PV"
]

_allow_none = None

_spaces = []

# ---------------------------------------------------------------------------
# Cells

[docs] def SizeExpsAcq(t): """Acquisition expense per policy at time t""" if t == 0: return (SizeAnnPrem(t) * asmp.ExpsAcqAnnPrem() + (SizeSumAssured(t) * asmp.ExpsAcqSA() + asmp.ExpsAcqPol()) * InflFactor(t) / InflFactor(0)) else: return 0
[docs] def SizeExpsMaint(t): """Maintenance expense per policy at time t""" shock = Factor(Risk, Shock, Scope) return (SizeAnnPrem(t) * asmp.ExpsMaintAnnPrem() + (SizeSumAssured(t) * asmp.ExpsMaintSA() + asmp.ExpsMaintPol()) * InflFactor(t)) * (1 + shock)
[docs] def InflFactor(t): """Inflation factor reflecting expense shocks""" if t == 0: return 1 else: if t >= t0: shock = Factor(Risk, Shock, Scope, 'inflation') else: shock = 0 return InflFactor(t-1) * (1 + asmp.InflRate() + shock)