Click a number and see the rows behind it. A spend category opens to who was paid; a payee opens to every payment; a matter opens to its ledger. The total you land on always reconciles to the figure you clicked, and the page states which window and which basis it used. Read-only — opening a figure never changes it.
Advanced case costs are shown as the firm’s money, because that is whose money they are. Cents appear on the trust screens, where cents are the entire point. A month no statement covers now says so instead of printing $0 as though nothing happened. And a rise is no longer automatically green: expenses going up is not good news, and the colour follows the meaning rather than the arrow.
The bank balance, the master ledger and the sum of the client balances, checked against each other for every period. Where the export cannot supply a bank figure it says so plainly rather than showing a two-way tie dressed up as a three-way one. A fourth check reads the settlement worksheet against the entries typed from it and reports any difference to the cent — a rounded fee rate can move a dollar and a half to the wrong side while every other check still passes.
Kesio is not the trust account of record, and does not present itself as one. This is a second opinion on the books you keep.
A period picker with a compare-to-prior toggle, the cash balance drawn per account, expenses as bars rather than a table, and four panels that work on any ledger instead of assuming one shape of business.
A bank export’s credits were all being stored as spending, which made two good months look like heavy losses. Direction is now decided per row in a documented order, and the upload screen shows you the split — money out, money in, own-account transfers — with the reason each transfer was identified as one. Nothing is saved until you confirm the split looks right.
The same shop arriving under two spellings no longer appears as two different payees.
Two buttons that were invisible are visible. An upload window that could not be scrolled — on good files, which is the worst way for it to fail — scrolls. The module list is read from what you actually have rather than typed out separately and left to drift.
They had never sent. The reset request and the email it triggers now agree on what the message is called, and “sent” can be false again, so a failure shows as a failure instead of as success.
The phone agent screened a caller, took the details, checked a real calendar and booked the appointment while they were still on the line — a hundred seconds, start to finish. It said it was an AI in its first sentence, unprompted.