Skip to content

Metrics

The EP curve gives us the full loss distribution. But decision-makers don’t stare at curves — they ask specific questions and need specific numbers:

  • How much should we reserve for a typical year? Premium must at least cover expected losses, or the portfolio bleeds money.
  • What is the worst loss we should plan for at a given confidence level? Capital requirements, risk appetite limits, and retrocession purchasing all need a threshold.
  • When things go badly, how bad do they actually get? A threshold tells you where the tail starts — it says nothing about the severity once you’re in it.

Some of the most important metrics that answer these questions are EL, VaR, and TVaR. They are not the only risk metrics — standard deviation, attachment probability, and others play important roles — but they appear in nearly every reinsurance pricing, reserving, and capital decision.

Confidence, exceedance, and return periods

Section titled “Confidence, exceedance, and return periods”

In practice, you will hear risk thresholds described as “the 1-in-200 year loss” or “the 0.5% exceedance VaR.” Formal definitions in the risk management literature use the complementary confidence level α\alpha: the 1-in-200 loss is VaR0.995\text{VaR}_{0.995}. All three framings describe the same point on the EP curve — they just approach it from different directions:

Return periodExceedance probabilityConfidence level α\alphaNotation
10 years10%90%VaR0.90\text{VaR}_{0.90}
100 years1%99%VaR0.99\text{VaR}_{0.99}
200 years0.5%99.5%VaR0.995\text{VaR}_{0.995}

The conversions are:

Return period=11αExceedance probability=1αα=11Return period\text{Return period} = \frac{1}{1 - \alpha} \qquad \text{Exceedance probability} = 1 - \alpha \qquad \alpha = 1 - \frac{1}{\text{Return period}}

We use α\alpha in all formal definitions — it is the universal convention in risk measure literature, and what you will encounter in textbooks and regulatory documents. But we always state the return period or exceedance probability alongside, because that is the language practitioners use.

The expected loss (EL) is the average scenario loss — the single most basic measure of risk. It is the loss that the model suggests you would experience on average across all simulated scenarios.

EL=1Ns=1NLs\text{EL} = \frac{1}{N} \sum_{s=1}^{N} L_s

where NN is the number of scenarios and LsL_s is the total loss in scenario ss.

EL is the burning cost (industry shorthand for the long-run average loss). It is the floor for any reasonable premium: a reinsurer must charge at least EL (plus expenses and profit margin) or it will lose money over time.

helios_re/expected_loss.py

Two portfolios can have the same EL but very different risk profiles. A portfolio with 20 scenarios of $50M each has EL = $50M. A portfolio with 19 scenarios of $0 and one scenario of $1,000M also has EL = $50M. The second is far more dangerous — the entire risk is concentrated in a single catastrophic scenario, and if that scenario occurs, the loss is 20× the mean. The average tells you nothing about how concentrated the risk is — you need tail metrics to distinguish them.

EL = 44.6M

EL cannot distinguish a steady portfolio from a catastrophic one. Value at Risk (VaR) addresses this by putting a number on the tail — the extreme right end of the loss distribution, where the rare but severe outcomes live. VaR at confidence α\alpha is the loss at exceedance probability (1α)(1-\alpha) on the EP curve — the loss reached or exceeded in only (1α)(1-\alpha) of scenarios. At α=0.90\alpha = 0.90, that is the 1-in-10 loss.

For NN equiprobable scenarios sorted in descending order, the rr-th largest loss has exceedance probability r/Nr/N. VaR at confidence α\alpha is the loss at exceedance probability (1α)(1-\alpha):

VaRα=L(k)where k=(1α)N\text{VaR}_\alpha = L_{(k)} \quad \text{where } k = \lfloor (1-\alpha) \cdot N \rfloor

where L(r)L_{(r)} denotes the rr-th largest loss. The top kk scenarios — those at or above VaR — form the tail used for TVaR.

VaR tells you: “This loss is reached or exceeded in only (1α)(1-\alpha) of scenarios.” Regulators use VaR to set minimum capital requirements — Solvency II requires capital to cover the 1-in-200 year loss (VaR0.995\text{VaR}_{0.995}).

helios_re/var.py
Confidence level (α): 90% — 2 tail scenarios (worst 10%)
VaR(90%) = 97.0M Tail scenarios (above VaR)

