## reserving.BornhuetterFerguson


The Bornhuetter-Ferguson method: each origin's latest value plus the


Usage


``` python
reserving.BornhuetterFerguson()
```


expected loss `apriori * exposure` times the share still to develop, `1 - 1 / cdf`, as chainladder-python's [BornhuetterFerguson](reserving.BornhuetterFerguson.md#prospicio.reserving.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](reserving.ChainLadder.md#prospicio.reserving.ChainLadder).

`sigma_interpolation: (log - linear, mack) = ``"log-linear"`  

`tail: (float, TailConstant, TailCurve, TailBondy or TailLogLinear)`  
As [ChainLadder](reserving.ChainLadder.md#prospicio.reserving.ChainLadder); no tail by default.


## Examples

``` python
>>> 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](#apriori) | Expected loss ratio. |
| [average](#average) | How link ratios are averaged. |
| [sigma_interpolation](#sigma_interpolation) | How unestimable variance parameters are filled in. |
| [tail](#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()](#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


``` python
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](reserving.ExpectedLoss.md#prospicio.reserving.ExpectedLoss.fit).
