The problem
Trades were reconciled by hand in Excel, then typed in again, separately, for SEC Nigeria, FMDQ, NGX and CBN.
I found it in discovery with an operations team at an investment firm. No tool was built for Nigerian regulatory formats. So we built Brinlow at Gethsemane Tech: one workspace where a file comes in, gets matched, and leaves as a filing the regulator will accept, with every number traceable to the trade it came from.
- No spreadsheet pipelines
- Every number traceable
What I asked first
The questions that shaped Brinlow, each answered in the product.
- What counts as a match? Trades, positions and cash each compare on their own fields. Exact matches first, then within the tolerance the team sets for dates, quantities, prices and amounts.
- What if one entry meets several? A match can be one to one, one to many or many to many, so one ledger line can meet several statement lines.
- What should a break tell you? Which of 15 kinds it is, the exact field that differs, who owns it, and a suggested fix.
- Can a filed report change? No. Once submitted or filed, it's locked. A change is an amendment: a new version, with a reason, linked back to the original.
- Who can file? Analysts reconcile and prepare. Only compliance or an admin can submit, file or amend.
- How does the data come in? As the files ops already receive, in CSV, Excel, PDF or JSON. Map the columns once, then reuse the template every day.
How it runs
- Start
- Code
- Check
- Person
- Result
Ingest
01, Trigger:
Upload the source files
Ops team
CSCS, custodian, broker and bank files, plus the ledger.
Normalize
02, Code:
Map and validate
Mapping template
Map once, reuse. Bad rows named by number and reason.
Reconcile
03, Logic:
Match
Reconciliation engine
Trades, positions and cash. Exact first, then within tolerance.
04, Human:
Resolve the breaks
Analyst
Each names the field that differs and who owns it.
Report
05, Code:
Generate the report
Report templates
SEC Nigeria, FMDQ, NGX or CBN, from reconciled data.
06, Output:
Submit and file
Compliance
Filed reports lock. Every number traces to its trade.
Then: step 5 (amend).
Enforced, not requested
- Filed means final A submitted or filed report can't be edited. Changes are amendments.
- Every amendment has a reason And a version number, a link to the original, and a diff against any version before it.
- Money is exact Amounts, prices and quantities are compared as exact decimals, never approximations.
- Every number traces back From the filed report to the trade it came from.
- Bad rows are named Validation problems show the row number and the reason, not a buried error.
- Separation of duties Analysts prepare. Only compliance or an admin can submit, file or amend.
- Same data, same answer A rerun matches the same way, whatever order the records arrive in.
- Every break keeps its history Assigned, investigated, resolved or reopened, each step is on the record.
In numbers
4
regulators' report formats, built from reconciled data: SEC Nigeria, FMDQ, NGX and CBN
15
kinds of break, each named with the field that differs
5
kinds of source file: CSCS statements, custodian reports, broker confirmations, bank statements and the internal ledger
5
instrument types, from NGX equities to Treasury bills and commercial paper
3
match shapes: one to one, one to many, many to many
14
days free to try it, no card needed
Counted from the product itself.
What it refuses to do
- Edit a filed report Every change is a versioned amendment.
- Let an analyst file Filing is for compliance or an admin.
- Keep a row it can't read It's flagged with its row number and the reason.
- Lose a break's history Who owned it, what they found and how it was resolved stay on the record.
What I took from it
In capital markets, being right isn't enough. You have to prove it, line by line, when the regulator asks.
