ChatGPT Prompts for Bank Statement Analysis: 12 That Actually Work

Jul 20, 2026

Convert your bank statement to Excel now

PDF, JPG, PNG, BMP, HEIC, TIFF, MT940

Upload your bank statement

The short version: pasting a statement PDF into a chat and asking "analyze this" produces a vague summary and unreliable totals. What works is converting the statement to clean CSV rows first, then asking narrow questions with a stated output format. The twelve prompts below follow that pattern, and each one tells the assistant exactly what columns to use and what shape the answer should take.

The reason this matters is mechanical. An assistant reading a PDF has to transcribe the table before it can reason about it, and any row it misreads silently corrupts every total downstream. Hand it a spreadsheet that already has date, description, amount and balance in separate columns and the transcription problem disappears. You have moved the hard part to a tool built for it and left the assistant doing the part it is genuinely good at.

Get the input right first

Convert the statement to CSV or Excel before you prompt anything. Our bank statement PDF to Excel converter outputs date, description, debit, credit and running balance columns, which is the shape every prompt below assumes. Two checks before you paste: confirm the final balance in the file matches the closing balance printed on the statement, and delete the account number, routing number and address columns. The analysis does not need them, and there are good reasons not to upload them, which we cover in the guide on whether it is safe to upload bank statements to ChatGPT.

1. Categorize every transaction

"Here are bank transactions with date, description and amount. Assign each one a category from this list: payroll, rent, software, travel, meals, utilities, professional fees, bank fees, owner draw, revenue, transfer, other. Return a table with the original columns plus a category column. If a description is ambiguous, mark it 'review' rather than guessing."

The last sentence is what makes this usable. Without it the assistant will confidently categorize things it cannot actually identify, and you will not know which ones. With it you get a short review list instead of silent errors.

2. Total spend by category

"Using the categorized data, total the amount for each category. Sort highest to lowest. Show what percent of total outflow each category represents. Exclude transfers between my own accounts."

Excluding transfers is the fix for the most common complaint about AI spending summaries, which is that the numbers look far too high. Moving money between your own accounts is not spending, but nothing in the description tells the assistant that unless you say so.

3. Find every recurring charge

"Identify subscriptions and recurring payments: any merchant appearing in three or more separate months with a similar amount. Return merchant, typical amount, how many months it appears, and the annualized cost. Sort by annualized cost."

This one pays for itself regularly. Annualizing is what makes it land, because a $89 monthly line reads very differently at $1,068 a year.

4. Spot the price increases

"For each recurring merchant, compare the earliest and most recent amount. List any where the amount increased, showing the old amount, new amount, percent change and the month it changed."

5. Build a monthly cash flow summary

"Group by month. For each month show total money in, total money out, net change, and the closing balance. Present as a table in date order."

Ask for the closing balance explicitly. It gives you a built in check: those figures should match the statements month by month, and if one is off you know the input has a gap.

6. Find bank fees and NSF charges

"List every transaction that looks like a bank fee, overdraft charge, NSF fee, wire fee or monthly maintenance fee. Show date, description, amount, and the total for the period."

Worth running before any loan application. Underwriters read NSF activity as a cash flow warning sign, and it is better to know the count before someone else does. The guide on what underwriters look for in bank statements covers how that gets weighted.

7. Flag possible duplicate payments

"Find transactions with the same merchant and the same amount occurring within seven days of each other. List them side by side as candidate duplicates. Do not assume they are errors, just surface them."

8. Identify large or unusual deposits

"List every deposit larger than [amount]. For each, show date, description, amount, and what percent of that month's total deposits it represents."

Lenders source any single deposit exceeding roughly half of monthly qualifying income, so finding these early tells you which ones you will need documentation for.

9. Summarize a single vendor relationship

"Show every transaction involving [merchant]. Total the amount, show the date range, the number of transactions, and the average payment. Note any months with no payment."

10. Compare two periods

"Compare Q1 to Q2 by category. For each category show both totals, the dollar change and the percent change. Sort by largest absolute dollar change. Call out any category that appeared in one quarter but not the other."

11. Reconstruct a missing receipt list

"List all transactions categorized as meals, travel or software over [amount], with date, merchant and amount, formatted as a checklist. These are the ones I need receipts for."

12. Sanity check the extraction itself

"Check this data for problems: rows with a missing or blank description, gaps of more than [n] days between transactions, amounts that are not numbers, and any point where the running balance does not equal the previous balance plus the current amount. List what you find."

Run this one first, before any analysis prompt. It catches input problems while they are still cheap to fix, and the running balance walk is the strongest single check available, because a balance column only stays correct when every amount feeding it is correct.

Why do ChatGPT bank statement prompts return wrong totals?

Almost always because of the input rather than the prompt. Three causes account for most of it. The statement was a PDF, so rows were transcribed rather than read and some were missed. Transfers between the user's own accounts were counted as spending, inflating every total. Or amounts arrived as text with dollar signs and commas attached, so they were treated as strings instead of numbers. Converting the statement to clean numeric columns first removes all three at once.

Is ChatGPT good enough for bookkeeping?

For exploring and summarizing, it is genuinely useful. For anything that becomes a filed number, it should not be the last step. Assistants do not reliably tell you what they skipped, which is exactly the failure mode that matters in accounting. Use it to categorize, spot patterns and draft the analysis, then verify totals against the statement before anything is posted. If you are running this as a repeatable process rather than a one off, querying the transaction data directly with plain-English questions over your own database is more dependable than re-pasting a spreadsheet into a chat every month.

Turning the prompts into a repeatable process

If you do this monthly, keep the prompts in a file and run them in the same order every time: sanity check, categorize, then whichever analysis you need. Consistency matters more than cleverness here, because the value comes from comparing this month to last month on the same basis. The conversion step is worth automating too. Bookkeepers handling several clients usually start from the converter built for bookkeepers, and if you would rather skip the prompting entirely for categorization, automatic transaction categorization does prompts one and two without a chat window at all.

Ready to convert your bank statement?

Upload a PDF and get clean Excel or CSV in seconds. Works with statements from any bank.

Convert to Excel now

Free to try, no credit card required

From the same family of tools