OmniFlow
Cross-border vendor billing and shipment ledger.
A ledger for goods and money moving across borders, modelled on a whiteboard before a single screen existed.
- $18M
- Value settled monthly
- 0 since launch
- Reconciliation errors
- 27
- Countries
How it started
It began as a conversation, not a brief.
A logistics operator was reconciling shipments against vendor invoices by hand, in three currencies, at the end of every month. We did not start with screens. We spent the first weeks mapping the events — a shipment leaves, a fee is charged, a rate moves, a payout clears — until the model could explain every number on their existing statements. The screens came after that, and they were easy.
What we did
- Domain modelling
- Compliance review
- Interface design
- Production engineering
Product decisions
What to build, and just as importantly what to leave out.
Every shipment, fee and payout in one ledger, reconciled across currencies and ready for an audit at any moment.
The model came first
Because every movement of value is a recorded event rather than a field being edited, no number on the platform has ever needed a manual correction. That decision was made before any interface was designed.
Made for the person closing the month
The interface is built around reconciliation rather than data entry: what matched, what did not, and what needs a human decision — in that order, on one screen.
Audit as a normal state
Any figure can be opened down to the events that produced it, at any point in time. Nobody prepares for an audit here; the platform is always in that state.
How it is built
The part nobody sees, which is the part that has to hold.
The same engineers who designed this still run it. Here is how it is put together and why we made those calls.
Double-entry, enforced by the database
Entries balance or the transaction does not commit. Rules live in the data layer, so no future feature can quietly write an unbalanced record.
Currency handled honestly
Amounts are stored in minor units with the rate and timestamp used, so a historical figure never changes because a rate moved afterwards.
Scheduled work you can trust
Reconciliation, statements and payouts run as idempotent scheduled jobs. A retry can never double-post, and every run leaves a record of what it did.
- Integrity
- Balanced entries enforced at write time
- History
- Full event trail behind every figure
- Recovery
- Point-in-time restore, tested
- Support
- Month-end runs watched by us
Where it is now
What it does for the people using it.
- Around $18M settles through it each month across 27 countries.
- No reconciliation error has needed a manual correction since launch.
- Month-end went from a week of spreadsheets to a review of exceptions.
Building something like this?
Bring us the idea, or bring us what you already have.
We can build it with you from nothing, or look at what exists today and tell you what to fix, what to build next and what to leave out.