oasislmf.pytools.fm.policy_extras

TODO: should I check values are valid in the financial structure percentage not between 0 and 1 (ex: deductible, limit …) TODO: validate max and min ded implementation TODO: It seems that if a policy with share is used, subsequent policy using min or max deductible will be wrong so it make no sense to compute deductible, over_limit, under_limit

Functions

min2(a, b)

deductible_over_max(i, loss_out, loss_in, deductible, ...)

Deductible is over maximum deductible, we reduce the loss, therefore increase the loss up to under_limit

deductible_under_min(i, loss_out, loss_in, ...)

Deductible is under the minimum, we raise the deductible from over_limit first then loss if over_limit is not enough

calcrule_1(policy, loss_out, loss_in, deductible, ...)

Deductible and limit

calcrule_2(policy, loss_out, loss_in, deductible, ...)

Deductible, attachment, limit and share

calcrule_3(policy, loss_out, loss_in, deductible, ...)

Franchise deductible and limit

calcrule_5(policy, loss_out, loss_in, deductible, ...)

Deductible and limit as a proportion of loss

calcrule_7(policy, loss_out, loss_in, deductible, ...)

deductible, minimum and maximum deductible, with limit

calcrule_8(policy, loss_out, loss_in, deductible, ...)

Deductible and minimum deductible, with limit

calcrule_10(policy, loss_out, loss_in, deductible, ...)

Deductible and maximum deductible

calcrule_11(policy, loss_out, loss_in, deductible, ...)

Deductible and minimum deductible

calcrule_12(policy, loss_out, loss_in, deductible, ...)

Deductible only

calcrule_13(policy, loss_out, loss_in, deductible, ...)

deductible, minimum and maximum deductible

calcrule_14(policy, loss_out, loss_in, deductible, ...)

Limit only

calcrule_15(policy, loss_out, loss_in, deductible, ...)

Deductible and limit % loss

calcrule_16(policy, loss_out, loss_in, deductible, ...)

Deductible % loss

calcrule_17(policy, loss_out, loss_in, deductible, ...)

Deductible % loss with attachment, limit and share

calcrule_19(policy, loss_out, loss_in, deductible, ...)

Deductible % loss with min and/or max deductible

calcrule_20(policy, loss_out, loss_in, deductible, ...)

Reverse franchise deductible

calcrule_22(policy, loss_out, loss_in, deductible, ...)

Reinsurance % ceded, limit and % placed

calcrule_23(policy, loss_out, loss_in, deductible, ...)

Reinsurance limit and % placed

calcrule_24(policy, loss_out, loss_in, deductible, ...)

Reinsurance excess terms

calcrule_25(policy, loss_out, loss_in, deductible, ...)

Reinsurance proportional terms

calcrule_26(policy, loss_out, loss_in, deductible, ...)

Deductible % loss with min and/or max deductible and limit

calcrule_27(policy, loss_out, loss_in, deductible, ...)

Step payout with limit

calcrule_28(policy, loss_out, loss_in, deductible, ...)

% loss step payout

calcrule_32(policy, loss_out, loss_in, deductible, ...)

Monetary amount trigger and % loss step payout with limit

calcrule_33(policy, loss_out, loss_in, deductible, ...)

Deductible % loss with limit

calcrule_34(policy, loss_out, loss_in, deductible, ...)

Deductible with attachment and share

calcrule_35(policy, loss_out, loss_in, deductible, ...)

Deductible % loss with min and/or max deductible and limit % loss

calcrule_36(policy, loss_out, loss_in, deductible, ...)

Deductible with min and/or max deductible and limit % loss

calcrule_37(policy, loss_out, loss_in, deductible, ...)

% loss step payout

calcrule_38(policy, loss_out, loss_in, deductible, ...)

Conditional coverage

calcrule_39(policy, loss_out, loss_in, deductible, ...)

Franchise deductible

calcrule_40(policy, loss_out, loss_in, deductible, ...)

BI deductible (waiting period) and limit (period of interest)

calcrule_41(policy, loss_out, loss_in, deductible, ...)

No BI deductible (waiting period) and limit only (period of interest)

calc(policy, loss_out, loss_in, deductible, ...)

Module Contents

oasislmf.pytools.fm.policy_extras.min2(a, b)[source]
oasislmf.pytools.fm.policy_extras.deductible_over_max(i, loss_out, loss_in, deductible, over_limit, under_limit, max_deductible)[source]

