Automatic coding is not one feature. It is four tiers.
On this market, "automatic invoice coding" means the software looks at how you coded the same line from the same supplier before. For us that is tier one of four — and measured, it covers a little over half of the lines. Three more tiers handle the rest.
This page is more technical than the rest of the site. It is here because the difference between us and the alternatives is not in the slogan — it is in what happens when the simple rule has no answer. Every number below was measured on a real company history, not estimated.
Four tiers that run in sequence
The tiers run one after another and their results are merged into one list. Each tier answers the question the previous one left open. Measured on a healthcare customer’s history (time-split: learn from the past, test against 39,781 lines of the following year), the bottleneck is clear — it is not accuracy, it is coverage.
- 1
Exact history match
54.8% of linesSame supplier, same description
The strongest possible evidence: this exact line has been coded exactly this way before. Measured, it covers 54.8% of the lines in a new period and 76.8% of those are right. This single tier is what elsewhere is called automatic coding — and its capability ends here.
- 2
Fuzzy text match
25–40 ms, no AI neededSame line, different month in the text
"Kitchen groceries 05/2026" is the same line as "Kitchen groceries" to a human. Not to an equals sign. A trigram search over a database index matches them with no AI call at all — the answer arrives in milliseconds and it still works when the AI service is down.
- 3
Semantically similar line
synonyms and rewordingsDifferent words, same thing
"Food supplies for the kitchen" and "Groceries from the corner store" share no common word, yet mean the same cost. A vector search over your own history finds the rewordings and synonyms that text comparison cannot see by design.
- 4
Language model
on our own hardwareThe AI steps in when the others stay silent
The model runs on our own GPUs, not in a public cloud AI. Its suggestion is always marked weaker than a historical match and it has a confidence ceiling it cannot exceed, however sure it sounds. The user sees the difference plainly: "From history" is evidence, "AI suggestion" is a guess.
The tiers are not fallbacks for each other — they are a coverage extension. And none of them may take the whole assistant down: if the vector search or the model is unreachable, that tier is simply skipped. A broken assistant would be worse than no assistant.
Every suggestion carries its evidence
A black box is worthless to an accountant. If the system proposes an account, you must be able to read WHY — otherwise you either trust it blindly or check everything by hand, and in both cases the automation gains you little.
How many and when
"47 previous lines from the same supplier with the same description were coded this way, last on 14.05.2026." A count and a date, not just a confidence percentage.
From which invoices
Each suggestion lists sample invoices — document number and date. You can go and check whether that history was right.
How certain, and on what basis
The tier is visible as a label. For the language model the label is deliberately "Model confidence", not "Confidence" — the model does not know, it proposes.
An empty answer is not an error
"No match found in history" is a normal answer on nearly half the lines and is not shown in red. An invented suggestion would be worse than honest silence.
Where automation has to stop
The difference is not only in how much the system fills in, but also in where it deliberately takes its hands off. Two places where ours does — both measured, not assumed.
Every third purchase invoice line is not an expense
Measured across 179,369 purchase invoice lines: 69% go to expenses, but 30% go to inventory and the rest to fixed assets. An inventory line needs an article, a quantity and a warehouse, and it creates a stock movement; a fixed asset line needs an asset card. If the system simply filled in an account on such a line, you would get a ledger entry with no stock movement and no asset card — a silent breach of inventory accounting, discovered only at stocktaking. Ours recognises such a line and refuses one-click application: it routes you into the correct flow.
The cost centre stays with the human
In one company we measured how well a cost centre can be predicted from the supplier: 68%. That number is not a law — it belongs to that company. For one supplier the cost centre is unambiguous, for another it says nothing, and in project-based business the target keeps moving: the same service from the same supplier goes to one open project this month and to another the next. The cost centre does not come from the invoice but from context the invoice does not carry. So we do not write it in ourselves: we propose it with its evidence and let a person confirm. A wrong cost centre is a silent error that surfaces only at the budget review.
Approval ring: a baton, not an inbox
The quality of an approval ring is not in how many buttons it has. It is in whether every action hands the decision on to someone. In our model a workflow action is exactly the thing that passes the baton — and no exit from the chain may be a loose end: every exit has to name a successor.
The ring is not a purchase-invoice feature
Services that specialise in approval rings usually cover two things: the purchase invoice and the expense report. For them the ring is the product. For us it is a cross-cutting mechanism that does not know what kind of document it is handling — same engine, same actions, same audit trail. Which is why things go through it that would never reach a separate approval tool.
- Money
- Purchase invoice · a single coding line · expense report and its lines · sales contract
- Employment
- Employment contract · contract amendment (also as a batch the employer signs with one PIN)
- From self-service
- Twelve application types: holiday · business trip · training · external training · overtime agreement · bonus request · use of a personal car · additional activity · end-of-probation review · request to the finance department · resignation · free-form application
The last one makes the biggest difference: a free-form application means that an action with no dedicated form — a clearance sheet, a sign-off, a one-off exception — gets the same approval chain, deadline and audit trail. With no development request and no e-mail that disappears into somebody’s inbox.
Actions that pass the baton
- →Approve — the baton moves to the next stage
- →Add approver — I stay, the chain grows
- →Reassign — I name a successor and step out
- →Reject — a rare, reason-mandatory end
- →Recall — the initiator withdraws what they sent
- →For information — a step that does not decide but must see
And what is NOT a workflow action
A comment, a clarifying question or a content fix does not pause the ring — the ring is already waiting for the approver. Making them separate "states" would have created a situation where a document sits behind someone without anyone knowing behind whom.
What surrounds the ring
Deadline in plain sight
Every step has a deadline, from the template or by default. The approver sees how much time is left and the initiator sees where the invoice stands.
Waiting room — where is this one invoice
A supplier calls and asks why an invoice is unpaid. A document-centric view shows immediately: the invoice has not reached you yet, it is stuck behind an earlier stage. And you can nudge whoever is holding it, right there.
Substitutes
A person on holiday has a substitute who receives the rights without anyone rebuilding the workflow template.
Approval by digital signature
Where a step requires it, approval is a qualified e-signature with ID-card, Smart-ID or Mobile-ID — not a mere button press.
Coding inside the ring
An approver is not just yes or no — they can correct a line and split the cost inside the ring. The final coding is owned by the last approver.
Immutable audit trail
Every step, comment and reassignment stays on the timeline together with the IP address. Including what was not done.
AI that does not send your invoices anywhere
Everything described above — reading invoices, coding suggestions, the assistant — runs on our own GPUs. No invoice, payroll line or customer name goes to a cloud AI service. This is not a setting someone can flip the wrong way by accident: that connection simply does not exist.
- ✓An invoice is read even as a phone photo or a scanned PDF — same vision model, same checks
- ✓The supplier is looked up in the register, the IBAN is verified, the buyer is verified — exactly the same on an invoice that arrived as an image
- ✓The coding engine learns from your own company history, not from other customers’
- ✓The AI proposes, a human confirms — no suggestion reaches the ledger unreviewed
And the evidence that this actually works
All of the above is a promise until someone checks. We check by deliberately injecting faults into the code and seeing whether the tests kill them — that is mutation testing, and on money-critical paths it is a gate for us, not an exercise.
See the security and quality evidenceTry it yourself, no sign-up
On the demo page you can upload a real invoice and see what the AI reads from it.