Every periodic obligation written down: what it is, who it goes to, on what cycle, and where its data comes from.
Regulatory Reporting Engine
A registry of every periodic return a bank owes. The engine pulls the data, builds each report against the mandated template, then schedules and submits it behind a maker-checker step.
What it was like before
A bank owes a great many periodic returns, to more than one authority, on different cycles and in different templates. The knowledge of which return is due when, and where its data comes from, tends to live with the people who have always done it.
That is a continuity risk before it is an efficiency one. The question is not only whether a return goes out on time, but whether anyone other than its usual author could produce it.
The registry is the deliverable
The automation is worth less than the list it runs on.
| Return | Authority | Cycle | Next due | State |
|---|---|---|---|---|
| Currency transactions | FMU | Daily | 01 Oct | Submitted |
| Statement of affairs | Regulator | Monthly | 07 Oct | Awaiting checker |
| Deposit classification | Regulator | Monthly | 10 Oct | Building |
| Sectoral advances | Regulator | Quarterly | 15 Oct | Data missing |
| Foreign exchange position | Regulator | Weekly | 03 Oct | Submitted |
What it does
The engine collects from the systems that hold the numbers rather than from a prepared spreadsheet.
Each return is built against its mandated template, which is a thing that can be changed without changing the engine.
The cycle is the system's responsibility, not a calendar reminder.
A person prepares, a different person approves. The control is in the flow rather than beside it.
What was produced, from what data, approved by whom, and submitted when.
In production
A registry is the actual deliverable
The automation is worth less than the list it runs on. Writing down all fifty-odd returns — what each one is, when it is due, where its data comes from — is the part that survives a change of staff.
Several institutions we have met can produce their returns reliably and cannot produce that list. The engine is the easy half.
Tech stack
- Next.js
- React
- Prisma
- PostgreSQL
- SQL Server
- AWS S3
- Tailwind CSS
Delivered under Compliance & RegTech Automation and Custom Software Development.
Other things we have built.
Sanctions Screening Agent
Watchlist alerts arrive all day and most are false matches. The agent clears the obvious ones against a rule engine backed by an LLM and sends every disagreement to a person with the evidence already assembled.
Read itLaw-Enforcement Request Intake
Requests arrive as letters with scanned attachments. The agent reads the mailbox, OCRs the attachments, verifies identifiers against core banking, classifies the intent and routes it — with an audit trail behind every step.
Read itInternal Policy Assistant
Staff ask a policy question in plain language and get an answer drawn strictly from approved documents, with the source named. Nothing leaves the bank, and the assistant says so when the documents do not answer.
Read itCTR to goAML Conversion
A compliance team spent hours a week turning Currency Transaction Reports into goAML XML by hand. Parser, XML builder, schema validator and audit trail, behind a interface officers actually use.
Read itAutonomous Social Media Agent
A ReAct loop that researches, reads its own history to avoid repeating itself, writes a strategy memo, critiques its own drafts, publishes, and learns from every rejection.
Read itMulti-Agent Marketing System
Two agents on one platform with a person approving everything before it ships. One researches and takes a position; the other plans a week of posts reviewed as a batch.
Read itWhatsApp Booking Agent
Patients book on the number a clinic already advertises, at any hour, in the language they normally write. Only genuinely free slots are offered, and anything clinical goes to a person immediately.
Read itHave something like this?
Describe the process and we will come back with whether it is worth automating, roughly what it would take, and what we would build first — or tell you plainly if it is not a job for us.