Analytics Toolkit · Section 4.2
Value at Risk (VaR)
Value at Risk: the loss at a stated exceedance probability on the EP curve, as an observed trial loss, with its conventions and code.
Expected loss (EL) cannot distinguish a portfolio with steady losses from one with catastrophic losses. 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 are. VaR at confidence is the loss at exceedance probability on the exceedance probability (EP) curve: the loss reached or exceeded in only of trials. At , that is the 1-in-10 loss.
Unless a figure says otherwise, the numbers on this page follow the assumptions of the Metrics overview: the aggregate exceedance probability (AEP) basis, results at 100%, and the 20-trial demo tier. The overview also fixes what means.
Definition and implementation
Section titled “Definition and implementation”Formal definition
Section titled “Formal definition”For equiprobable trials sorted in descending order, the -th largest loss has exceedance probability . VaR at confidence is the loss at exceedance probability :
where denotes the -th largest loss. The top trials, those at or above VaR, form the tail used for Tail Value at Risk (TVaR).
This site’s convention: VaR is always an observed trial loss, the -th largest, never a value interpolated between two ranks. Interpolating quantile definitions exist and are the default in most statistics libraries; they return a loss no trial produced. The formula leaves one more case open. When , which means above and on 20 trials every quote past 1-in-20, : no trial sits in the tail, the trial set cannot resolve that return period, and the quote does not exist. The code returns NaN rather than substituting the maximum, and the demo-scale report prints the absence in words.
For continuous distributions, VaR is equivalent to the -quantile of the cumulative distribution function: . For discrete trial sets, different quantile conventions can differ by one rank position. This site uses the EP curve convention throughout: the descending-sorted losses already form an EP curve, and VaR is the loss at a single position on it.
Business interpretation
Section titled “Business interpretation”VaR tells you: “This loss is reached or exceeded in only of trials.” Regulators use VaR to set minimum capital requirements: Solvency II requires capital to cover the 1-in-200 year loss ().1
What this means in code
Section titled “What this means in code”from caldera_re.aep import aep
from caldera_re.data import cedents
from caldera_re.utils import ep_index
def var(curve, alpha):
"""Compute VaR at confidence level alpha from an EP curve.
The EP curve is sorted descending by loss (rank 1 = largest).
VaR at alpha is the k-th largest loss, where k = ep_index(N, alpha)
is the number of tail trials. In 0-based indexing: losses[k-1].
VaR is always an observed trial loss -- no interpolation between
ranks. k = 0 (alpha above 1 - 1/N) means no trial sits in the tail:
the trial set cannot resolve that return period and the quote does
not exist. NaN keeps that visible; falling through to losses[-1]
would silently report the *smallest* loss.
"""
N = len(curve)
k = ep_index(N, alpha)
if k < 1:
return float('nan')
return curve.iloc[k - 1]['loss']
if __name__ == '__main__':
curve = aep(cedents.suncoast)
for alpha in [0.80, 0.90, 0.95]:
v = var(curve, alpha)
ep = 1 - alpha
rp = 1 / ep
print(f"VaR({alpha:.0%}) = {v:.1f}M")
print(f" Reached or exceeded in {ep:.0%} of trials "
f"(1-in-{rp:.0f} return period)")
print() VaR reads one rank and ignores the ranks above it; TVaR averages them.
Footnotes
Section titled “Footnotes”-
EIOPA, “Calculation of the Solvency Capital Requirement”, Solvency II Single Rulebook (Directive 2009/138/EC, Article 101). The Solvency Capital Requirement “shall correspond to the Value-at-Risk of the basic own funds of an insurance or reinsurance undertaking subject to a confidence level of 99,5 % over a one-year period.” ↩ ↩2
-
Basel Committee on Banking Supervision, “Fundamental review of the trading book: A revised market risk framework”, consultative document, October 2013: “The proposals involve a shift in the measure of risk from value-at-risk to expected shortfall so as to better capture ‘tail risk’ …” The final standard, “Minimum capital requirements for market risk”, January 2019, carries the shift through: its internal models approach “relies upon the use of expected shortfall models”. Both are banking rules, and insurance regimes are split: the Swiss Solvency Test has measured capital with expected shortfall since 2006, while Solvency II calibrates to VaR and the IAIS adopted its Insurance Capital Standard in December 2024 on a one-year 99.5% VaR. ↩
-
Federal Office of Private Insurance, “Technical document on the Swiss Solvency Test”, 2006, §2.4. The SST’s risk measure is the expected shortfall, which the document treats as synonymous with tail value at risk, and target capital “at a certainty level of 99%” is the average of the 1% largest one-year reductions in risk-bearing capital, plus a market value margin. ↩