Project Record
Reinsurance Model Run Observability
Preview prompt
Summarize the Ionitsa project record titled "Reinsurance Model Run Observability" for a technical reader. Cover the problem or research question, implementation or method, evidence or results, and limitations. Separate facts stated on the page from your own assessment, note anything unclear or unverified, and avoid promotional language. Primary source: https://ionitsa.com/projects/reinsurance-model-observability.md Canonical page: https://ionitsa.com/projects/reinsurance-model-observability/
Operational dashboard and lineage layer for multi-model reinsurance runs on Tyche—tracking outputs, runtime, treaty KPIs, and parameter sensitivity.
Context
As actuarial analyst on a reinsurance desk, I supported five to six treaty, reserving, and exposure models that batch-ran on Tyche, a leading actuarial software platform. Stakeholders needed a single view of what each run produced, how long it took, and whether outputs were consistent across models—not a rewrite of the pricing engines, but operational intelligence on top of them.
Problem
Model outputs landed as opaque directory trees with no unified lineage. Run duration, CPU use, and cross-model agreement were invisible until someone manually backtracked files. When treaty parameters changed—retention, quota share, attachment, or limit—there was no fast way to compare before/after performance or spot which model diverged.
Architecture
- Ingest: PowerShell scanners on Windows compute nodes walk Tyche output paths; parallel fan-out by model folder and treaty year.
- Parse: Python normalizes run metadata, file manifests (row counts, checksums, header schemas), and resource telemetry into an indexed store.
- Visualize: Refreshable dashboards show runtime percentiles, CPU/memory use, file-dependency graphs, and actuarial KPI overlays.
Reinsurance Metrics Overlay
Treaty KPIs are derived from model outputs, not re-implemented pricing logic:
- Ceded loss ratio: — compare across runs and models.
- Net retention: — sanity check on treaty structure.
- XL utilization: — attachment and limit stress.
- Geographic ceded exposure: choropleth by region and line of business layered on the ops view.
Parameter Sensitivity and Cross-Model Comparison
One-at-a-time sensitivity on treaty parameters :
where is ceded premium, net loss ratio, or runtime. Tornado charts rank drivers; Monte Carlo sweeps perturb within actuarially plausible ranges and report mean and p5/p95 of net loss ratio and ceded premium—using cached outputs or scaling factors where models are linear in quota share, and full reruns where they are not.
Cross-model agreement uses normalized distance on shared dimensions (LOB, region, treaty year):
Pairs above tolerance surface for review, analogous to reconciliation breaks on actuarial metrics rather than positions.
Speed and Refresh Techniques
- Incremental indexing: watermark on
mtimeand path; scan only new or changed outputs since last refresh. - Content-hash deduplication: skip re-parsing identical artifacts across reruns.
- Dependency-aware refresh: run DAG; if upstream manifest is unchanged, skip downstream KPI recompute.
- Metadata-first parsing: lightweight manifests before heavy actuarial file reads.
- Pre-aggregated rollups: nightly snapshots of per-run KPIs so dashboards query summaries, not raw outputs.
- Selective tile refresh: ops metrics, geo map, and sensitivity panels refresh independently.
Full-tree scans dropped from tens of minutes to sub-minute incremental refresh on typical daily batches.
Trade-offs
KPI aggregation is heuristic and model-version dependent. The sensitivity layer supports what-if exploration, not full stochastic reserving. Tyche path conventions require maintenance when model versions or folder layouts change. The dashboards accelerate diagnosis and treaty oversight but do not replace actuarial sign-off on model methodology.