Topics
Value at Risk and Expected Shortfall summarize different parts of a loss distribution. Their usefulness depends on consistent sign conventions, horizon definitions, estimation methods, and validation.
Let $L$ denote portfolio loss, with larger positive values meaning worse outcomes.
Value at Risk
At confidence level $\alpha$, VaR is the $\alpha$-quantile of the loss distribution,
A 99% one-day VaR of EUR 1 million means that, under the model used to construct the loss distribution, losses exceed EUR 1 million on about 1% of days.
It does not mean EUR 1 million is the maximum possible loss.
Expected Shortfall
Expected Shortfall describes losses in the tail beyond VaR.
For a continuous distribution,
A more general quantile-based definition is
This remains well defined when the loss distribution has atoms or ties.
Why ES is different
VaR identifies a threshold. It does not describe how bad losses are after the threshold is crossed.
Two portfolios can have the same 99% VaR and very different tail severity. ES distinguishes them by averaging deeper tail losses.
Expected Shortfall is also coherent under standard conditions, including subadditivity, whereas VaR need not be subadditive for arbitrary loss distributions.
That does not make ES assumption-free.
Estimation methods
Common approaches include:
- historical simulation
- parametric models
- filtered historical simulation
- Monte Carlo simulation
- extreme-value methods for tails
Each produces a different estimated loss distribution.
Historical simulation uses observed historical returns directly but assumes the historical window is relevant to current risk.
Parametric methods can be efficient if the model is credible, but Gaussian assumptions can badly understate skewness and heavy tails.
The old code problem: cumulative wealth is not one-day loss
A common implementation error is to generate daily returns, compound them into a cumulative portfolio path, and then calculate
for every date as if those were independent one-day losses.
They are not. Those values are cumulative path losses at different horizons.
For one-day historical VaR, the loss series should correspond to one-day portfolio P&L or returns.
A correct simple historical example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from __future__ import annotations
from collections.abc import Sequence
import numpy as np
from numpy.typing import NDArray
def var_es(
returns: Sequence[float],
portfolio_value: float,
confidence: float = 0.99,
) -> tuple[float, float]:
"""Estimate historical one-period VaR and ES from return observations."""
if not 0.0 < confidence < 1.0:
raise ValueError("confidence must be between 0 and 1")
if portfolio_value <= 0:
raise ValueError("portfolio_value must be positive")
r: NDArray[np.float64] = np.asarray(returns, dtype=float)
if r.ndim != 1 or r.size < 2:
raise ValueError("returns must be a one-dimensional sample")
# Positive values represent losses.
losses = -portfolio_value * r
var = float(np.quantile(losses, confidence))
tail = losses[losses >= var]
es = float(np.mean(tail))
return var, es
The sign convention is explicit and the horizon of the loss data matches the reported metric.
Horizon scaling
The square-root-of-time rule,
comes from independent, identically distributed increments with finite variance.
Scaling VaR or ES by $\sqrt h$ is therefore not universally valid. Volatility clustering, serial dependence, nonlinear portfolios, jumps, and changing positions can all invalidate it.
A direct multi-day simulation is often preferable.
Backtesting VaR
If a model reports 99% VaR, exceedances should occur roughly 1% of the time under correct unconditional calibration.
But counting exceedances is not enough. Exceedances should also not cluster systematically.
Coverage and independence tests therefore examine different failure modes.
Backtesting ES
ES is harder to backtest because it concerns the magnitude of tail losses, not only threshold exceedances.
Modern regulatory frameworks use joint or related testing procedures because VaR identifies the tail region over which ES is interpreted.
Stress testing is complementary
VaR and ES summarize a modeled distribution. Stress testing asks what happens under specified severe scenarios.
A portfolio can have acceptable model-based VaR and still be vulnerable to liquidity shocks, basis breakdowns, concentration, or structural market changes not represented in the estimated distribution.
Risk management therefore needs both statistical tail measures and scenario analysis.
Regulatory context
The Basel market-risk framework moved from VaR toward Expected Shortfall for internal-model capital because ES better captures the severity of tail losses and has more desirable aggregation properties. That policy change does not imply that ES eliminates model risk.
Conclusion
VaR answers:
Where does the tail begin?
Expected Shortfall answers:
How severe are losses once we are in the tail?
Both depend on the loss model, time horizon, portfolio dynamics, and validation procedure. The most important implementation discipline is to define the loss variable clearly and keep the estimation horizon consistent with the risk measure being reported.
References
- Artzner, P., Delbaen, F., Eber, J.-M., & Heath, D. (1999). Coherent Measures of Risk.
- Basel Committee on Banking Supervision. Fundamental Review of the Trading Book.
- McNeil, A. J., Frey, R., & Embrechts, P. (2015). Quantitative Risk Management.
Embed interactive plots, widgets, and demos using <figure>, <iframe>, or <div class="interactive-embed"> containers. Ensure each embed includes descriptive captions for accessibility.
How to cite
Use the quick export buttons to save citations for reference managers or copy the formatted text directly.
Diogo Ribeiro (2023). Value at Risk and Expected Shortfall: Quantiles and Tail Risk. Faculty of Media Arts and Design, Technical University of Porto. https://diogoribeiro7.github.io/data-science/value_risk_expected_shortfall/.


