Tier 1 · Capital Solvency Assessment

Bermuda BSCR Capital

M-054 · lifecycle: development · RAT-054-v1.0.4

Intended Use

Bermuda BSCR Capital Compute BMA BSCR / ECR and technical-provision and transitional adjustments for offshore (re)insurance entities.

Bermuda Monetary Authority capital determination (BSCR standard formula, Enhanced Capital Requirement, technical provisions + transitional measures) for offshore reinsurers in the US-to-Bermuda cession structure (e.g. PRU Prismic Re, APO Athene ACRA / AARe). Grounding: cross-firm 10-K study gap #2 (vertical/research/03_insurance_gap_analysis.md).


Components

Inputs, processing, outputs

data sources
DS-001
engines
insmodel.L4.bscr_engine
dimensions
D3

Methodology & Mechanics

Methodology

BUILT — engine insmodel.L4.bscr_engine (BSCREngine) is status: active on disk at firmmodel/engines/bscr_engine.py (relative to the InsModel Models/ package root; InsModel PR #83). It implements the design below and produces the deterministic outputs frozen in the validation pack. The model M-054 stays under_development pending the 2L effective-challenge verdict.

M-054 computes the BMA capital determination for offshore (re)insurance entities in the US-to-Bermuda cession structure (e.g. PRU Prismic Re, APO Athene ACRA / AARe). The intended design follows the BMA BSCR standard formula and Enhanced Capital Requirement:

  1. BSCR standard formula — a prescribed, modular capital charge aggregating risk modules (e.g. insurance/technical-provision risk, market risk, credit risk, operational risk) via the BMA-prescribed correlation/aggregation structure, applied to the entity's economic balance sheet. (Registered engine inputs: [balance_sheet, technical_provisions, capital_charges].)
  2. Enhanced Capital Requirement (ECR) — the binding regulatory capital requirement, taken as the greater of the BSCR and the BMA minimum margin of solvency / floor, against which available statutory capital is measured.
  3. Technical provisions — best-estimate liabilities plus risk margin on the BMA economic-balance-sheet basis.
  4. Transitional adjustments — BMA-permitted transitional measures on technical provisions / capital phased in over the prescribed schedule.

Outputs (per engine ENGINE_CONTRACT): the nine per-module charges, bscr_diversified, operational_risk_charge, bscr, diversification_benefit, best_estimate_liabilities, risk_margin, technical_provisions, ecr, ecr_coverage_ratio. The engine is implemented and tested; see Output Snapshot.


Key Assumptions

Key Assumptions and Their Justification

No formal A-NNN assumptions are bound (registry components.inputs.assumptions: []). The engine's calibration lives in its ENGINE_CONTRACT parameters — the per-module charge factors and the inter-module correlation matrix — which carry the public BMA standard-formula structure with representative defaults and are overridable for the binding BMA instructions tables. The shipped factors are a structure, not a reproduction of the current binding BMA tables (see Limitations #1). Full SR-11-7 narrative: InsModel/Models/firmmodel/governance/legacy_metadata/BSCREngine.yaml.


Limitations

Limitations and Known Gaps

  1. Factors are public-structure defaults, not the binding BMA tables. The shipped per-module factors and correlation matrix are the public BMA standard-formula structure with representative defaults; they must be overridden with the authoritative current BMA instructions tables for a binding capital figure. The engine is correct as a structure; calibrating to the binding tables is a parameter (not code) task.
  2. Factors are public-structure defaults, not the binding BMA tables (the bma_bscr framework tag and the §6.3 Tier-1 re-derivation are now applied — COND-054-03 cleared on the 1L side). The remaining gap is calibration: the shipped per-module factors / correlation matrix are the public standard-formula structure, not the binding current BMA instructions tables. A binding capital figure needs them overridden with the authoritative tables — a parameter/data task, not a code task.
  3. Only DS-001 (FRED) wired as a registry input. No BSCR-specific firm data source (economic balance sheet, technical provisions, capital charges) is bound, so the engine is exercised on constructed EBS inputs. A real economic-balance-sheet feed is a follow-on data-binding task.
  4. The disclosed-BMA cross-check is a reasonableness anchor, not a reproduction (see Validation Packet) — it validates output shape + order-of-magnitude, not the exact binding figure.
  5. No output contracts registered (components.outputs.contracts: []); a typed output contract for downstream consumers (M-055) is a follow-on.

Open for 2L / governance (not 1L acts). Calibrate the per-module factors + correlation matrix to the current binding BMA instructions tables; bind a real economic-balance-sheet firm data source; register an output contract. The §8.3 enum extension, the bma_bscr re-tag, and the §6.3 Tier-1 re-derivation are now done (COND-054-03). 1L issues no verdict — status stays under_development until the 2L RAT-054-v1.0.4 promotes M-054 to active.


Output Snapshot

Output Snapshot

Deterministic gold snapshot: modelling/validation_evidence/M-054/v1.0.0/gold_bscr_snapshot.json, reproduced by snapshot_bscr.py (--check asserts byte-identical). The engine, run on a constructed, illustrative offshore L&A reinsurer EBS (~$85bn liabilities, $21bn available capital — representative magnitudes, no firm disclosure reproduced), produces bscr 12832.3635, ecr 12832.3635, technical_provisions 85384.9709, ecr_coverage_ratio 1.636487.


Validation Evidence

Validation Packet

Presentmodelling/validation_evidence/M-054/v1.0.0/ (1L build, 2026-06-28). - 24/24 engine tests pass (InsModel/Models/tests/test_bscr_engine.py): per-module factor·exposure charges, sqrt correlation aggregation, diversification benefit, technical provisions, transitional relief, ECR + floor + coverage, contract shape, + 6 COND-054-01 parameter-sensitivity regressions. Oracles are hand-computed from the published standard formula — no firm figure as a fixture. - Parameter sensitivity (COND-054-01): sensitivity_bscr.py / sensitivity_bscr.json drive the engine across the top BSCR drivers (reserve, fixed-income, interest-rate/liquidity factors; the operational-risk factor; the cost-of-capital risk-margin rate) at ±10 %/±20 % on the gold-snapshot EBS. Every module/operational factor moves BSCR == ECR strictly monotonically (coverage falls as required capital rises); the reserve factor dominates (+20 % moves BSCR +$1,273M); the cost-of-capital rate is downstream of BSCR (lifts only technical_provisions, leaving BSCR/ECR/coverage unchanged). Locked in repo by TestSensitivity (--check asserts the table byte-identical). - Disclosed-BMA cross-check (external reasonableness anchor, with explicit tolerance): the Athene Bermuda Sub-Group 2024 Financial Condition Report (public, EBS basis, 31 Dec 2024) discloses, for the APO Athene leg of the US-to-Bermuda cession structure: AARe required capital/ECR $11,889M, BSCR/ECR ratio 243%; ALRe ECR $5,233M, ratio 457%. Stated tolerance (COND-054-01): PASS when computed ECR on a comparable-size constructed EBS is within ±25 % of the disclosed AARe ECR (same order of magnitude, given public-structure-not-binding-tables). Result: $12,832M / $11,889M = 1.079 (+7.9 %) → PASS. This confirms the engine's output shape and magnitude — an honest reasonableness anchor, not a reproduction (the engine is not tuned to the disclosed figure and ships only public-structure default factors).

Open for 2L effective challenge (Decision 052): the factor calibration to the binding BMA tables, conceptual-soundness sign-off, and the bma_bscr enum extension. 1L issues no verdict; status stays under_development.


References

References

Regulatory: - BMA Insurance (Prudential Standards) (Insurance Group Solvency Requirement / Class 4 and Class 3B Solvency Requirement) Rules — BSCR standard formula and Enhanced Capital Requirement (ECR) regulatory text. - BMA Bermuda Solvency Capital Requirement (BSCR) model and instructions handbook — standard-formula risk modules, ECR, technical provisions, and transitional measures.

Internal: - Grounding study: vertical/research/03_insurance_gap_analysis.md — cross-firm 10-K study, gap #2 (offshore Bermuda capital determination for the US-to-Bermuda cession structure).


Change Log

Change Log

Card change history. Code-side change history lives in git log of the component files.

  • 2026-06-05 — stub created from registry data per Decision 023 Phase 5 / B-07.
  • 2026-06-06 — documentation-completion pass grounded in the registry entry (model_registry M-054), engine_registry (insmodel.L4.bscr_engine, status: planned), and data_source_registry (DS-001 FRED). Filled Methodology (explicitly marked PLANNED — engine not implemented), Key Assumptions (none bound), Limitations and Known Gaps, Validation Packet (honest pending — validation_evidence: missing), References (BMA BSCR/ECR text + grounding study gap #2); added missing Standards Coverage, Dependencies, and Output Snapshot (pending) sections per the M-001 structure. No model outputs, snapshots, back-test, or validation numbers were fabricated. Output-changing items (engine build, snapshot, §8.3 enum extension + re-tag, BSCR input/contract wiring) left for ratification.
  • 2026-06-08 — 1L remediation of RAT-054-v1.0.2 (COND-054-01/02/03). Finding: between RAT-054-v1.0.1 and -v1.0.2 the engine_registry.yaml entry for insmodel.L4.bscr_engine was flipped to status: active claiming "now BUILT" (citing D053 Tranche C / PR #2310 / commit 1611d73), but no engine file exists in InsModelfirmmodel/engines/bscr_engine.py and tests/test_bscr_engine.py are absent on disk, in every branch, and in history, and there is no such commit/PR. The "active" flag was a hollow registration. Reconciled the engine_registry status back to planned (disk reality). This card was NOT changed to describe an "implemented engine" / populated Output Snapshot, because that would fabricate a build that did not happen — the card remains honestly PLANNED. COND-054-01 (validation pack: needs a real engine run + gold snapshot + disclosed-BMA cross-check), COND-054-02 (doc-currency: card can only reflect the engine once it is built), and COND-054-03 (bma_bscr §8.3 enum extension, a governance act above 1L per issue #2002) all remain honestly conditional pending the genuine engine build. No outputs/validation numbers fabricated.
  • 2026-06-28 — Decision 053 1L build (backlog §A / #2309). AUDIT-FIRST finding: the real BSCREngine (353-line firmmodel/engines/bscr_engine.py@engine, ENGINE_CONTRACT, modular standard-formula charges + correlation aggregation + ECR + technical provisions + transitional, no hardcoded firm values) + a 178-line test suite (18/18 pass) + the SR-11-7 legacy_metadata/BSCREngine.yaml had already landed on origin/main in InsModel PR #83 (the M-005 build), but the registries were never promoted to match disk. The 1L work: verified the on-disk engine is real + tested; built the validation pack modelling/validation_evidence/M-054/v1.0.0/ (deterministic gold_bscr_snapshot.json + reproducible snapshot_bscr.py + a disclosed-BMA cross-check against the public Athene Bermuda Sub-Group 2024 FCR — AARe ECR $11,889M / 243%, ALRe ECR $5,233M / 457% — as an honest order-of-magnitude reasonableness anchor, not a reproduction); promoted engine_registry insmodel.L4.bscr_engine planned → active (surgical edit — the engine-promote op is not yet expressible via the registry-delta channel) and model_registry M-054 validation_evidence: missing → present via registry_deltas/M-054.yaml (the edits: promotion channel). Removed an unused Optional import (ruff). Card updated to reflect the built engine + populated Output Snapshot / Validation Packet. 1L issues no verdict — model stays under_development pending 2L (Decision 052); the factor calibration to the binding BMA tables, conceptual-soundness sign-off, and the bma_bscr §8.3 enum extension remain 2L/governance acts. No firm BSCR/ECR fabricated.
  • 2026-06-28 — Decision 053 1L remediation of RAT-054-v1.0.3 conditions (issue #3450; gates M-055). COND-054-01 (validation-evidence adequacy): added a parameter-sensitivity harness (validation_evidence/M-054/v1.0.0/sensitivity_bscr.py + frozen sensitivity_bscr.json) driving the engine across its top BSCR drivers (reserve / fixed-income / interest-rate factors, operational-risk factor, cost-of-capital rate) at ±10 %/±20 % — every module factor moves BSCR == ECR strictly monotonically (coverage falls), the reserve factor dominates, and the cost-of-capital rate lifts only technical_provisions (BSCR/ECR unchanged); locked in repo by 6 new TestSensitivity regressions (suite 18 → 24/24 pass). Stated an explicit cross-check tolerance (computed ECR within ±25 % of the disclosed AARe EBS ECR; result $12,832M / $11,889M = +7.9 % → PASS). COND-054-03 (re-tag + §6.3 Tier-1 re-derivation): the §8.3 enum extension was already done (bma_bscr registered, line 611, a Tier-1 trigger, line 407); re-tagged regulatory_frameworks [solvency_ii, internal] → [bma_bscr, internal] and re-derived materiality.tier 2 → 1 (Tier-1 on three independent §6.3 triggers — (a) High materiality, (b) bma_bscr framework, (c) produces binding statutory capital), reconciling the card header, model_registry, and engine_registry (tier: tier-1) — all via registry_deltas/M-054.yaml (reconciler --apply, never a hand-edit). 1L issues no verdict — model stays under_development; ready for 2L re-review (RAT-054-v1.0.4), which on confirming both conditions promotes M-054 to active and unblocks M-055. No firm BSCR/ECR fabricated.

2L Inventory Review

Open findings (4)

Independent 2nd-line review (INV-2026-06) — implemented capability vs registered scope. Each carries a recommended fix and is tracked in insightalm-mrm until closed.

HIGH INV-029 · P5 · validation-gap

Validation evidence + change logs missing across most of the inventory

Only M-001/M-020/M-050 carried full documentation packs before this pass. Most models record validation_evidence: missing and change_log: missing with peer_review: pending. Gold tests freeze behaviour but many assert only structural invariants (e.g. reserve>0), not correctness against external truth. The flagship T0-vs-10-K match is circular (BV-032).

Recommendation: For each Tier-1 model: produce a validation-evidence pack (back-test vs disclosed results once BV-032 re-calibration lands, sensitivity suite, challenger comparison), a change log, and a 2L ratification. Sequence behind BV-032 (firm-data) for anything needing 10-K reconciliation.

low LG-054-11 · ·

Two clerical loose ends: (a) model_doc_currency reports M-054 `unstamped` (id=None/cur=None) — not drifted, but not stamped into the currency ledger; (b) engine_registry insmodel.L4.bscr_engine declares outputs [..., technical_provision_adjustment] while the engine ENGINE_CONTRACT emits `technical_provisions` — name mismatch.

Recommendation: Stamp the M-054 card fingerprint; reconcile the engine_registry output name to the engine contract. Non-gating.

blocker LG-054-09 · ·

Tier-1 validation-evidence ADEQUACY gap. The pack now has a conceptual-soundness review + a reproducible deterministic gold snapshot + an honest disclosed-BMA cross-check (Athene Bermuda 2024 FCR: AARe ECR $11,889M; computed $12,832M = 1.08x — same order of magnitude, with the public-structure-vs-binding-tables caveat disclosed). But there is NO sensitivity analysis on the top parameters and NO stated numeric tolerance on the cross-check — both explicit COND-054-01 requirements (grep sensitiv|perturb|stress|tolerance -> 0 hits).

Recommendation: Add a sensitivity table on the dominant per-module factors (reserve, fixed-income, interest-rate/liquidity), the operational factor, and the cost-of-capital/risk-margin rate (response of bscr/ecr/technical_provisions/ ecr_coverage_ratio, explained); and restate the disclosed-BMA cross-check with an explicit tolerance band. (Condition COND-054-01.)

major LG-054-10 · ·

bma_bscr is NOW in the §8.3 enum (line 611) and is a Tier-1 trigger (line 407), but M-054 is still tagged [solvency_ii, internal] and the recorded materiality.tier: 2 is inconsistent with the bma_bscr Tier-1 trigger (the engine_registry already carries tier: tier-1).

Recommendation: Re-tag M-054.regulatory_frameworks to add bma_bscr (demote the solvency_ii interim proxy), and re-derive the materiality tier to Tier-1 under §6.3, reconciling the card header, model_registry, and engine_registry. (COND-054-03.)


Validation Coverage

Per-tier expectations

Per MRM Framework §10.2 + §10.3, this model's regulatory_frameworks tag list activates the following overlays:

bma_bscr internal
component tier-1 expectation status
Registry entry required present
Model card (§10.5 doc pack) required present
Validation evidence required present
Change log required present
Independent effective challenge (2L) required attested

Ratification

Ratified — RAT-054-v1.0.4

Latest ratification on file: RAT-054-v1.0.4. Authored by 2L (mrm-peer-reviewer) per Decision 028 charter §5 Pattern A.