Audit Friendly MODERN ACCOUNTING
EXPLAINER

AI FOR ACCOUNTANTS · PART 6 OF 16

Prompt patterns for reconciliations: ask for exceptions, not summaries

 

The model is better at spotting what does not match than at telling you what does - structure your prompt accordingly.

Most accountants who try an LLM on a reconciliation ask the wrong question. They paste in two lists and ask for a summary, and they get one - fluent, confident, and almost useless. The model will tell you that the bank statement and the general ledger both show activity in the same general range, when what you actually need is a list of every item on one side that has no counterpart on the other, net of a tolerance you specify.

The mechanism worth understanding is this: a language model is a next-token predictor, which means it is very good at pattern completion and very bad at guaranteeing exhaustive enumeration on its own. When you ask for a summary, you are asking it to do what it does naturally - produce a coherent narrative from the material. When you ask for exceptions, you are asking it to behave more like a lookup table: for each row in list A, find the matching row in list B within a given tolerance, and surface only the rows where no match exists. That second task is harder for the model but far more useful for you. The prompt structure is what forces the behavior.

A concrete example helps. Suppose you have a vendor subledger export and a statement from the vendor, both covering the month just ended. The subledger has 140 line items; the vendor statement has 137. You do not want the model to tell you both lists total to roughly the same figure. You want it to return the specific invoice numbers present in one list but absent from the other, and any item where the amounts differ by more than your materiality threshold - say, five dollars on a single line. The prompt that produces that output looks nothing like a question. It looks like an instruction set: here is list A, here is list B, the matching key is invoice number, the tolerance is five dollars, return only unmatched items and amount variances that exceed the tolerance, formatted as a table with a column for the source list.

The tolerance specification is the part most practitioners omit, and it is the part that matters most. Without it, the model will either flag every rounding difference - producing noise - or smooth over small discrepancies in its narrative - producing false comfort. Stating the rule explicitly (match on this key, flag differences above this threshold, ignore differences at or below it) converts an open-ended generation task into something closer to a structured filter. The model still cannot guarantee it caught every case the way a formula in a spreadsheet can, so a human check on the output is not optional. But you will be reviewing a short list of genuine candidates rather than a wall of text.

The practical change is small but specific: before you paste any data, write the matching rule and the tolerance as explicit instructions at the top of the prompt, then tell the model the output format you want. Ask for exceptions only - not a narrative, not a count, not a summary. If the reconciliation has a second pass (confirming that the exceptions you investigate are actually cleared), prompt that as a separate step with the updated data, not as a follow-up in the same thread where the model may conflate the original and corrected lists. Emburse's AP and payments solution, built for growing organizations, is one of several tools positioning AI at the transaction-matching layer - but the prompt discipline described here applies regardless of which platform you are working in.

WORKED EXAMPLE

In practice

A vendor subledger export and a vendor statement for the month just ended, both as pasted plain-text tables. The subledger has 140 rows; the vendor statement has 137. The matching key is invoice number; materiality threshold is five dollars per line.

THE PROMPT
Below are two lists. List A is our vendor subledger for the month just ended. List B is the vendor statement for the same period. The matching key is the invoice number column. A match is valid when the invoice numbers are identical and the amounts differ by five dollars or less. Return only: (1) invoice numbers present in List A but absent from List B, (2) invoice numbers present in List B but absent from List A, (3) invoice numbers present in both lists where the amounts differ by more than five dollars. Format the output as a table with columns: Invoice Number, Source List, Our Amount, Vendor Amount, Difference. Do not summarize. Do not explain matched items.

What came back. The model returned a nine-row table. Seven rows were genuine unmatched invoices - three on the subledger side, four on the vendor side. Two rows showed the same invoice number on both sides with an amount variance above the threshold. One of the three subledger-only items turned out to be a duplicate entry the model had missed because the invoice numbers differed by a transposed digit; that required a manual scan of the source data to catch.

How it was checked. The practitioner sorted both original lists by invoice number in a spreadsheet and used a COUNTIF column to confirm that every item flagged by the model was genuinely unmatched, and that the transposed-digit duplicate did not appear in the model's output.

A constructed example. The prompt is usable as written; the figures show the shape of a result, not a measured one.

WHEN TO USE IT

 
Two exported lists share a common key - invoice number, transaction ID, or account code.
 
You need a first-pass exception list before opening the reconciliation workpaper.
 
Your tolerance rule is simple enough to state in one sentence.
 
The list is short enough to paste in full without hitting context limits.

WHEN NOT TO

 
Lists exceed a few hundred rows - enumeration gaps become more likely at scale.
 
The matching logic involves fuzzy name matching or date ranges without a clean key.
 
The output will be relied on without any human verification step.
The pitfall: The model skips near-duplicate rows with transposed digits or minor formatting differences in the key field. You notice when your cleared count does not match the open-items total.

WHAT TO TAKE FROM THIS

 
State the matching key, tolerance threshold, and output format before pasting any data.
 
Ask for unmatched items only - summaries bury the exceptions you actually need to review.
 
Run the cleared-items check as a fresh prompt, not a follow-up in the same thread.
FREE, EVERY WEEK
Get the next explainer in your inbox
Tuesdays: one Build with AI workflow with the prompt, the steps and the verification rule. Thursdays: the explainer and the week's tools.

SPONSORED

Gusto: full-service payroll that posts clean journal entries to your ledger
Federal, state and local filing in all 50 states, native two-way sync to QuickBooks Online and Xero, and published per-employee pricing with no contract. Audit Friendly scored it 74/100 in a fact-checked review; we earn a referral fee if you sign up, and the score is not affected.

QUESTIONS THIS ANSWERS

Can an LLM replace a spreadsheet VLOOKUP for reconciliations?

Not reliably for large lists. A formula guarantees exhaustive row-by-row checking; a language model does not. Use the LLM to draft the exception list quickly, then verify the output against your source data before signing off.

What should I include in a reconciliation prompt?

The two lists, the matching key (invoice number, transaction ID, etc.), the dollar tolerance, and an explicit instruction to return only unmatched items and out-of-tolerance variances - formatted as a table, not a paragraph.

Why does asking for a summary produce bad results on a reconciliation?

A summary prompt lets the model do what it does naturally - generate a coherent narrative - which tends to smooth over discrepancies. An exceptions prompt forces it to flag specific rows that fail the matching rule you gave it.

SOURCES

Where this comes from

Read the insights wire →

What the accounting job market is actually asking for.

GO DEEPER

Go deeper

Skills that pay → Which named tools move the number
Software in postings → Every tool ranked by live demand
AF Stack Designer → Design your accounting stack in ten minutes
The insights wire → Cross-dataset findings, refreshed hourly
Accounting and finance job board → The Audit Friendly job board, every posting verified live

IN THIS SERIES

Previously: What human in the loop means in an audit file

Next: How to evaluate an AI feature before it touches client data (coming)

An explainer, not a study: it carries no statistics on purpose. Examples are illustrative.

How accountants are using AI, automation and smarter workflows to close faster, audit cleaner, and free up time for real work.

Accounting Stack · Audit Friendly Data · Accounting & Finance Jobs

Audit Friendly · modernaccounting.ai