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¶
|
|
|
deductible is over maximum deductible, we reduce the loss, therefore increase the loss up to under_limit |
|
Deductible is under the minimum, we raise the deductible from over_limit first then loss if over_limit is not enough |
|
Deductible and limit |
|
Deductible, attachment, limit and share |
|
Franchise deductible and limit |
|
Deductible and limit as a proportion of loss |
|
deductible, minimum and maximum deductible, with limit |
|
deductible and minimum deductible, with limit |
|
deductible and maximum deductible |
|
deductible and minimum deductible |
|
Deductible only |
|
deductible, minimum and maximum deductible |
|
Limit only |
|
deductible and limit % loss |
|
deductible % loss |
|
deductible % loss with attachment, limit and share |
|
deductible % loss with min and/or max deductible |
|
reverse franchise deductible |
|
reinsurance % ceded, limit and % placed |
|
reinsurance limit and % placed |
|
reinsurance excess terms |
|
reinsurance proportional terms |
|
deductible % loss with min and/or max deductible and limit |
|
step payout with limit |
|
% loss step payout |
|
monetary amount trigger and % loss step payout with limit |
|
deductible % loss with limit |
|
deductible with attachment and share |
|
deductible % loss with min and/or max deductible and limit % loss |
|
deductible with min and/or max deductible and limit % loss |
|
% loss step payout |
|
conditional coverage |
|
Franchise deductible |
|
Module Contents¶
- 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[‘deductible_1’] <= 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[‘deductible_1’] <= 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[‘deductible_1’] <= 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