Skip to contents

risk_loaded_price() prices one cover from its loss draws; price_portfolio() prices a portfolio and allocates the price to its components. The assets backing the loss are the distortion risk measure assets of it. The premium is either the pricing distortion distortion of the loss, or set by a constant cost of capital r on the capital a - P, which gives P = (E[X] + r a) / (1 + r).

Usage

risk_loaded_price(x, assets, cost_of_capital = NULL, distortion = NULL)

price_portfolio(x, assets, cost_of_capital = NULL, distortion = NULL)

Arguments

x

A sampled or a predictive_distribution (its total) for risk_loaded_price(); a predictive_distribution whose components add up to the portfolio (segments or covers, not gross, ceded and net side by side) for price_portfolio().

assets

A distortion that sets the assets, for example distortion("tvar", 0.99).

cost_of_capital

A positive rate, or NULL.

distortion

A pricing distortion, or NULL; it must load less than assets. Give exactly one of cost_of_capital and distortion.

Value

risk_loaded_price(): a list with expected_loss, premium, assets, margin (P - E[X]), capital (a - P), loss_ratio and return_on_capital. price_portfolio(): a list with total (the portfolio's price, as above), diversification (the sum of standalone premiums less the portfolio premium) and by_component, the keys data frame of x with the allocated expected_loss, premium, assets, margin, capital and return_on_capital, and standalone_premium.

Details

In a portfolio, premium and assets are each allocated by co-measure (the natural allocation of Mildenhall and Major, 2022): component prices add up to the portfolio's, a component that diversifies the portfolio is priced below its standalone price, and with a cost of capital every component earns the rate on its allocated capital.

Examples

risk_loaded_price(sampled(c(0, 0, 2, 6)), distortion("tvar", 0.5),
                  cost_of_capital = 0.25)$premium
#> [1] 2.4
pd <- predictive_distribution(
  matrix(c(0, 1, 4, 8, 2, 1, 0, 0), ncol = 2),
  data.frame(cover = c("a", "b"))
)
p <- price_portfolio(pd, distortion("tvar", 0.5), cost_of_capital = 0.1)
p$by_component
#>   cover expected_loss   premium assets      margin    capital return_on_capital
#> 1     a          3.25 3.5000000      6  0.25000000  2.5000000               0.1
#> 2     b          0.75 0.6818182      0 -0.06818182 -0.6818182               0.1
#>   standalone_premium
#> 1          3.5000000
#> 2          0.8181818
p$diversification
#> [1] 0.1363636