About
Everything else — the app, the card, the branch — is an interface onto that ledger. We built the ledger first.
currencies held and settled
unexplained cents, ever
ledger invariants asserted continuously
source of truth: the ledger
Money is an integer. Every balance in ICB is held in whole minor units — cents, pesewas, pence. No floating point touches a figure that belongs to a customer, because floating point loses fractions and a bank that loses fractions is a bank that cannot be reconciled.
Double entry or it did not happen. Every movement is two balanced postings. There is no balance column to overwrite and no code path that can change a balance without also recording where the value came from.
Postings are immutable. Nothing is edited and nothing is deleted. A correction is a new, reversing transaction, and both remain on your statement. That is not an inconvenience — it is the only honest account of what happened.
Every figure carries its basis.A rate without “AER” or “representative APR” beside it is decoration. We put the basis next to the number, including where the number is less flattering.
Errors say what to do next. A declined payment tells you which limit was hit and by how much. A held transfer tells you which rule fired. A reference number with no explanation is not customer service.
The core is a double-entry ledger running on a MongoDB replica set, because multi-document ACID transactions are not optional when a single transfer writes a transaction header, its postings and its balance updates. Concurrent postings against one account retry rather than drop — the behaviour that matters most on payday.
Six invariants are asserted on demand and at the end of every business day: every transaction balances per currency, the whole ledger nets to zero per currency, cached balances match what the entries compute, available balance never exceeds ledger balance, the suspense account is zero, and no account is negative without an agreed overdraft. If any one fails, we know before you do.
Your session token never reaches your browser. The dashboard renders on the server and holds your credentials in an encrypted cookie only the server can open, so a script injected into the page has nothing to steal.
The people accountable for the decisions described above. Each owns their area by name.
Chief Executive
Founded ICB on a simple conviction: a bank is a ledger with a licence, and the ledger comes first. Two decades in core banking and payments before that.
Chief Technology Officer
Owns the double-entry core and the six invariants asserted against it every business day. Previously built settlement systems for a central securities depository.
Chief Financial Officer
Runs treasury, capital and the reconciliation desk. Will not sign a set of accounts in which a single minor unit is unexplained, and has not had to.
Chief Risk Officer
Owns credit, market and operational risk, and the rule engine whose every decision is shown to the customer it affects, in plain language.
Chief Customer Officer
Owns support, complaints and the eight-week resolution clock. Measures success by how rarely anyone needs to contact us twice about the same thing.
General Counsel
Owns legal, compliance and the plain-language programme that keeps our terms readable. A contract nobody can read is a contract nobody agreed to.
A bank’s footprint is mostly the lending it makes and the power it buys. Our commitments cover both, and the reporting to check them against.