Deductible is over maximum deductible, we reduce the loss, therefore increase the loss up to under_limit

under limit is always the minimum between the limit - loss and the sub_node under_limit + the applied deductible so we are sure that if deductible[i] > max_ded_left, we are sure that under_limit is the good cap we are sure that is there is no sub node with limit loss_delta < under_limit

loss delta can be negative so in this case we have to be careful it is not bigger than loss_in

oasislmf.pytools.fm.policy_extras.deductible_under_min(i, loss_out, loss_in, effective_deductible, over_limit, under_limit, min_deductible, deductible)[source]

Deductible is under the minimum, we raise the deductible from over_limit first then loss if over_limit is not enough

oasislmf.pytools.fm.policy_extras.calcrule_1(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible and limit

oasislmf.pytools.fm.policy_extras.calcrule_2(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible, attachment, limit and share

oasislmf.pytools.fm.policy_extras.calcrule_3(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Franchise deductible and limit

oasislmf.pytools.fm.policy_extras.calcrule_5(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible and limit as a proportion of loss

oasislmf.pytools.fm.policy_extras.calcrule_7(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

deductible, minimum and maximum deductible, with limit

oasislmf.pytools.fm.policy_extras.calcrule_8(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible and minimum deductible, with limit

oasislmf.pytools.fm.policy_extras.calcrule_10(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible and maximum deductible

oasislmf.pytools.fm.policy_extras.calcrule_11(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible and minimum deductible

oasislmf.pytools.fm.policy_extras.calcrule_12(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible only

oasislmf.pytools.fm.policy_extras.calcrule_13(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

deductible, minimum and maximum deductible

oasislmf.pytools.fm.policy_extras.calcrule_14(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Limit only

oasislmf.pytools.fm.policy_extras.calcrule_15(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible and limit % loss

oasislmf.pytools.fm.policy_extras.calcrule_16(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible % loss

oasislmf.pytools.fm.policy_extras.calcrule_17(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible % loss with attachment, limit and share

oasislmf.pytools.fm.policy_extras.calcrule_19(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible % loss with min and/or max deductible

TODO: check if we can assume 0 <= policy[‘deductible1’] <= 1

oasislmf.pytools.fm.policy_extras.calcrule_20(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Reverse franchise deductible

oasislmf.pytools.fm.policy_extras.calcrule_22(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Reinsurance % ceded, limit and % placed

oasislmf.pytools.fm.policy_extras.calcrule_23(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Reinsurance limit and % placed

oasislmf.pytools.fm.policy_extras.calcrule_24(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Reinsurance excess terms

oasislmf.pytools.fm.policy_extras.calcrule_25(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Reinsurance proportional terms

oasislmf.pytools.fm.policy_extras.calcrule_26(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible % loss with min and/or max deductible and limit

TODO: check if we can assume 0 <= policy[‘deductible1’] <= 1

oasislmf.pytools.fm.policy_extras.calcrule_27(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Step payout with limit

oasislmf.pytools.fm.policy_extras.calcrule_28(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

% loss step payout

oasislmf.pytools.fm.policy_extras.calcrule_32(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Monetary amount trigger and % loss step payout with limit

oasislmf.pytools.fm.policy_extras.calcrule_33(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible % loss with limit

oasislmf.pytools.fm.policy_extras.calcrule_34(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible with attachment and share

TODO: compare to the cpp, as there is shares, deductible won’t be use later on so no need to compute it

oasislmf.pytools.fm.policy_extras.calcrule_35(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible % loss with min and/or max deductible and limit % loss

TODO: check if we can assume 0 <= policy[‘deductible1’] <= 1

oasislmf.pytools.fm.policy_extras.calcrule_36(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Deductible with min and/or max deductible and limit % loss

oasislmf.pytools.fm.policy_extras.calcrule_37(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

% loss step payout

oasislmf.pytools.fm.policy_extras.calcrule_38(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Conditional coverage

oasislmf.pytools.fm.policy_extras.calcrule_39(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

Franchise deductible

oasislmf.pytools.fm.policy_extras.calcrule_40(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

BI deductible (waiting period) and limit (period of interest)

oasislmf.pytools.fm.policy_extras.calcrule_41(policy, loss_out, loss_in, deductible, over_limit, under_limit)[source]

No BI deductible (waiting period) and limit only (period of interest)

oasislmf.pytools.fm.policy_extras.calc(policy, loss_out, loss_in, deductible, over_limit, under_limit, stepped)[source]