VaR tells you where the tail starts. Tail Value at Risk (TVaR) tells you how bad it gets once you’re in it. At confidence level α\alpha, TVaR is the average loss across the worst (1α)(1-\alpha) of scenarios — the expected severity of the tail.

TVaR is also known as Conditional Tail Expectation (CTE) and Expected Shortfall (ES) — three names for the same quantity.

TVaRα=1kr=1kL(r)\text{TVaR}_\alpha = \frac{1}{k} \sum_{r=1}^{k} L_{(r)}

where k=N(1α)k = \lfloor N \cdot (1 - \alpha) \rfloor is the number of tail scenarios and L(r)L_{(r)} is the rr-th largest loss (rank rr in the descending EP curve). In words: take the worst kk scenarios and average their losses. The connection to α\alpha is through kk: a higher confidence level means fewer but more extreme tail scenarios.

TVaR is the expected loss conditional on being in the tail. It answers the CUO’s question: “If we have a bad year — one of the worst (1α)(1-\alpha) — how bad is it on average?”

helios_re/tvar.py
Confidence level (α): 90% — 2 tail scenarios (worst 10%)
VaR(90%) = 97.0M TVaR(90%) = 104.5M TVaR = mean of tail scenarios

A coherent risk measure must satisfy:

ρ(X+Y)ρ(X)+ρ(Y)\rho(X + Y) \leq \rho(X) + \rho(Y)

This says that the risk of a combined portfolio should not exceed the sum of individual risks — diversification should help, not hurt. TVaR always satisfies this property. VaR does not.

Here is a concrete example. Consider two portfolios, each with 10 equiprobable scenarios:

ScenarioL1L_1L2L_2L1+L2L_1 + L_2
101010
2011
3000
4000
5000
6000
7000
8000
9101
10909

At α=0.80\alpha = 0.80, k=0.2×10=2k = \lfloor 0.2 \times 10 \rfloor = 2 tail scenarios. Sort each portfolio descending — VaR is the kk-th largest:

L1 descending: [9,1,0,0,0,0,0,0,0,0]VaR0.80(L1)=1L_1 \text{ descending: } [9, \mathbf{1}, 0, 0, 0, 0, 0, 0, 0, 0] \quad\Rightarrow\quad \text{VaR}_{0.80}(L_1) = 1 L2 descending: [10,1,0,0,0,0,0,0,0,0]VaR0.80(L2)=1L_2 \text{ descending: } [10, \mathbf{1}, 0, 0, 0, 0, 0, 0, 0, 0] \quad\Rightarrow\quad \text{VaR}_{0.80}(L_2) = 1 VaR0.80(L1)+VaR0.80(L2)=1+1=2\text{VaR}_{0.80}(L_1) + \text{VaR}_{0.80}(L_2) = 1 + 1 = 2

Now the combined portfolio, sorted descending:

L1+L2 descending: [10,9,1,1,0,0,0,0,0,0]VaR0.80(L1+L2)=9L_1 + L_2 \text{ descending: } [10, \mathbf{9}, 1, 1, 0, 0, 0, 0, 0, 0] \quad\Rightarrow\quad \text{VaR}_{0.80}(L_1 + L_2) = 9

Combining the portfolios made VaR worse: 9>29 > 2. Diversification increased measured risk — a pathological result.

TVaR does not have this problem. With k=2k = 2 tail scenarios:

TVaR0.80(L1)=9+12=5TVaR0.80(L2)=10+12=5.5\text{TVaR}_{0.80}(L_1) = \frac{9 + 1}{2} = 5 \qquad \text{TVaR}_{0.80}(L_2) = \frac{10 + 1}{2} = 5.5 TVaR0.80(L1+L2)=10+92=9.510.5=TVaR0.80(L1)+TVaR0.80(L2)\text{TVaR}_{0.80}(L_1 + L_2) = \frac{10 + 9}{2} = 9.5 \leq 10.5 = \text{TVaR}_{0.80}(L_1) + \text{TVaR}_{0.80}(L_2) \quad\checkmark
PropertyVaRTVaR
What it measuresThreshold of the tailMean severity of the tail
Tail sensitivityNone — ignores everything beyond the thresholdCaptures average severity, but not the full shape of the tail (just as EL cannot capture the full distribution)
Sub-additivityNot guaranteed — diversification can increase VaRAlways satisfied

