pricing.TabulatedCurve

A tabulated exposure curve: points (x, G(x)) from (0, 0) to

Usage

pricing.TabulatedCurve()

(1, 1), interpolated linearly, as published curves are given (Salzmann’s homeowners scale, Ludwig’s curves, ISO PSOLD tables, a reinsurer’s own).

The table must be concave (its slopes never increase). Its destruction rate is discrete: the points’ x with probabilities from the drops in slope, and a total loss with probability last slope over first. Its mean rate is the first chord’s, x1 / G(x1), so a table needs fine first points for the expected loss to be right.

Parameters

x: list of float

Increasing from 0 to 1.

g: list of float
G(x), from 0 to 1.

Raises

ValueError
If the points do not run from (0, 0) to (1, 1), or are not increasing and concave.

Examples

>>> from prospicio.pricing import TabulatedCurve
>>> t = TabulatedCurve([0.0, 0.1, 0.5, 1.0], [0.0, 0.4, 0.8, 1.0])
>>> round(t.curve([0.3])[0], 12), t.mean_rate()

(0.6, 0.25)

Attributes

Name Description
g The table’s G(x).
x The table’s x.

g

The table’s G(x).

g: list[float]


x

The table’s x.

x: list[float]

Methods

Name Description
curve() The exposure curve G(x) at each x (clamped to [0, 1]).
layer_share() Share of a risk’s expected loss in the layer limit xs
mean_rate() Mean destruction rate, x1 / G(x1).
rate_quantile() Destruction rate at each probability u in (0, 1).

curve()

The exposure curve G(x) at each x (clamped to [0, 1]).

Usage

curve(x)
Parameters
x: list of float
Returns
list of float

layer_share()

Share of a risk’s expected loss in the layer limit xs

Usage

layer_share(limit, attachment, mpl)

attachment, for a risk with maximum possible loss mpl.

Parameters
limit: float
attachment: float
mpl: float
Returns
float

mean_rate()

Mean destruction rate, x1 / G(x1).

Usage

mean_rate()
Returns
float

rate_quantile()

Destruction rate at each probability u in (0, 1).

Usage

rate_quantile(u)
Parameters
u: list of float
Returns
list of float