reserving.TailCurve

A curve fitted to the estimated factors and extrapolated, as

Usage

reserving.TailCurve()

chainladder-python’s TailCurve.

Factors above 1.00001 in the fit period are regressed by least squares: ln(f - 1) on the 1-based development index k (exponential) or on ln(k) (inverse power). The fitted curve replaces the factors from the attachment age on and runs extrap_periods periods past the oldest age.

Parameters

curve: (exponential, inverse_power) = "exponential"
fit_period: tuple of (int or None, int or None) = (None, None)

Ages in months whose factors enter the fit: from the last age at or before the first (inclusive) to the last age at or before the second (exclusive), as chainladder-python reads them; None is open-ended.

extrap_periods: int = 100

Number of periods past the oldest age the curve is extrapolated.

attachment_age: int
Age in months the curve attaches at (the first age at or after it); the oldest age by default.

Examples

>>> from prospicio.reserving import ChainLadder, TailCurve, Triangle
>>> tri = Triangle.from_long(
...     [2020] * 4 + [2021] * 3 + [2022] * 2 + [2023],
...     [12, 24, 36, 48, 12, 24, 36, 12, 24, 12],
...     [100.0, 150.0, 165.0, 170.0, 110.0, 170.0, 180.0, 120.0, 175.0, 130.0],
... )
>>> fit = ChainLadder(tail=TailCurve()).fit(tri, "values")
>>> 1.0 < fit.tail < 1.05

True

Attributes

Name Description
attachment_age Age in months the curve attaches at; None is the oldest age.
curve The curve fitted to f - 1.
extrap_periods Number of periods past the oldest age the curve is extrapolated.
fit_period Ages whose factors enter the fit, from (inclusive) and to

attachment_age

Age in months the curve attaches at; None is the oldest age.

attachment_age: int | None


curve

The curve fitted to f - 1.

curve: str


extrap_periods

Number of periods past the oldest age the curve is extrapolated.

extrap_periods: int


fit_period

Ages whose factors enter the fit, from (inclusive) and to

fit_period: tuple[int | None, int | None]

(exclusive).