# NORTHBRIDGE BANK — GATE 5 HANDOVER REPORT
## AI Credit Re-Scoring Platform — Final Adversarial Review

---

| Field | Value |
|-------|-------|
| **Document ID** | TKA-NB-GATE5-001 |
| **Engagement** | TKA-NB-20260702-001 |
| **Reviewer** | Themis — Compliance & QA Agent, Talastron Kinetic AI |
| **Date** | 2 July 2026 |
| **Stage** | Gate 5 — Handover (Final Adversarial Review) |
| **Input artefacts** | TKA-NB-ADR-001 · TKA-NB-HLD-001 · TKA-NB-COMP-001 · TKA-NB-BUILD-001 · `rg-northbridge-credit-scoring-prod` (live) |
| **Classification** | RESTRICTED — FCA Consumer Credit // OFFICIAL-SENSITIVE |

---

## PERSONA NOTE

This review does not re-mark the design. Vitruvius's architecture and Themis's own Gate 3 pre-flight are taken as read. This review checks the **deployed resource group** — six Bicep modules, live in UK South — against what the design promised. Good intentions do not close Gate 5. Evidence does.

---

## STEP 1 — FINAL ADVERSARIAL REVIEW

| Checklist item | Result |
|---|---|
| Runtime misconfigurations missed at Gate 3 | **None found.** `publicNetworkAccess: 'Disabled'` and a private endpoint are present on every deployed PaaS resource (SQL, Key Vault, AML, Azure OpenAI). APIM is internal-VNet-mode. ADR-007 is faithfully implemented in the built artefact. |
| Key Vault access policy gaps | **None found.** RBAC authorisation only, deny-by-default network ACLs, purge protection enabled, single scoped `Key Vault Administrator` assignment. No legacy access policies, no excess grants. |
| Private endpoint exposure risks | **None found.** Confirmed on all six modules — see above. |
| AML explainability output — Consumer Duty rationale defensibility | **Not yet testable.** The Azure OpenAI rationale endpoint is deployed but held `INACTIVE` in APIM pending Condition C-12 compliance sign-off, and no training run has produced a live SHAP-to-rationale sample. This control cannot be closed until a real rationale output exists to inspect. Carried forward, not a new finding — see Condition C-12. |
| Audit trail completeness | **Finding H2 — see below.** Azure SQL native database auditing is enabled (90-day retention), but this logs database engine events, not credit decisions. The bespoke append-only decision-record table, the Event Hubs real-time stream, and the Blob WORM long-term store described in ADR-006 do not exist in the current build. |
| Open banking API token handling — credential leakage risk | **Finding M1 — see below.** APIM `GatewayLogs` diagnostics are enabled with no header-redaction policy. The AISP OAuth token is not currently live (Condition 1 unresolved, policy inactive), but the logging gap must be closed before activation, not after. |

---

## FINDINGS REGISTER

**0 Critical. 2 High. 2 Medium. 0 Low.** Gate 5 requires zero Critical findings — that threshold is met.

### H1 — Re-scoring API compute is not deployed

APIM's named value `rescoring-api-base-url` points to `https://func-northbridge-prod.azurewebsites.net`. No Azure Functions app exists anywhere in `infra/modules/` to serve that endpoint. The component the entire platform exists to run — the orchestration layer in HLD §2 — is not yet built.

**Owner:** Vulcan / NorthBridge IT. **Required before:** UAT can begin. **Backlog:** tracked under Epic 3/Feature "Open Banking and Data Integration" build-out; no corresponding user story currently exists for the Functions app itself and one should be added.

### H2 — Three-tier FCA audit trail (ADR-006) is one-third built

Only the Azure SQL tier exists, and only as native platform auditing — not the bespoke append-only decision table with row-level security described in ADR-006. The Event Hubs namespace (real-time tier) and Blob WORM storage (long-term tamper-evident tier) have no corresponding modules. A regulated credit-decisioning platform cannot produce an FCA-defensible audit record in this state.

**Owner:** Vulcan. **Required before:** Any live applicant data is processed. **Backlog:** User Stories #116 (Event Hubs), #118 (audit consumer Function), #119 (Blob WORM — already correctly held pending BLOCK-02) are logged and in `New` state.

### M1 — APIM gateway logs have no credential redaction policy

`GatewayLogs` diagnostics export to Log Analytics with no policy-level scrubbing of the `Authorization` header. Not currently exploitable — the AISP policy is inactive pending Condition 1 — but the fix must land before activation, not be discovered after.

**Owner:** Vulcan. **Required before:** AISP gateway policy is set to `Enabled`.

