Skip to main content
SoloPrompt AI
All posts
Bookkeeping·June 2, 2026·9 min read·By SoloPromptAI Editorial

5 Copy-and-Paste AI Prompts to Clean Up Messy Bookkeeping Spreadsheets

Five battle-tested ChatGPT prompts that turn chaotic freelancer bookkeeping spreadsheets into clean, accountant-ready data in minutes — no formulas required.

If you run a one-person business, your bookkeeping spreadsheet probably looks like a crime scene: duplicate rows, inconsistent date formats, vendor names spelled four different ways, and a 'Misc' category doing way too much heavy lifting. The good news — you don't need a bookkeeper or a new app. Five well-crafted AI prompts can do most of the cleanup work for you. Here they are, in the order you should run them.

What you'll need before you start

  • Your transactions exported as CSV (Google Sheets → File → Download → CSV).
  • Any LLM with a chat interface — ChatGPT free, Claude free, or Gemini all work.
  • About 20 minutes of focused time once a month.

Tip: redact account numbers and full card numbers before pasting. The prompts below only need date, description, and amount columns to work.

Prompt 1 — Normalize vendor names

'AMZN Mktp', 'Amazon.com*A1B2C', and 'AMAZON DIGITAL' are all the same vendor. This prompt collapses them so your reports stop double-counting.

text
You are a meticulous bookkeeping assistant specializing in data normalization.

Variables:
- Transaction data: {{PASTE_CSV}}

REQUIRED STRUCTURE — return ONLY a CSV with columns: date, description, amount, vendor:
1. Strip transaction IDs, store numbers, and city codes from each description.
2. Collapse known variants to a single canonical name (e.g. "AMZN Mktp", "Amazon.com*A1B2C" → "Amazon").
3. Title-case every vendor name.
4. If the vendor cannot be determined, set vendor to "Unknown" — do not guess.

Tone: no commentary, no explanations. Output the CSV only.

Prompt 2 — Standardize dates and amounts

Mixed formats like 5/3/26, 2026-03-05, and 'Mar 5' break every pivot table. This prompt forces ISO dates and signed numeric amounts.

text
You are a data-cleaning assistant for financial spreadsheets.

Variables:
- Transaction data: {{PASTE_CSV}}

REQUIRED STRUCTURE — return the cleaned CSV first, then any unparseable rows under a "## Skipped" heading with a reason for each:
1. Convert every date to ISO 8601 format (YYYY-MM-DD). Assume US format (M/D/Y) when ambiguous.
2. Convert every amount to a signed decimal with 2 decimal places. Debits negative, credits positive.
3. Remove all currency symbols and thousands separators.
4. Drop any row where date or amount cannot be parsed and list it in the Skipped section.

Tone: no explanations, output only. Length: cleaned CSV followed by Skipped section.
Laptop screen showing a clean financial spreadsheet with charts and aligned columns.
Standardized dates and amounts are the unsung prerequisite — every pivot table breaks without them.

Prompt 3 — Auto-categorize transactions

This is the workhorse. It assigns every row to a fixed category list so your end-of-year totals actually mean something. Pair it with our full walkthrough in the

Categorize a Year of Business Expenses with One Prompt guide for the multi-pass version.

text
You are a bookkeeping assistant for a sole trader.

Variables:
- Transaction data: {{PASTE_CSV}}

REQUIRED STRUCTURE — assign each row to exactly one category and return a CSV with columns: date, vendor, amount, category, confidence:
1. Choose ONE category from: Software, Marketing, Travel, Meals, Office, Contractors, Bank Fees, Personal, Income, Uncategorized.
2. Use "Personal" for anything that looks non-business (groceries, streaming services, etc.).
3. Use "Uncategorized" only when truly unclear — do not guess.
4. Set confidence to: high, medium, or low based on how certain the assignment is.

Tone: no commentary. Return the CSV only with a header row.

Prompt 4 — Detect duplicates and suspicious rows

text
You are a data-quality auditor for small-business bookkeeping.

Variables:
- Transaction data: {{PASTE_CSV}}

REQUIRED STRUCTURE — return a markdown table with columns: row_number, issue_type, reason, suggested_action.
Flag every row matching ANY of these patterns:
1. Exact duplicate — same date, vendor, and amount as another row.
2. Near-duplicate — same vendor and amount appearing within 2 days of another row.
3. Suspicious round number — amount over $500 with a vague or missing description.
4. Category mismatch — negative amount in an income category, or positive amount in an expense category.

Tone: clinical, no reassurance. Omit rows that are clean.

Prompt 5 — Generate a month-end summary

Once the data is clean, this final prompt gives you a one-glance financial snapshot you can send to yourself, your accountant, or your future self at tax time.

text
You are a financial reporting assistant for a sole trader.

Variables:
- Reporting period: {{MONTH_YEAR}}
- Transaction data: {{PASTE_CSV}}

REQUIRED STRUCTURE — produce a month-end summary in clean markdown with headings:
1. Totals — total income, total expenses, net profit.
2. Top 5 expense categories ranked by dollar amount.
3. Top 3 vendors by total spend.
4. Month-over-month anomalies — include only if prior-month data is also provided.
5. A 2-sentence plain-English commentary suitable to forward directly to an accountant.

Tone: concise, professional, no filler. Length: as short as the data allows.
Notebook with handwritten monthly summary numbers next to a calculator and pen.
A clean month-end summary is the artifact your future self (and your accountant) will actually thank you for.

Which LLM should you use for each prompt?

PromptBest free modelWhy
1. Normalize vendorsChatGPT (GPT-4o-mini)Strong pattern matching on short strings
2. Standardize datesClaude HaikuStrict instruction-following on formatting
3. CategorizeChatGPT (GPT-4o-mini)Best balance of speed + accuracy
4. Detect duplicatesClaude HaikuBetter at multi-condition logic
5. Month-end summaryGemini FlashLong context + clean markdown output

Putting it all together — the 20-minute monthly ritual

  • Export last month's transactions as CSV (2 min).
  • Run Prompt 1 → paste output back as input for Prompt 2 (5 min).
  • Run Prompt 3 on the standardized data, then Prompt 4 to catch issues (8 min).
  • Run Prompt 5 on the final cleaned data and save the summary in your records (5 min).

Want to automate this entire chain so it runs by itself? See our guide on automating invoice reminders with Zapier — the same pattern works for piping CSVs through an LLM on a schedule.

Frequently asked questions

Strip account numbers, card numbers, and personal addresses first. The prompts only need date, description, and amount. For maximum privacy, run a local model with Ollama or use Claude with 'Do not train on my data' enabled in settings.

Found this useful?

Browse more free workflows — no signup, no paywall.

SoloPromptAI creates practical tools and guides for getting clearer, more useful results from AI—without the prompt-engineering theater.