reserving.BornhuetterFerguson

The Bornhuetter–Ferguson method: each origin’s latest value plus the

Usage

reserving.BornhuetterFerguson()

expected loss apriori * exposure times the share still to develop, 1 - 1 / cdf, as chainladder-python’s BornhuetterFerguson.

The exposure is a measure column of the same triangle (premium, say): each origin’s latest observed cumulative value in the segment fitted.

Parameters

apriori: float = 1.0

Expected loss ratio: the expected ultimate per unit of exposure; positive.

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 BornhuetterFerguson, 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 = BornhuetterFerguson(apriori=0.5).fit(tri, "paid", "premium")
>>> [round(u, 2) for u in fit.ultimate]

[150.0, 266.67]

Attributes

Name Description
apriori Expected loss ratio.
average How link ratios are averaged.
sigma_interpolation How unestimable variance parameters are filled in.
tail The tail: a constant factor as a number, otherwise its estimator.

apriori

Expected loss ratio.

apriori: float


average

How link ratios are averaged.

average: str


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

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.

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
ExpectedLossFit
Raises
ValueError
As ExpectedLoss.fit.