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).
Inputs, processing, outputs
- data sources
- DS-001
- engines
-
insmodel.L4.bscr_engine
- dimensions
- D3
Methodology
BUILT — engine
insmodel.L4.bscr_engine(BSCREngine) isstatus: activeon disk atfirmmodel/engines/bscr_engine.py(relative to the InsModelModels/package root; InsModel PR #83). It implements the design below and produces the deterministic outputs frozen in the validation pack. The model M-054 staysunder_developmentpending 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:
- 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].) - 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.
- Technical provisions — best-estimate liabilities plus risk margin on the BMA economic-balance-sheet basis.
- 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 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 and Known Gaps
- 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.
- Factors are public-structure defaults, not the binding BMA tables (the
bma_bscrframework 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. - 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.
- 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.
- 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_bscrre-tag, and the §6.3 Tier-1 re-derivation are now done (COND-054-03). 1L issues no verdict — status staysunder_developmentuntil the 2L RAT-054-v1.0.4 promotes M-054 toactive.
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 Packet
Present — modelling/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
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
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.yamlentry forinsmodel.L4.bscr_enginewas flipped tostatus: activeclaiming "now BUILT" (citing D053 Tranche C / PR #2310 / commit 1611d73), but no engine file exists in InsModel —firmmodel/engines/bscr_engine.pyandtests/test_bscr_engine.pyare 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 toplanned(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-linefirmmodel/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-7legacy_metadata/BSCREngine.yamlhad 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 packmodelling/validation_evidence/M-054/v1.0.0/(deterministicgold_bscr_snapshot.json+ reproduciblesnapshot_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); promotedengine_registryinsmodel.L4.bscr_engineplanned → active(surgical edit — the engine-promote op is not yet expressible via the registry-delta channel) andmodel_registryM-054validation_evidence: missing → presentviaregistry_deltas/M-054.yaml(theedits:promotion channel). Removed an unusedOptionalimport (ruff). Card updated to reflect the built engine + populated Output Snapshot / Validation Packet. 1L issues no verdict — model staysunder_developmentpending 2L (Decision 052); the factor calibration to the binding BMA tables, conceptual-soundness sign-off, and thebma_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+ frozensensitivity_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 onlytechnical_provisions(BSCR/ECR unchanged); locked in repo by 6 newTestSensitivityregressions (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_bscrregistered, line 611, a Tier-1 trigger, line 407); re-taggedregulatory_frameworks[solvency_ii, internal] → [bma_bscr, internal]and re-derivedmateriality.tier2 → 1(Tier-1 on three independent §6.3 triggers — (a) High materiality, (b)bma_bscrframework, (c) produces binding statutory capital), reconciling the card header,model_registry, andengine_registry(tier: tier-1) — all viaregistry_deltas/M-054.yaml(reconciler--apply, never a hand-edit). 1L issues no verdict — model staysunder_development; ready for 2L re-review (RAT-054-v1.0.4), which on confirming both conditions promotes M-054 toactiveand unblocks M-055. No firm BSCR/ECR fabricated.
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.
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.
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.
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.)
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.)
Per-tier expectations
Per MRM Framework §10.2 + §10.3, this model's regulatory_frameworks tag list activates the following overlays:
| 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 |
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.