## reserving.TailCurve


A curve fitted to the estimated factors and extrapolated, as


Usage


``` python
reserving.TailCurve()
```


chainladder-python's [TailCurve](reserving.TailCurve.md#prospicio.reserving.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](reserving.TailCurve.md#prospicio.reserving.TailCurve.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

``` python
>>> 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](#attachment_age) | Age in months the curve attaches at; `None` is the oldest age. |
| [curve](#curve) | The curve fitted to `f - 1`. |
| [extrap_periods](#extrap_periods) | Number of periods past the oldest age the curve is extrapolated. |
| [fit_period](#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).
