Finally, a job it is actually built for
Here is the good news you have been waiting two lessons for. Categorising bank descriptions is a language problem wearing a finance costume, and language problems are what these tools are for.
A bank export is a wall of shouty abbreviations. Somebody has to read "SQ *THE COFFEE HO LONDON GB CARD 4471" and decide whether that is staff welfare, client entertaining or the director buying a flat white on the way to the office. That decision needs pattern recognition across thousands of half-remembered merchant names, which is precisely the thing a language model does well and precisely the thing that turns your Tuesday into a slow grey smear.
So use it. Carefully, with four rules, and never on autopilot.
In plain English
- Batch:
- A chunk of rows you hand over at once. Smaller batches mean fewer dropped rows and easier checking.
- Confidence flag:
- You asking the tool to mark how sure it is. Useful for sorting your review, not a measurement of anything real.
- Auto-post:
- Letting software write entries into the ledger with no human approval. Do not do this from a chat tool.
- Spot check:
- Verifying a small sample of the confident answers, because confidence and correctness are not the same thing.
Rule one: give it your actual chart of accounts
Left to itself, the tool will invent categories. It will produce Office Supplies, Miscellaneous Expenses and Business Costs, none of which exist in your client's ledger, and you will spend longer mapping its inventions onto reality than you would have spent doing the job by hand.
Paste your real category list. The exact names, and the codes if you use them. Then say plainly that nothing outside the list is allowed.
You are helping me categorise bank transaction descriptions.
These are the ONLY categories you may use. Use the exact names as written:
[paste your chart of accounts, one per line, with codes if you use them]
Rules:
- Never invent a category. If nothing fits, use UNSURE.
- If a description is ambiguous between two categories, use UNSURE
and name both candidates. Do not pick the more likely one.
- Do not change, reformat or reorder the descriptions.
- Return a table with four columns: original description,
category, UNSURE yes or no, and a short reason.
Here are the transactions:
[paste them]
Rule two: demand UNSURE instead of a guess
This is the change that makes the whole technique safe, and it is one word.
By default these tools guess. They are built to produce an answer, and an answer is what you will get, delivered in exactly the same confident tone whether the merchant is obvious or completely opaque. A guess dressed as a classification is worse than no classification at all, because a blank cell gets reviewed and a filled cell does not.
So make refusal an option and make it explicit. "If you are not confident, write UNSURE" turns the tool from something that hides its uncertainty into something that hands you a review queue.
โ Weak prompt
Prompt
Categorise these bank transactions into expense categories.
Output
A neat, complete table. Every row categorised. AMZN MKTP filed as Office Supplies, PAYPAL *TRANSFER filed as Subscriptions, three obscure entries filed as General Expenses.
Completeness is the trap. PayPal transfers could be anything and Amazon sells everything from paper clips to laptops that should be capitalised. Nothing here tells you which rows were guesses.
โ Good prompt
Prompt
Categorise these against my chart of accounts, exact names only. If a description is ambiguous or you are not confident, write UNSURE and name the candidate categories. Never guess. Add a one-line reason for every row.
Output
A table where 62 rows are categorised with reasons and 11 are marked UNSURE, including every PayPal transfer and both Amazon purchases over a thousand.
Now you have a review queue instead of a false sense of completion. Eleven rows to look at is a ten minute job, and the other 62 come with reasons you can scan.
Ask for the reason column even on the confident rows. Scanning 60 short reasons takes two minutes and catches the row where the logic was right but the category name was wrong.
Rule three: review every UNSURE, spot check the confident ones
The UNSURE rows are not the risk. You are already looking at those. The risk lives in the rows it was sure about, because those are the ones you are tempted to wave through.
So take a sample of the confident rows and actually check them. Ten rows out of a hundred, chosen deliberately rather than randomly: the largest amounts, anything that might be capital rather than revenue, anything with VAT implications, any category that suddenly has far more entries than usual, and anything from a merchant name you do not recognise.
If your sample is clean, the batch is probably fine. If two of your ten are wrong, stop, fix the prompt or the category list, and run it again. Do not patch individual rows and carry on, because whatever caused those two errors is still sitting in the other ninety.
From the table you just produced, list for me:
- The 10 largest amounts and the category you gave each.
- Every row where the amount is over [1000], whatever the category.
- Any category that has more than [15] rows in it.
- Any merchant or description that appears with two different categories.
Do not re-categorise anything. I am reviewing your work, not asking you to redo it.
Item four is the quiet winner. The same merchant landing in two different categories in the same batch is either a genuine judgment call or an inconsistency, and either way you want to see it.
Checkpoint
Your chart of accounts, UNSURE instead of guessing, every UNSURE reviewed, and a deliberate sample of the confident rows. Four habits, roughly fifteen minutes, on a job that used to take an afternoon.
Rule four: it never posts
No output from a chat tool goes straight into a ledger. Not through an import, not through a copy and paste into a bulk update screen, not through an automation somebody set up cleverly six months ago.
Every categorisation is a proposal. You approve it. That approval is the control, and it is the only thing standing between a plausible-looking classification and a set of accounts that quietly stopped being right in March.
Nothing in this lesson is professional or tax advice, and it makes no claim about what your jurisdiction, regulator or professional body requires of you. Categorisation drives tax treatment and disclosure, and those obligations are yours. And remember: do not paste identifiable client data into a consumer AI tool unless your firm has approved that tool for it. Redact merchant references, account numbers and anything client-identifying first.
One more prompt: teach it your quirks
Every client has habits. The director who uses the business card for the school run. The supplier whose name changed but whose bank reference did not. Write those rules down once and paste them in every time.
Before categorising, apply these client-specific rules,
which override your normal reasoning:
- Anything from [merchant] is always [category].
- Anything containing [reference text] is always [category].
- Any purchase over [amount] is UNSURE, even if the category looks obvious,
because I need to consider whether it should be capitalised.
- Anything on a weekend from [card] is UNSURE.
- [add your own]
Now categorise the transactions below under those rules
plus the chart of accounts I gave you.
That third rule is a small thing that saves a large embarrassment. A laptop bought on a card looks exactly like stationery bought on a card, right up until the audit.
๐ Quiz
Question 1 of 4Why should you paste in your actual chart of accounts?