EL, VaR, and TVaR are the core trio, but reinsurance analytics uses several other metrics for risk profiling, contract pricing, and portfolio construction.

The probability that a loss exceeds the attachment point of a contract:

Pattach=1Ns=1N1[Ls>A]P_{\text{attach}} = \frac{1}{N} \sum_{s=1}^{N} \mathbf{1}[L_s > A]

This tells a reinsurer how often a contract will be triggered. A layer with 30% attachment probability means the reinsurer expects to pay a claim roughly 3 years out of 10. Attachment probability is a key input to pricing — it determines the frequency component of the expected loss for a layer.

The probability that a loss reaches or exceeds the attachment point plus the limit (the contract is fully exhausted):

Pexhaust=1Ns=1N1[LsA+]P_{\text{exhaust}} = \frac{1}{N} \sum_{s=1}^{N} \mathbf{1}[L_s \geq A + \ell]

The ratio of exhaustion probability to attachment probability reveals how “binary” a layer is. If a layer almost always exhausts when it attaches, the cedent is buying an all-or-nothing contract — the reinsurer pays the full limit or nothing. This shapes how much capital the reinsurer must hold against the layer.

A measure of volatility around the mean:

σ=1Ns=1N(LsEL)2\sigma = \sqrt{\frac{1}{N} \sum_{s=1}^{N} (L_s - \text{EL})^2}

We use the population formula (1/N1/N, not 1/(N1)1/(N-1)) because the NN scenarios represent the entire simulated probability space, not a sample drawn from it.

Standard deviation captures how dispersed losses are around EL. It appears in simpler pricing models (e.g., the standard deviation loading principle adds a multiple of σ\sigma to EL to compute premium). It is less informative about tail behavior than TVaR — two distributions with the same σ\sigma can have very different tails.

Standard TVaR captures the average severity of the entire tail beyond a single threshold. Window TVaR refines this by measuring the average loss within a bounded interval of the loss distribution — typically between two return periods or confidence levels.

Given two confidence levels αlo<αhi\alpha_{\text{lo}} < \alpha_{\text{hi}}, let klo=(1αlo)Nk_{\text{lo}} = \lfloor (1-\alpha_{\text{lo}}) \cdot N \rfloor and khi=(1αhi)Nk_{\text{hi}} = \lfloor (1-\alpha_{\text{hi}}) \cdot N \rfloor. The klok_{\text{lo}} worst scenarios form the broader tail; the khik_{\text{hi}} worst form the narrower, more extreme tail. Window TVaR is the mean of the scenarios between these two boundaries:

Window TVaR(αlo,αhi)=1klokhir=khi+1kloL(r)\text{Window TVaR}(\alpha_{\text{lo}}, \alpha_{\text{hi}}) = \frac{1}{k_{\text{lo}} - k_{\text{hi}}} \sum_{r=k_{\text{hi}}+1}^{k_{\text{lo}}} L_{(r)}

For example, Window TVaR(80%, 90%) averages the losses between the 1-in-5 and 1-in-10 return periods — the scenarios in the broader tail that are not in the extreme tail.

Window TVaR is especially useful for:

  • Pricing excess-of-loss layers — a layer sits between an attachment and exhaustion point, which corresponds to a specific band of the return period spectrum. Window TVaR characterizes the expected loss contribution from that band.
  • Differentiating frequency-driven from severity-driven risk — a low-layer window TVaR is influenced by attritional losses, while a high-layer window TVaR captures catastrophic severity.
  • Capital allocation — attributing risk capital to specific portions of the portfolio loss distribution rather than treating the entire tail as one block.
helios_re/window_tvar.py

When contracts combine into a portfolio, new questions arise: How much does a single contract contribute to overall tail risk? How should capital be allocated across contracts? Metrics like Marginal TVaR and contribution-to-TVaR answer these questions. The portfolio aggregation section develops these in detail.

helios_re/metrics_summary.py
Confidence level (α): 90% — 2 tail scenarios (worst 10%)
EL = 44.6M VaR(90%) = 97.0M TVaR(90%) = 104.5M

We now have the tools to measure risk. The next section shows how contracts transform these distributions — turning a subject loss distribution into a ceded loss distribution.