### M2 — Azure OpenAI `RequestResponse` logging duplicates PII outside the governed audit tier

The Azure OpenAI module's diagnostic settings capture full prompt and completion text — including SHAP-derived applicant features and generated rationale — into the general Log Analytics workspace, outside the SQL/Blob audit tiers and outside the data-minimisation review already required under the Gate 3 pre-flight (UK GDPR Art 5(1)(c)).

**Owner:** Vulcan / NorthBridge DPO. **Required before:** OpenAI rationale endpoint is activated (aligns with existing Condition C-12).

---

## STEP 2 — WAF PILLAR SCORING

Full detail in `northbridge-waf-scorecard.md`. Summary:

| Pillar | Score |
|---|:---:|
| Security | 8/10 |
| Reliability | 6/10 |
| Cost Optimization | 7/10 |
| Operational Excellence | 7/10 |
| Performance Efficiency | 7/10 |

**WAF Readiness: 70%.** All pillars clear the minimum (6/10). None yet reach target (8/10) — driven principally by H1 and H2.

---

## STEP 3 — AS-BUILT REPORT

### Engagement

TKA-NB-20260702-001 — NorthBridge Bank, AI Credit Re-Scoring Platform, UK South sovereign perimeter, FCA-regulated, 90-day MVP mandate.

### Solution summary

An AI-augmented re-scoring layer that enriches legacy credit decisions with open banking and affordability data, produces an FCA-defensible plain-English rationale via a constrained Azure OpenAI prompt over SHAP attribution, and routes borderline outcomes to a human underwriter. The legacy origination system remains system of record; this platform is additive.

### Deployed resource list — `rg-northbridge-credit-scoring-prod` (UK South)

| Resource | Type / SKU | Status |
|---|---|---|
| `log-northbridge-prod` + `appi-northbridge-prod` | Log Analytics + App Insights | 🟢 Deployed, ingestion/query public access disabled |
| `kv-northbridge-prod` | Key Vault, Standard, RBAC-only | 🟢 Deployed, private endpoint |
| `sql-northbridge-prod` / `sqldb-northbridge-credit-scoring` | Azure SQL, Hyperscale (2 vCore), zone-redundant | 🟢 Deployed, Azure AD-only auth, private endpoint |
| `mlw-northbridge-prod` + associated storage | AML Workspace, Basic + Storage V2 | 🟢 Deployed, CMK via Key Vault, private endpoints |
| `oai-northbridge-prod` | Azure OpenAI, S0, GPT-4o (30k TPM) | 🟡 Deployed, rationale endpoint inactive pending C-12 |
| `apim-northbridge-prod` | API Management, Premium, Internal VNet | 🟡 Deployed, AISP policy inactive pending Condition 1 |
| Re-scoring API (Azure Functions) | — | 🔴 Not deployed — Finding H1 |
| Audit stream (Event Hubs) + consumer Function | — | 🔴 Not deployed — Finding H2 |
| Blob WORM storage | — | 🔴 Not deployed — correctly held pending BLOCK-02 |
| VNet / subnets / Bastion | Existing NorthBridge-provided | ⚪ Referenced by resource ID, not Talastron-managed (AMB-09/10) |

### Findings summary

0 Critical · 2 High (H1, H2) · 2 Medium (M1, M2) · 0 Low.

### Projected monthly run cost vs. approved cap

| Component | Est. monthly cost (UK South, indicative) |
|---|---:|
| Log Analytics + App Insights | £180 |
| Key Vault (Standard) | £5 |
| Azure SQL Hyperscale (2 vCore, zone-redundant) | £550 |
| AML Workspace + storage (compute auto-scale to zero) | £350 |
| Azure OpenAI (GPT-4o, 30k TPM reserved + MVP volume) | £850 |
| API Management (Premium, 1 unit) | £2,650 |
| Private endpoints / DNS (9 zones) | £35 |
| **Total (current build)** | **≈ £4,620/month** |
| **Approved cap (NorthBridge Finance, Gate 1)** | **£7,500/month** |

Figures are indicative Azure Retail Price estimates for the SKUs deployed today; not yet validated against a live billing cycle. **Cost does not yet include Functions or Event Hubs consumption** — both are pending build (H1, H2) and will consume additional headroom within the approved cap once deployed.

### FCA compliance attestation

The platform's security architecture (Managed Identity, private endpoints, Zero Trust, customer-managed keys, Zero Trust underwriter access) is attested as built to design. The platform is **not yet attested as FCA-decision-ready**: the audit trail required to evidence any individual credit decision (H2) and the compute layer that would make one (H1) do not exist yet. **No live applicant data may be processed against this deployment until H1 and H2 are resolved.**

