## kernels.CDRResult


One-year CDR uncertainty for one cohort, per accident year and in total.


Usage

``` python
kernels.CDRResult(
    origin_periods,
    ibnr,
    msep,
    msep_total,
    runoff_msep,
    runoff_msep_total,
    method,
    units=None
)
```


All `msep` fields are MEAN SQUARED ERRORS (variances about a zero CDR); take a square root for the standard error the summary table reports. The run-off figures come from the same [MackFit](kernels.MackFit.md#ibnr.kernels.MackFit) and are carried alongside because the interesting number is usually the ratio of the two.


## Parameter Attributes


`origin_periods: list`  

`ibnr: np.ndarray`  

`msep: np.ndarray`  

`msep_total: float`  

`runoff_msep: np.ndarray`  

`runoff_msep_total: float`  

`method: str`  

`units: str | None = None`  


## Methods

| Name | Description |
|----|----|
| [from_arrow()](#from_arrow) | Decode a CDR written by [to_arrow()](kernels.to_arrow.md#ibnr.kernels.to_arrow), refusing any other kind. |
| [summary()](#summary) | One row per origin plus a `total` row: reserve, one-year standard |
| [to_arrow()](#to_arrow) | Arrow IPC bytes. The two totals ride as shape-() float arrays rather |

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


#### from_arrow()


Decode a CDR written by [to_arrow()](kernels.to_arrow.md#ibnr.kernels.to_arrow), refusing any other kind.


Usage

``` python
from_arrow(data)
```


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


#### summary()


One row per origin plus a `total` row: reserve, one-year standard


Usage

``` python
summary()
```


error, run-off standard error, and the share of run-off risk that emerges in the first year (`one_year_share` = cdr_se / runoff_se).

`cdr_se` is a one-year figure when this result came from [one_year_cdr()](kernels.one_year_cdr.md#ibnr.kernels.one_year_cdr), which refuses any development grain other than twelve months, so there the column heading and the span agree. A [CDRResult](kernels.CDRResult.md#ibnr.kernels.CDRResult) decoded from Arrow bytes carries no grain and is not checked, so a payload written by an older version can hold a figure for a shorter span.


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


#### to_arrow()


Arrow IPC bytes. The two totals ride as shape-() float arrays rather


Usage

``` python
to_arrow(*, compression=None)
```


than header scalars, because a degenerate cohort's msep is legitimately NaN and strict JSON cannot represent it.
