Skip to content
Property-cat reinsurance analytics for software engineers

Analytics Toolkit · Section 4.3

Tail Value at Risk (TVaR)

Tail Value at Risk: the average loss of the worst k trials, how it differs from CTE and expected shortfall on a trial set, and the code.

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

TVaR is also known as Conditional Tail Expectation (CTE) and Expected Shortfall (ES). For continuous loss distributions, the three names describe the same quantity. On a discrete distribution, and every empirical trial set is discrete, the three differ at ties and at the tail boundary. CTE conditions on the loss value (“all trials with loss at or above VaR”), which at a tie includes more than kk trials and can fail the sub-additivity property. ES, as the literature defines it, averages exactly the worst (1−α)(1-\alpha) of probability, which splits the boundary trial fractionally whenever N(1−α)N(1-\alpha) is not a whole number. The rank-based tail average does neither: it averages whole trials, the worst kk of them, and remains sub-additive.1 This site computes the rank-based average (the worst kk trials, defined below), whichever of the three names appears.

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.

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

where k=⌊(1−α)⋅N⌋k = \lfloor (1 - \alpha) \cdot N \rfloor is the number of tail trials and L(r)L_{(r)} is the rr-th largest loss (rank rr in the descending exceedance probability (EP) curve). In words: take the worst kk trials and average their losses. The connection to α\alpha is through kk: a higher confidence level means fewer but more extreme tail trials. TVaR inherits both VaR conventions: it averages observed losses, and at k=0k = 0 it is undefined rather than the maximum.

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

caldera_re/tvar.py Python
from caldera_re.aep import aep
from caldera_re.data import cedents
from caldera_re.report import fields
from caldera_re.utils import ep_index


def tvar(curve, alpha):
    """Compute TVaR at confidence level alpha from an EP curve.

    The EP curve is sorted descending by loss (rank 1 = largest).
    TVaR at alpha is the mean of the worst k trials,
    where k = ep_index(N, alpha).

    Same conventions as VaR: an average of observed losses, and at
    k = 0 the quote does not exist (NaN), rather than the maximum.
    """
    N = len(curve)
    k = ep_index(N, alpha)
    if k < 1:
        return float('nan')
    return curve.iloc[:k]['loss'].mean()


if __name__ == '__main__':
    from caldera_re.var import var

    curve = aep(cedents.suncoast)

    for alpha in [0.80, 0.90, 0.95]:
        v = var(curve, alpha)
        tv = tvar(curve, alpha)
        k = ep_index(len(curve), alpha)
        tail = curve.iloc[:k]
        print(f"At alpha = {alpha:.0%} ({k} tail trials):")
        print(f"  Tail losses: "
              + ", ".join(f"{x:.1f}M" for x in tail['loss']))
        fields([('VaR', v, 'the threshold'),
                ('TVaR', tv, f"mean of worst {k}")], indent=2, sep=' = ')
        print()
Confidence level (α): 90% — 2 tail trials (worst 10%)
VaR(90%) = 489.1M TVaR(90%) = 552.6M TVaR = mean of tail trials

The preference also has a formal basis: VaR of a combined distribution can exceed the sum of the standalone VaRs, and TVaR cannot.

  1. Philippe Artzner, Freddy Delbaen, Jean-Marc Eber, and David Heath, “Coherent Measures of Risk”, Mathematical Finance 9(3), 1999. Introduces the coherence axioms and shows that tail conditional expectation is not sub-additive in general. Carlo Acerbi and Dirk Tasche, “On the Coherence of Expected Shortfall”, Journal of Banking & Finance 26(7), 2002. Pins down exactly where the definitions diverge on discrete distributions and proves the averaging form coherent. ↩