Bank reconciliations and journal-entry review are two of the highest-leverage uses of AI in a closing cycle. Today you build prompt patterns that surface period-cut errors, duplicate postings, and unusual debits — without ever inventing a number.
By the end of this lesson you will have two production-ready prompt templates: one that compares a bank statement against a GL cash account and surfaces every reconciling item with a confidence score, and one that reviews a journal-entry register for misclassifications, period-end cut-off issues, and unusual debits or credits. You will also know the AICPA AU-C 240 fraud-risk red flags that AI catches reliably and the ones it misses.
A bank reconciliation has three inputs: the bank statement, the general ledger cash account activity, and the prior-month reconciling items. The output is a list of reconciling items at month-end. AI handles the comparison step very well — it is fast at matching transactions across two lists by amount and date — but only if you frame the work correctly.
The wrong way to prompt: "reconcile this account." The model will give you a confident summary that may or may not be accurate, and you have no way to audit it. The right way to prompt: force the model to output a row-level reconciliation table that you can tie back to source documents.
# Bank reconciliation prompt — Claude
You are reconciling a single GL cash account against a bank
statement for the period 2025-12-01 through 2025-12-31. The
beginning balance per bank was $148,202.14 and the ending
balance per bank was $171,558.92. The GL ending balance was
$169,883.47.
I will paste the bank statement first (BANK), then the GL
activity (GL). Both are sorted by date.
Produce a single Markdown table with these columns:
| Date | Amount | Description (BANK) | Description (GL) | Match | Notes |
For each row, "Match" is one of:
- MATCHED (same date ±2 days, same amount, plausible description)
- BANK_ONLY (in bank, not in GL — likely outstanding deposit or auto-debit)
- GL_ONLY (in GL, not in bank — likely outstanding check)
- AMOUNT_MISMATCH (close date, different amount — flag for review)
Do not invent rows. Do not modify amounts. If you are unsure
about a match, output AMOUNT_MISMATCH and explain in Notes.
After the table, list the reconciling items and verify the
math: GL ending + BANK_ONLY (debits) - BANK_ONLY (credits)
- GL_ONLY (debits) + GL_ONLY (credits) should equal the
bank ending balance. If it does not, say so explicitly.
BANK:
[paste]
GL:
[paste]
This pattern works because every claim the model makes is auditable in the table. You can spot-check ten rows in two minutes and have high confidence in the whole thing. Compare that to a summary paragraph that requires you to redo the work to verify it.
AICPA AU-C 240 (Consideration of Fraud in a Financial Statement Audit) requires the auditor to test journal entries and other adjustments for evidence of management override. Even outside an audit, this is a smart lens for any controller or CFO reviewing the GL each month. AI is excellent at scanning thousands of entries for the patterns AU-C 240 calls out.
The AU-C 240 patterns worth scanning for are: entries posted to seldom-used accounts, entries by users who do not normally post, round-dollar entries (especially at period-end), entries posted on weekends or after hours, entries with no description or a generic description ("adjustment," "to true up"), entries posted on the last day of the period, and entries that reverse early in the next period.
# JE review prompt — AU-C 240 patterns
You are a senior auditor reviewing the journal-entry register
for the month ended 2025-12-31. The fields are:
je_id, post_date, post_time, posted_by, debit_account,
credit_account, amount, description, source
For every entry, score it on each of these AU-C 240 factors
(0 = not present, 1 = present):
F1: posted_by is unusual (not the standard staff accountant)
F2: post_time is outside business hours (before 7am or after 7pm)
F3: post_date is the last 2 business days of the period
F4: amount is a round dollar (multiple of $1,000)
F5: description is missing, blank, or generic
F6: debit or credit account is "Revenue", "Equity",
"Reserve", or "Other Income"
F7: source is "manual" rather than a sub-ledger feed
Output a Markdown table with je_id, total_score, the flags,
and a one-sentence reviewer comment. Sort by total_score
descending. Do not summarize. Do not skip rows. If you cannot
score a row because a field is missing, output "INSUFFICIENT_DATA"
in the comment.
Register:
[paste]
The reason this prompt works is that it converts subjective judgment into a checklist. The AICPA expects auditors and reviewers to apply judgment, but judgment in the absence of structure is just guessing. The seven factors above are the structure. The model applies them mechanically; you apply the judgment to the highest-scored entries.
AI catches reliably: numerical anomalies, pattern violations, missing-field flags, period-cut errors, and obvious miscoding (rent posted to revenue, for example). AI misses reliably: context that requires knowing the client's business (a $4,000 entry to "Director Travel" looks unremarkable until you remember the client has no directors), entries that are individually plausible but collectively suspicious (a series of just-under-threshold entries), and entries where the description is polished but the underlying transaction never occurred.
Use AI for the volume, then apply your own knowledge of the client to the top of the list. This split is the right division of labor and matches how AICPA QMS guidance contemplates the use of automated tools — the technology produces the candidate items, the licensed professional exercises judgment.
Save the inputs (redacted), the prompt, the output, and your follow-up notes to a single PDF or workpaper file. Cross-reference each flagged entry to your client communication or supporting documentation. If the engagement is a SSARS 25 review or compilation, the workpaper standards under AR-C 90 still apply — and AI-generated content does not change them.
For SOC 1 / SOC 2 environments where you are testing controls around journal-entry approval, an AI-assisted review is a complement to the control test, not a replacement. The control test confirms the approval workflow operated; the AI review confirms the entries that came out of it look reasonable.
Before moving to Day 3, you should be able to answer: