Skip to main content

extremeloss

Extreme value analysis for insurance losses: POT/GPD, GEV, and tail risk with uncertainty.

CI PyPI Python

Overview

extremeloss estimates the part of the distribution the data barely shows you: peaks-over-threshold fitting of the generalized Pareto distribution, block-maxima fitting of the GEV with uncertainty quantification, threshold selection diagnostics, tail-index estimators, return periods and levels, and body–tail splicing that plugs a fitted tail onto any lossmodels severity.

Fits report parameter uncertainty rather than point estimates alone, and the tail measures (VaR, TVaR, tail probabilities, return levels) quote unconditional, ground-up results.

Installation

pip install extremeloss

Diagnostic plots require the plotting extra:

pip install "extremeloss[plot]"

Requires Python 3.10 or newer.

Quick start

import numpy as np
from extremeloss import fit_pot

losses = np.random.default_rng(0).pareto(2.5, 50_000) * 1000  # heavy-tailed sample

fit = fit_pot(losses, threshold=np.quantile(losses, 0.95))    # -> GPD fit
print("shape xi      :", fit.xi)
print("scale beta    :", fit.beta)
print("99.5% VaR     :", fit.var(0.995))
print("99.5% TVaR    :", fit.tvar(0.995))
print("P(loss > 50k) :", fit.tail_probability(50_000))
print(fit.summary())

What's inside

  • Peaks over threshold — GPD fitting with parameter uncertainty and functional forms when parameters are already known.
  • Block maxima — GEV fitting, diagnostics, and uncertainty quantification.
  • Threshold selection — mean-excess and stability diagnostics.
  • Tail indices — Hill-type and related estimators.
  • Tail measures — VaR, TVaR, tail probabilities, return periods and levels, importance sampling for rare events.
  • Integration — body–tail splicing onto lossmodels severities; optional plotting via the plot extra.

The full API reference and end-to-end worked examples live at openactuarial.org/extremeloss.html.

The OpenActuarial ecosystem

extremeloss is one of seven packages that share conventions — tidy tables, explicit distribution parameterizations, reproducible random-number handling — and compose across package seams:

Package Role
actuarialpy Calculation primitives the workflow packages build on
experiencestudies Experience reporting, actual-vs-expected, claimant and concentration analysis
projectionmodels Claim, premium, and expense projection over a renewal horizon
ratingmodels Manual and experience rating, credibility, indication, GLM relativities
lossmodels Severity and frequency fitting, aggregate loss distributions
extremeloss Extreme-value tails: POT/GPD, GEV, return levels, splicing
risksim Portfolio Monte Carlo, dependence, reinsurance contracts, risk measures

Install everything at once with pip install openactuarial.

Development

git clone https://github.com/OpenActuarial/extremeloss
cd extremeloss
python -m pip install -e ".[dev]"
pytest
ruff check src tests

CI runs the same gate on Python 3.10–3.14 across Linux and Windows.

Versioning and stability

All ecosystem packages are pre-1.0: minor releases may change APIs, and every release is documented in CHANGELOG.md. Current per-package API stability is tracked at openactuarial.org/stability.html.

License

MIT — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

extremeloss-0.7.0.tar.gz (63.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

extremeloss-0.7.0-py3-none-any.whl (44.7 kB view details)

Uploaded Python 3

File details

Details for the file extremeloss-0.7.0.tar.gz.

File metadata

  • Download URL: extremeloss-0.7.0.tar.gz
  • Upload date:
  • Size: 63.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for extremeloss-0.7.0.tar.gz
Algorithm Hash digest
SHA256 c81fcf042c52a85d69fbaa944ca3c0a991657523dd05ed5f6b6734724b6ce870
MD5 6dc20790a33952f0ff8cf48de3a7105f
BLAKE2b-256 41244211439ecf58e47749796582a0f322591321b6f35bab4e889765bf20a53c

See more details on using hashes here.

Provenance

The following attestation bundles were made for extremeloss-0.7.0.tar.gz:

Publisher: release.yml on OpenActuarial/extremeloss

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file extremeloss-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: extremeloss-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 44.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for extremeloss-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0479ad37dbd38ad8dd600592499f21486c35288ac918b6d992d1b36e31e159da
MD5 7a1c458d9d15d12cc77aaf581d5ff629
BLAKE2b-256 ca57c6a1b252c82fcdfa8248e6efc2d43d784ca68e22102b01fd5aab7ed70c4b

See more details on using hashes here.

Provenance

The following attestation bundles were made for extremeloss-0.7.0-py3-none-any.whl:

Publisher: release.yml on OpenActuarial/extremeloss

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page