reserving.CapeCod

The Cape Cod (Stanard–Bühlmann) method: Bornhuetter–Ferguson with each

Usage

reserving.CapeCod()

origin’s apriori estimated from the triangle, as chainladder-python’s CapeCod.

Origin j’s used-up exposure is exposure[j] / cdf[j] and its latest value is trended to the triangle’s valuation by (1 + trend) ** (months / 12), the months running from the end of the origin period. Origin i’s trended apriori is the sum of the trended latest values weighted by decay ** abs(i - j) over the same weighted sum of used-up exposures; dividing by its own trend factor gives the apriori of its Bornhuetter–Ferguson ultimate.

Parameters

trend: float = 0.0

Annual trend of the loss ratio; above -1.

decay: float = 1.0

Weight of an origin n periods away, decay ** n; from 0 to 1. With 1 every origin shares one loss ratio.

average: (volume, simple, regression) = "volume"

How link ratios are averaged, as in ChainLadder.

sigma_interpolation: (log - linear, mack) = "log-linear"
tail: (float, TailConstant, TailCurve, TailBondy or TailLogLinear)
As ChainLadder; no tail by default.

Examples

>>> from prospicio.reserving import CapeCod, Triangle
>>> tri = Triangle.from_long(
...     [2020, 2020, 2021], [12, 24, 12],
...     {"paid": [100.0, 150.0, 200.0], "premium": [250.0, 250.0, 400.0]},
... )
>>> fit = CapeCod().fit(tri, "paid", "premium")
>>> [round(a, 4) for a in fit.apriori], [round(u, 2) for u in fit.ultimate]

([0.6774, 0.6774], [150.0, 290.32])

Attributes

Name Description
average How link ratios are averaged.
decay Weight of an origin one period away.
sigma_interpolation How unestimable variance parameters are filled in.
tail The tail: a constant factor as a number, otherwise its estimator.
trend Annual trend of the loss ratio.

average

How link ratios are averaged.

average: str


decay

Weight of an origin one period away.

decay: float


sigma_interpolation

How unestimable variance parameters are filled in.

sigma_interpolation: str


tail

The tail: a constant factor as a number, otherwise its estimator.

tail: Any


trend

Annual trend of the loss ratio.

trend: float

Methods

Name Description
fit() Fits one loss column in every segment of a triangle, each with its

fit()

Fits one loss column in every segment of a triangle, each with its

Usage

fit(triangle, column, exposure)

own exposure and apriori. Trend runs to the triangle’s valuation.

Parameters
triangle: Triangle
column: str

The losses to project.

exposure: str
The exposure column; each origin’s latest observed cumulative value is its exposure (an incremental triangle’s is cumulated).
Returns
CapeCodFit
Raises
ValueError
As ChainLadder.fit, if trend or decay is out of range, or if an origin has no observed, finite, positive exposure.