Kofi E. Ampaabeng
All work
Architect & Delivery LeadProduction

RSS / rss-next — Regulatory Returns Framework

A config-driven framework that lets banks define, generate, and submit regulatory returns — new return = new config, not code. In production across Ghana and South Africa.

  • Spring Boot 3.5
  • Java 21
  • React / TanStack
  • XBRL
  • OpenShift

What it is

RSS automates statistical returns generation and submission to the Bank of Ghana for banks and financial institutions. Live since 2019 (originated at my prior startup, Excenit; now under Cape Wesley), deployed to production including air-gapped bank sites.

Deployed client base

The proof the multi-tenant, multi-jurisdiction design works is that it runs in production for real institutions across two countries:

  • Fidelity Bank (Ghana)
  • Izwe Savings & Loans (South Africa & Ghana)
  • ASA International
  • Sinapi Aba Savings & Loans
  • Adehyeman Savings & Loans
  • Ghana Revenue Authority Co-operative Credit Union

rss-next — the brilliantly simple core

After years of pain with the code-first predecessor, the architecture I settled on is configuration-driven. A regulator's Excel template is scanned once into a JSON TemplateConfig — the single source of truth — and a generic engine drives everything downstream: validation, mapping, generation, and submission.

  • New regulator or return = new config, not code. No per-return Java, no rebuild, no redeploy.
  • Pluggable data sources — GL balance, warehouse field, XBRL fact, constant, formula — resolved by a strategy registry with no engine branching (add a source type = one class).
  • Two-pass execution — non-formula cells first, then formulas that reference them, Excel-style.
  • CBS-agnostic — XBRL is the connecting channel; core-banking systems (FlexCube, T24, CWC Banking) emit XBRL to the framework rather than the framework reaching into each one. Adding a core-banking system is a stored proc + an emitter config, not a Java class. Proven at exact cell parity against the legacy platform.

Delivery

Spring Boot 3.5 / Java 21 with a React/TanStack front end; maker-checker submission workflow; one 12-factor config deploys to Docker, Podman, and OpenShift; air-gap-capable; per-tenant connection isolation.