Xero’s AI codes the books. The errors are still yours to find. Every transaction arrives with written reasoning, a confidence tier and a risk flag. You decide.
The demo needs no account. Watch the 2-minute demo
Bank transactions are categorised: each receives an account code, a confidence percentage and a status chip. One, a scaffold hire invoice, needs review; its reasoning drawer opens with two sentences of reasoning and three fired risk rules.
A scripted replay of the real components. Hover to pause. Arrow keys switch scenes.
How a review goes
Every uncategorised transaction gets a proposed account code, a confidence score and written reasoning. The firm’s own categorised transactions are retrieved as precedents, so proposals follow how this practice codes, not a generic chart.
Precedents come from pgvector, scoped to the organisation
The reasoning, which model made the call (Haiku 5.5, escalated to Sonnet 5.5 when uncertain) and a risk flag from eight plain-language rules: unusual amount, unseen vendor, odd timing. Approve, correct or reject; corrections become future precedents.
Eight risk rules and one audit row for every decision
Unreconciled bank transactions are matched to invoice and payment records on amount, date and description, with scored candidates; ambiguous matches go to review. A management letter is drafted from the actual figures.
Three scores per candidate, letter figures taken from the ledger
A Next.js app on Vercel talks to a FastAPI service on Railway. Categorisation and reconciliation are LangGraph graphs that call Claude through one gateway with structured outputs, so each answer is validated before it is stored. Postgres holds the books, the pgvector precedents and the audit log.
Open the demo, or connect a Xero organisation.