Finnx · Reconciliation and transaction categorization · 2025 to 2026
An AI that refuses to guess
Context and stakes
Reconciliation is tedious and unforgiving in the same breath. An accountant at a mid sized company works through a pile of transactions and receipts, deciding where each one belongs, and the cost of a misfiled entry is not felt until an audit surfaces it months later.
The obvious fix is automation. The obvious risk is that a system which automates categorization also automates being wrong, quietly and at volume. Finnx took a specific position on that. The product was not built on a large language model. The reasoning underneath could not generate an answer it had no support for, which meant abstention was an architectural property rather than an instruction we hoped the model would follow.
That decision handed me an unusual design problem. Most AI interface work is about communicating confidence. This was about designing what happens when the system declines.
My role
Sole designer for a year, with the title of Chief Experience Officer. I owned the conversational interface end to end: how the system explained what it had done, how it asked for help, and what an accountant met at every point where the machine stopped being useful. I co-built the working front end with the CTO, so the design was written in code and running against the real system rather than specified and handed off.
Before any of that, we interviewed accountants to find where reconciliation actually slowed down. The blockers were rarely the volume of transactions. They were the ambiguous ones, the handful in a batch that needed a person to look directly at them.
The failure mode was not a wrong answer. It was refusal. The design problem was making refusal read as competence instead of breakage.
What I built or changed
Chat was the surface. The assistant was called Edith, and every one of the system’s states had to work as something Edith could say out loud. There is nowhere to hide an ambiguous confidence indicator in a sentence. I designed a three step escalation so that uncertainty had somewhere to go other than a shrug.
Confident action
When the system could stand behind a categorization, it acted and reported in a single line. It did this, it moved to the next item. No ceremony and no forced approval on work the user did not need to supervise. In a conversation, the length of a message is a claim about how much attention it deserves, and most of these deserved very little.
-
Accountant
How did the March batch land?
-
Edith
38 of 41 categorized. Meridian Paper Co., $412.60, filed to Office supplies.
Show the trail
-
Feed string
MERIDIAN PAPER CO 4471resolved to Meridian Paper Co. - Receipt 4471 attached; line items reconcile to the full amount.
- 14 prior transactions with this vendor, all filed to Office supplies, none corrected.
- Amount inside the vendor’s established range of $180 to $890.
-
Sources:
receipt-4471.pdf, bank feed line 2214, vendor record MPC-0031.
-
Feed string
-
Edith
Three need you.
Disambiguation
When several answers were defensible and none clearly won, the system surfaced its candidates and asked. Here is what I am weighing. Which of these is right. This rung does most of the work, because it turns the system’s uncertainty into a question a person can answer in two seconds rather than a task they have to redo from scratch.
-
Edith
Harbourline Systems, $2,480.00. Two categorizations hold up and I cannot separate them.
Which one?
-
Accountant
Professional services. The subscription starts next month.
-
Edith
Filed. I will ask again when the billing pattern changes.
Handoff
When there was genuinely no supportable answer, the system said so plainly, showed the item, and stopped. Not an error state. A statement of what it could not resolve and why it was declining to guess.
-
Edith
Castlereagh Holdings, $9,150.00. I am not categorizing this one.
No prior transactions with this vendor, no receipt attached, and the memo reads Q1 settlement, which does not map to anything in your chart of accounts. There is no answer here I can support.
- Date
- 14 March
- Vendor
- Castlereagh Holdings
- Amount
- $9,150.00
- Account
- Operating 4402
- Memo
- Q1 settlement
- Documents
- None
It is flagged and waiting for you.
The trail underneath
Underneath all three sat a complete evidence trail. The default was one line, because an accountant working through hundreds of items does not want a paragraph per transaction. Every line opened into the full path the system had taken, down to links to the source documents. Complete provenance on demand, invisible until wanted.
It also had a front door of its own. The audit trail was a browsable, searchable log of the system’s own actions, one row per step, twenty-one pages of them for a single quarter: entries parsed, balances validated, ledger entries indexed for traceability, profit and loss totals cross checked against the general ledger, material variances flagged, duplicates detected. Each row is a completed action with a date, and each one could be opened into a conversation about that action alone. The accountant asks what was done and what was not, and the answer stays scoped to that step.
The requirement I held to was that the trail report the actions themselves rather than a plausible account of them written afterwards. That is the same property as abstention, seen from the other side. A system that cannot invent a categorization it has no support for also cannot invent the story of how it got there.
That trail was not a transparency feature. It was the product working. Reconciliation gets audited, and an audit asks how a decision was reached. A system that can only produce conclusions is a system whose output has to be reconstructed by hand later, which returns the tedium the product existed to remove.
The screenshots are from the working product. The three exchanges are reconstructions: the interaction design in them is what shipped, the transactions and vendor names are invented. I can walk through the prototype in an interview setting.
Outcomes and open threads
The prototype was functioning, not a static mockup. It was pitched to funders in the United States and Singapore. The abstention model was what the room responded to, because fabrication was the thing they were already afraid of.
Smaller funding came in. The larger round we needed to reach market did not, and the company closed in August 2026.
So there are no adoption numbers here and I am not going to invent proxies for them. What exists is a design position that survived a year of contact with real accountants, a real system, and rooms full of people whose job was to find the hole in it.