Prudential return builder (RBNZ / APRA)¶
| ID | MOD-036 |
| System | SD06 |
| Repo | bank-risk-platform |
| Build status | Deployed |
| Deployed | Yes |
| Last commit | 54197c02fff0ca78a988e6140d31778e59f05b46 |
Dynamic tables producing RBNZ BS-series and APRA ARS returns from live data. Cell-level data lineage. Validation rules gate submission. See ADR-013.
Approval gate (FR-807)¶
This module does not submit automatically. The submission orchestrator checks REGULATORY.RETURN_APPROVALS before posting to any regulator endpoint. If no approval record exists for the current (run_id, return_code), the orchestrator aborts and alerts the Finance team. The approval is written by MOD-170 (Regulatory Submissions Portal) — a Finance officer reviews the assembled return cell-by-cell in the portal Streamlit and clicks Approve. No code path in this module can bypass the gate.
REGULATORY.RETURN_APPROVALS (new table — V004)¶
Append-only. NFR-024 — no UPDATE or DELETE grants.
| Column | Type | Constraints | Notes |
|---|---|---|---|
| approval_id | uuid | PRIMARY KEY DEFAULT gen_random_uuid() | |
| run_id | uuid | NOT NULL REFERENCES RETURN_RUNS(run_id) | |
| return_code | text | NOT NULL | RBNZ BS2A / BS13 / APRA ARS 110.0 / 210.0 |
| jurisdiction | text | NOT NULL CHECK (jurisdiction IN ('NZ','AU')) | |
| approving_officer_id | text | NOT NULL | Snowflake current_user() at time of approval — must differ from system assembler |
| sign_off_reason | text | NOT NULL | Mandatory comment from approving officer |
| action | text | NOT NULL CHECK (action IN ('APPROVED','REJECTED')) | |
| actioned_at | timestamptz | NOT NULL DEFAULT current_timestamp() |
Grants: SELECT, INSERT to REGULATORY_SUBMISSIONS_PORTAL_ROLE (MOD-170). SELECT to BANK_DBT_ROLE. No UPDATE or DELETE to any role.
Streamlit page¶
MOD-036 ships a Streamlit page REGULATORY.STREAMLIT_RETURN_BUILDER providing:
- Cell-level return viewer for each assembled return (line items + source lineage + prior-period comparison)
- Validation error detail view
- Approval / rejection form writing to RETURN_APPROVALS
This Streamlit is the primary UI. It is embedded in the MOD-170 Regulatory Submissions Portal as the per-return detail view. Authorised roles: finance.regulatory_reporting, finance.senior_officer, compliance.officer.
Module dependencies¶
Depends on¶
| Module | Title | Required? | Contract | Reason |
|---|---|---|---|---|
| MOD-032 | LCR / NSFR calculator | Required | — | LCR and NSFR figures from the liquidity calculator are required data for prudential returns. |
| MOD-033 | RWA & capital ratio engine | Required | — | RWA and capital ratio data from the capital engine feeds the prudential return templates. |
| MOD-038 | Data quality & reconciliation monitor | Required | — | Data quality reconciliation must pass before regulatory returns are submitted. |
| MOD-104 | AWS shared infrastructure bootstrap | Required | — | MOD-104 provisions the S3 Iceberg bucket (Snowflake external tables), KMS key, and bank-risk-platform EventBridge bus ARN. Required before this module can be deployed. |
| MOD-102 | Snowflake account configuration & governance | Required | — | Snowflake account and governance provisioned by MOD-102 must exist before this module can read or write Snowflake. |
| MOD-170 | Regulatory Submissions Portal | Required | — | Regulatory Submissions Portal owns the approval workflow and writes to REGULATORY.RETURN_APPROVALS; the submission orchestrator in this module gates on that table — MOD-170 must be deployed for any return to progress from VALIDATED to SUBMITTED. |
Required by¶
| Module | Title | As | Contract |
|---|---|---|---|
| MOD-170 | Regulatory Submissions Portal | Hard dependency | — |
Policies satisfied¶
| Policy | Title | Mode | How |
|---|---|---|---|
| REP-001 | Regulatory Reporting Policy | AUTO |
Regulatory returns produced automatically on schedule — no manual data assembly |
| REP-002 | Prudential Reporting Policy | LOG |
Every figure in every return traceable to source ledger entry — data lineage maintained |
| REP-005 | Data Quality & Assurance Policy | GATE |
Submission is gated by two sequential checks — automated validation rules (data quality) AND an explicit Finance officer approval record in REGULATORY.RETURN_APPROVALS; the submission orchestrator refuses to post to RBNZ or APRA unless both gates are cleared. |
Capabilities satisfied¶
| Capability | Title | Mode | How |
|---|---|---|---|
| CAP-025 | Automated regulatory reporting pipeline | AUTO |
Builds and submits regulatory returns automatically on schedule, without manual data assembly. |
| CAP-030 | Regulator evidence portal | LOG |
Packages compiled returns and supporting data into a regulator-accessible evidence bundle. |
| CAP-034 | Jurisdiction configuration layer | AUTO |
Applies the correct jurisdictional reporting rules and thresholds when building each return. |
| CAP-035 | Per-jurisdiction regulatory report profiles | AUTO |
Selects and populates the regulatory report template appropriate to the jurisdiction and report type. |
Part of SD06 — Snowflake Analytics & Risk Platform
Compiled 2026-05-22 from source/entities/modules/MOD-036.yaml