Financial services & fintech

Money systems are judged on the day they are wrong.

A payments platform that reconciles perfectly for eleven months and is out by four hundred pounds in December has not had a good year. Financial software is not graded on its average behaviour. It is graded on the worst hour it has ever had, by a regulator, in retrospect, with the ledger in front of them.

What buyers here open with

“Can you catch the fraud without blocking real customers, and prove both to an auditor?”

TIMESTAMP AMOUNT RISK EXPECTED LOSS 08:14:02 £ 1,240.00 0.02 08:14:09 £ 89.50 0.01 08:14:11 £ 12,900.00 0.94 £12,126 08:14:16 £ 310.00 0.06 08:14:22 £ 4,050.00 0.71 £2,875 08:14:27 £ 22.15 0.03 QUEUE RANKS BY THIS SCORED INLINE, ON THE LIVE STREAM, IN UNDER 40 MILLISECONDS A QUEUE ORDERED BY ARRIVAL REVIEWS THE CHEAP ONES FIRST.
$2M Annual fraud loss removed for a payments start-up

The pressure

Four forces acting on every money system.

01

Fraud moves faster than rules

Every new pattern means a developer writing another rule, and by the time it ships the pattern has moved. Rules engines are always fighting the last attack.

02

Real-time expectations

Settlement used to be a batch job. Customers now expect the money to move while they are looking at the screen, which removes the window you used to reconcile in.

03

Regulatory surface

PCI DSS, KYC, AML, PSD2, SOC 2. Each one is survivable. The cost is carrying all of them at once in a codebase that also has to ship features.

04

Legacy cores

The system of record is often decades old, well understood by three people, and cannot be replaced in one move without betting the business on it.

The work

What we build for financial institutions

Four systems, each of which has to be correct on its worst day rather than its average one.

Fraud and risk scoring

Models that run inline against the live transaction stream, with a review queue ranked by expected loss rather than by arrival time.

Payment and settlement rails

Idempotent, reconcilable, and correct under retry. The hard part is never the happy path, it is the duplicate write at 2am.

Regulatory reporting

Reports generated from the ledger rather than assembled by hand in a spreadsheet the week they are due.

Core modernisation

Replacing a legacy core in slices, each one covered by tests and reversible, rather than a rewrite with a launch date and no way back.

The reconciliation test

Five failures we deliberately cause before you go live.

Any payment system works when the network behaves. These are the conditions we introduce on purpose, in a staging environment, because production will introduce them without asking.

01
Duplicate delivery

The same webhook, twice

A provider retries a callback the system already processed. The correct outcome is one ledger entry and an acknowledged duplicate, not two charges and a support ticket.

02
Partition

The database is unreachable mid-transaction

The write succeeded, the confirmation never arrived. On recovery the system must be able to determine which, without a human reading logs.

03
Clock skew

Two services disagree about now

Ordering by wall clock across machines is a bug waiting for a leap second. We test that sequence survives disagreement.

04
Partial settlement

The batch half-lands

Four hundred of a thousand movements clear. The reconciliation has to identify the six hundred precisely, not report a mismatched total.

05
Replay under load

A day is reprocessed at volume

Reprocessing a historic day must produce the identical ledger. If it does not, the ledger was never the source of truth.

Non-negotiable

What the ledger has to be able to prove

Reconciliation to the cent
Every movement traceable to its source event. If the ledger and the bank disagree, the system must be able to say exactly where and when.
Idempotency everywhere
Retries, webhooks and network partitions are normal. A payment system that can double-charge under load is not finished.
Explainable decisions
When you decline a transaction you may have to justify it. A score with no reasoning attached is a liability, not a feature.
Immutable audit
Append-only records of who changed what. Not a table anyone can update, which is what most systems actually have.

Where AI actually lands

Four places it earns its cost, and one line we do not cross.

Worth doing

  • Fraud scoring, where the pattern shifts faster than anyone can write rules and the cost of a miss is measurable to the penny.
  • Anti-money-laundering triage, cutting a false-positive rate that currently consumes most of your analysts.
  • Document handling in onboarding, where the work is high volume, well specified and dull.
  • Reconciliation exceptions, matching the awkward five percent that break the automated rules.

Where we stop

Anything that moves money without a human in the loop, and anything whose decision you cannot reconstruct. Both fail the same test: an auditor asks why, and "the model said so" is not an answer that ends the conversation.

Evidence

A payments start-up losing money to fraud faster than its analysts could review flagged transactions. Inline scoring, a queue ranked by expected loss, and two million dollars a year that stopped leaving.

Read the case study
Analytics dashboard displayed on a laptop screen

Next step

Talk to the engineer who would run your build.

No discovery call with a salesperson, no deck. A senior engineer reads what you send and replies with a real assessment, including when we think you shouldn’t build it.

Tell us what you’re building

We reply within one business day. No sales sequence, no newsletter.

Certified, partnered and awarded