oasislmf.pytools.fm.portfolio_complexity

Functions

compute_portfolio_complexity(static_path)

Compute portfolio complexity metrics from Oasis static files.

format_complexity_report(metrics)

Return a human-readable text summary of portfolio complexity metrics.

Module Contents

oasislmf.pytools.fm.portfolio_complexity.compute_portfolio_complexity(static_path)[source]

Compute portfolio complexity metrics from Oasis static files.

Works for GUL-only, IL, and IL+RI portfolios.

GUL-only (no account file): only portfolio_dimensions and the gul_work_units complexity score are populated.

IL (account file present): additionally populates il with the FM structure, profile complexity, and output count for the insured-loss layer.

RI (reinsurance files present): additionally populates ri with per-layer FM metrics and a total RI FM work-unit count.

The two key per-event cost proxies in complexity_scores are:

  • gul_work_units = num_items

  • fm_work_units = il_fm_work_units + ri_fm_work_units where il_fm_work_units = total_il_nodes × il_layers and ri_fm_work_units = Σ(total_ri_nodes_layer_k × ri_layers_k)

Multiplying by the number of model events gives a per-dimension full-run cost proxy.

Parameters

static_pathstr

Directory containing the Oasis static files. For IL this is the directory with fm_programme.bin etc. RI layer subdirectories are discovered automatically via ri_layers.json.

Returns

dict

oasislmf.pytools.fm.portfolio_complexity.format_complexity_report(metrics)[source]

Return a human-readable text summary of portfolio complexity metrics.

Parameters

metricsdict

As returned by compute_portfolio_complexity().

Returns

str