kernels.CDRResult

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

Usage

Source

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 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() Decode a CDR written by to_arrow(), refusing any other kind.
summary() One row per origin plus a total row: reserve, one-year standard
to_arrow() Arrow IPC bytes. The two totals ride as shape-() float arrays rather

from_arrow()

Decode a CDR written by to_arrow(), refusing any other kind.

Usage

Source

from_arrow(data)

summary()

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

Usage

Source

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(), which refuses any development grain other than twelve months, so there the column heading and the span agree. A 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

Source

to_arrow(*, compression=None)

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