### ISO 27001 / ISO 42001 control mapping (Gate 5 status)

| Control | Gate 3 status (TKA-NB-COMP-001) | Gate 5 status |
|---|---|---|
| ISO 27001 A.9 — Access control | 🟢 GREEN | 🟢 Confirmed as built |
| ISO 27001 A.10 — Cryptography at rest | 🟡 CONDITIONAL (Event Hubs CMK deferred) | 🟡 Unchanged — Event Hubs not yet deployed |
| ISO 27001 A.12.4 — Logging | 🟡 CONDITIONAL | 🟡 Downgraded in practice — native SQL audit only; no decision-level log (H2) |
| ISO 27001 A.13 — Communications security | 🟢 GREEN | 🟢 Confirmed as built |
| ISO 42001 §6.2 — AI impact assessment | 🔴 BLOCKED (BLOCK-03) | 🟢 Resolved — DPO written confirmation on file, ROPA updated |
| ISO 42001 §8.4 — Model transparency | 🟢 GREEN (by design) | ⚪ Not yet testable — no model trained |
| UK GDPR Art 17 vs. WORM (BLOCK-02) | 🔴 BLOCKED | 🟢 Resolved on paper (Art 17(3)(b) exemption confirmed) — 🔴 **not yet implemented** (Blob WORM module absent, H2) |
| UK GDPR Art 22 lawful basis (BLOCK-03) | 🔴 BLOCKED | 🟢 Resolved — documented in ROPA |
| UK GDPR Art 35 DPIA (BLOCK-01) | 🔴 BLOCKED | 🟡 In progress — initiated, completion date on file, not yet complete |

---

## STEP 4 — IP TRANSFER CONFIRMATION

| Item | Status |
|---|---|
| GitHub repository ownership | 🔴 **Not yet transferred.** Repository remains local to the Talastron build environment on `feature/northbridge-credit-scoring-mvp`; no remote is configured. Transfer to a NorthBridge-owned GitHub organisation and admin handover has not been executed. |
| Deployment history and pipeline logs | 🟡 One commit on record (`feat: NorthBridge AI credit re-scoring platform — infrastructure IaC and ADO backlog`). Pipeline run logs to be exported alongside repository transfer. |
| As-built docs indexed to Obsidian Knowledge Base | 🟢 Confirmed — Requirements, Architecture, Compliance, Build, and QA folders all populated. |
| Model lineage registered in Azure ML | ⚪ **Not applicable yet.** No training dataset has been ingested (AMB-01 open) and no model has been trained. Lineage registration occurs automatically at first training run via the AML model registry — will trigger with Responsible AI Dashboard configuration. |

---

## STEP 5 — GATE 5 RECOMMENDATION

**CONDITIONAL.**

Zero Critical findings — the explicit bar for Gate 5 — is met. The security foundation (identity, network isolation, encryption, key management) is genuinely solid and independently confirmed, not assumed. But this is a platform that cannot yet make or audit a single credit decision: the orchestration compute (H1) and the FCA audit trail (H2) remain to be built. Approving this handover as unconditional would be exactly the kind of pass-on-good-intentions this stage exists to prevent.

**Conditions for full Gate 5 closure:**
1. Deploy the re-scoring API (Azure Functions) — resolves H1.
2. Deploy Event Hubs, the audit consumer Function, and apply the Blob WORM lock (now legally clear per BLOCK-02 resolution) — resolves H2.
3. Add Authorization-header redaction to the APIM gateway logging policy before the AISP policy is activated — resolves M1.
4. Restrict or reroute Azure OpenAI `RequestResponse` diagnostics to a governed, access-controlled log destination — resolves M2.
5. Complete the DPIA in progress under BLOCK-01 before first live applicant data is processed.

No live applicant data flows through this platform until conditions 1 and 2 are closed. IP and documentation transfer proceed now; production activation does not.

---

```
TALASTRON KINETIC AI — GATE 5 HANDOVER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Client: NorthBridge Bank
Engagement: TKA-NB-20260702-001
Deployed: UK South · 2 July 2026
WAF Readiness: 70%
Critical findings: 0
High findings: 2
Projected run cost: £4,620/month
Gate 5 status: CONDITIONAL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IP transferred. Factory disconnected.
```

---

*Issued by: Themis — Compliance & QA Agent, Talastron Kinetic AI*
*Engagement ID: TKA-NB-20260702-001*
*Talastron BMAD Pipeline: Stage 5 of 5 — Handover Complete*
*This report is binding. Findings are not advisory.*
