## reserving.ChainLadder


The chain-ladder method: each origin's latest value projected to


Usage


``` python
reserving.ChainLadder()
```


ultimate with age-to-age factors estimated from the triangle and a tail.


## Parameters


`average: (volume, simple, regression) = ``"volume"`  
How link ratios are averaged into one factor per age: volume weighted, their mean, or least squares through the origin (Mack's [alpha](models.ElasticNet.md#prospicio.models.ElasticNet.alpha) of 1, 0 and 2).

`sigma_interpolation: (log - linear, mack) = ``"log-linear"`  
How a variance parameter with a single link ratio is filled in.

`tail: (float, TailConstant, TailCurve, TailBondy or TailLogLinear)`  
Development past the oldest age: a number is a constant factor from the oldest age to ultimate. No tail (a factor of 1) by default.


## Examples

``` python
>>> from prospicio.reserving import ChainLadder, Triangle
>>> tri = Triangle.from_long([2020, 2020, 2021], [12, 24, 12], {"paid": [100.0, 150.0, 200.0]})
>>> fit = ChainLadder().fit(tri, "paid")
>>> fit.ldf, fit.ultimate, fit.total_reserve
```

(\[1.5\], \[150.0, 300.0\], 100.0)


## Attributes

| Name | Description |
|----|----|
| [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. |

------------------------------------------------------------------------


#### 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 measure column in every segment of a triangle, each on its |

------------------------------------------------------------------------


#### fit()


Fits one measure column in every segment of a triangle, each on its


Usage


``` python
fit(triangle, column)
```


own.


##### Parameters


`triangle: Triangle`  
Cumulative or incremental, with any number of segments.

`column: str`  


##### Returns


`ChainLadderFit`  


##### Raises


`ValueError`  
If the column is unknown, a factor cannot be estimated or the tail cannot be fitted (a constant that is not positive, a curve with fewer than two factors above 1 to fit); with keys, the message names the segment.
