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.2.tar.gz (64.9 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.2-py3-none-any.whl (45.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for extremeloss-0.7.2.tar.gz
Algorithm Hash digest
SHA256 b5c0d0d25df0e7f9e029ea8c69ff627913645697060929e0fe900f4ad5040424
MD5 e4456fdfb7f3f66d6b1af56937982f2e
BLAKE2b-256 e28a44e845492253c58ea718b3fbe3d5e8bfd5d7ba74d38a335be4d4552d3c04

See more details on using hashes here.

Provenance

The following attestation bundles were made for extremeloss-0.7.2.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.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for extremeloss-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 131ac6eed767fe41e442468067d48724b45292ea8063b079e8d6f4787cbcea22
MD5 606b6ccc35ce4cab1802e0d231bb4435
BLAKE2b-256 daa965435c6d452a0ddfdb54bc493391210f7b0afc5da2505bc689cfaf7fe0d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for extremeloss-0.7.2-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