All guides
AI Workflows

Analyse your bank transactions with AI

A complete, opinionated playbook for turning a year of bank statements into a real CFO-grade dashboard, then asking the right follow-ups. The one prompt, the eleven budget prompts, and the privacy bits nobody mentions.

Alistair Harris
Alistair Harris
May 24, 2026 18 min read
A personal finance dashboard generated by Claude from a CSV of bank transactions, showing the page header, the 5 plain-English headlines, the monthly spending trend chart with anomaly markers, and a category donut chart
The top of the dashboard Claude builds from a single CSV and a single prompt. Headlines, monthly trend, category donut. The rest of this guide is the playbook for getting here, then going further.
Section 01

What this guide gives you

Most people have a vague sense that their money is leaking somewhere. Cards, statements, a banking app that shows the last 30 days as a flat list. The information is all there. It is just not in a shape you can act on.

This guide hands you a 60-second workflow that turns a year of bank transactions into a real finance dashboard, the kind of thing a junior analyst would charge you a week of work for. Then it goes deep on the follow-up prompts that turn that dashboard from a pretty PDF into actual decisions: what to cancel, what to cut, how to hit a real savings goal by a real date.

You will not install anything. You will not write any code. You will not need a spreadsheet. The only inputs are a CSV from your bank and one Claude account.

Who this is for

  • Anyone who has been meaning to "do a proper budget" and keeps not doing it. This is the lowest-friction version that actually produces something usable.
  • Founders and freelancers who mix personal and business spend and need a quick categorisation pass before tax time.
  • Couples or housemates who want a clean split of shared bills versus individual spend without arguing over a spreadsheet.
  • Anyone curious about what their last year of spending actually says about them.

What you need before you start

  • A bank account that lets you export transactions as CSV (every major bank does, the link is just buried).
  • A Claude account. Free tier works for the first dashboard. Pro is worth it if you want longer chats and more follow-up prompts in a single thread.
  • About five minutes to download the CSV, plus five minutes to paste the prompt and read the result.
Section 02

Why Claude and not a budgeting app

The honest answer: budgeting apps are great at tracking, terrible at thinking. They will show you a pie chart. They will not tell you that your November anomaly was a single flight booking plus elevated grocery spend, or that your weekend rideshare is your weakest category, or that the subscription you forgot about is the one bleeding $635 a year.

Claude does that thinking automatically, in plain English, the first time you ask. It reads the CSV, categorises every line, finds the patterns, and writes the dashboard. No Plaid connection, no recurring sync, no "premium tier to unlock insights." It is a one-shot analysis pass on a file you already own.

Where this beats Mint, Monarch, YNAB, etc.

  • No account linking. Your data never leaves the conversation. No third party stores your login.
  • It writes the analysis. Budgeting apps surface the data; they do not narrate it. Claude does both.
  • It answers follow-ups. The dashboard is the start of a conversation, not the end. "What changes if I cut eating out in half?" is one message away.
  • It is free for a first pass. The whole flow runs on Claude's free tier.

Where it loses

  • Not a tracker. If you want a live, always-on view of your money, a budgeting app is the right tool. This is a periodic deep dive, monthly, quarterly, year-end.
  • No bank-side categorisation rules. You re-run the prompt each time, you do not build up a learned model.
  • It can mislabel unusual merchants. "TFL TRAVEL CH" is obviously transport; "PYPL *NEXTDOOR" is anyone's guess. We will deal with that in the follow-ups.
Section 03

Step 1 · Export the CSV from your bank

Every bank exports CSV. The link is rarely on the dashboard, it lives under Statements, Activity, or sometimes Profile. A few quick paths:

  • Monzo: Account → Transactions → three-dot menu → Export. Pick a date range, CSV.
  • Chase: Statements → Manage statements → Download activity. Choose "spreadsheet (CSV)".
  • Starling: Web app → Spending → Statements → Export. CSV.
  • HSBC: Account summary → Statements → Download. Format dropdown → CSV.
  • Wise: Activity → Statement → Download → CSV.
  • Commonwealth Bank (AU): Transactions → Export → Date range → CSV.
  • Revolut: Mobile app → Account → Statement → CSV.

How much history to pull

Twelve months is the sweet spot. Long enough that the monthly-trend line is meaningful, long enough that recurring subscriptions show up clearly, short enough that Claude reads it in seconds. Less than three months is too thin: no real trend, no anomaly detection, no subscription pattern. More than two years works, but the marginal insight per extra month falls off fast.

If your bank caps exports at a shorter window (some do, especially in Europe), pull as many separate windows as you need and concatenate them into a single CSV before uploading. A text editor or Google Sheets will do the merge in 30 seconds. Or upload them separately and tell Claude to merge them.

Cleanup before upload (one minute)

Most exports are usable as-is. Two things to check:

  • The first row should be column headers (Date, Description, Amount, Balance, etc.). If yours has metadata rows at the top, delete them.
  • Sign convention should be consistent. Some banks export debits as positive numbers, some as negative. If yours is mixed (separate debit/credit columns), that is fine, Claude handles both.
Section 04

Step 2 · Open Claude and drop the file in

Go to claude.ai. Start a new chat. Drag the CSV directly into the message box. You will see a small file chip appear above the input, showing the filename and size. That is the attachment, ready to send.

Do not type anything else yet. The prompt comes next, and it is long. You want to paste it cleanly without the file context getting buried by surrounding words.

Which Claude model to use

Use whatever your account defaults to. Opus 4.7 produces the densest dashboard. Sonnet is faster and 90% as good. Haiku will work for the categorisation but the dashboard will feel thinner, save it for follow-up questions in the same chat.

Free vs Pro

  • Free: works for the first dashboard and a handful of follow-ups. You will likely hit the message cap mid-conversation if you go deep on follow-ups.
  • Pro: removes the cap concern, lets you keep the same chat open for days and build on the dashboard over time. Worth it if you are doing this monthly or quarterly.
  • Max / Team: only matters if you are running this for clients or doing multiple finance analyses in parallel.
Section 05

Step 3 · The prompt that does the real work

Paste the following verbatim into the chat. Do not try to shorten it. The length is deliberate, it signals to Claude that what comes back should be a real artifact, not a four-paragraph summary.

text
You're my personal financial analyst. I've attached my bank transaction CSV.

Build me a comprehensive, interactive HTML dashboard. This should feel like a real CFO report, dense, opinionated, beautifully designed.

CATEGORIZE EVERY TRANSACTION
- Groceries, Eating Out, Coffee, Transport (fuel / transit / rideshare separately), Subscriptions & Streaming, Utilities & Bills, Insurance, Health & Wellness, Personal Care, Shopping (clothing / home / electronics), Entertainment, Travel, Gifts & Donations, Cash/ATM, Transfers, Income, Other
- Flag each as recurring or one-off
- Identify probable subscriptions (recurring transactions within 5% of the same amount)
- Split spend into fixed vs variable

ANALYSE
- Monthly trend line with anomalies called out
- Top 10 merchants by total spend AND by frequency
- "Sneaky spend": small frequent purchases that quietly add up (e.g. $4 coffee x 200 times)
- Subscriptions audit: every detected sub, monthly cost, annualised cost, which ones look forgettable
- Day-of-week and time-of-month spending patterns
- Income vs expenses by month
- Savings rate (income minus non-essential spend, divided by income)
- Biggest month-over-month deltas, with my likely reasons

THE DASHBOARD (one self-contained HTML artifact)
- Top: 5 plain-English Headlines, the most surprising or actionable findings, no jargon
- Spending by category, donut chart with hover details
- Monthly trend, line chart with anomaly markers
- Top 10 merchants, bar chart, sorted by spend, toggle to frequency
- Subscriptions table, sortable by annual cost, with a "you might want to cancel" flag column
- Largest 5 one-off expenses, list with date + merchant
- Fixed vs Variable split, stacked bar
- Savings rate, gauge with the $ figure
- Transaction explorer, searchable, filterable table

Use Chart.js (or similar) from CDN. Single beautiful HTML file. Clean typography, one coherent colour palette, generous whitespace.

I'll ask follow-up questions after, drill into specific categories, get budget suggestions, find optimisation targets. Set the dashboard up so it answers obvious next questions before I have to ask.

Hit send. The artifact panel will open on the right and Claude will start building. The first dashboard takes 20 to 40 seconds on Opus, less on Sonnet. Do not refresh; the artifact streams in.

Why this prompt is structured the way it is

  • Three named phases (CATEGORIZE, ANALYSE, THE DASHBOARD) act as scaffolding. Claude treats them as distinct tasks and produces all three rather than skipping to the chart and forgetting the categorisation.
  • Listing the categories explicitly removes variance. Without the list you will get whatever taxonomy Claude defaults to that day, which makes month-over-month comparison messy.
  • Naming the dashboard sections forces structure. A vague "build me a dashboard" produces a single chart and a paragraph. This produces eight components, in order, every time.
  • The last paragraph ("I'll ask follow-up questions after") is the most important sentence in the prompt. It tells Claude to set the dashboard up for iteration, which is the difference between a one-shot artifact and a real analysis surface.
Section 06

Step 4 · What Claude actually builds

A single self-contained HTML artifact, roughly 1500 to 2500 lines of code, opens in the side panel. You can scroll, hover, sort, search. The structure below is what every run produces, in roughly this order.

The 5 headlines

Top of the page. Five plain-English findings, the most surprising or actionable things in your data. This section alone is worth the prompt: it pre-answers the question "what should I actually care about?"

A 5-headline summary at the top of the dashboard, each headline numbered, calling out coffee habit cost, forgotten subscriptions, weekend spending, the highest-spend month, and the current savings rate
The 5 headlines. Numbered, prose-first, naming dollar figures and specific merchants. This is the part you screenshot and send to your partner.

Spending by category (donut)

A doughnut chart with the eighteen categories from the prompt. Hover for the dollar figure and percentage share. The interesting thing here is usually not the biggest slice (probably groceries), it is the third or fourth slice, which is almost always larger than people expect.

A doughnut chart breaking annual spend into nine categories: Groceries, Eating Out, Subscriptions, Transport, Shopping, Utilities, Health, Travel, Other
The category donut. The colour palette is consistent across the whole dashboard.

Monthly trend with anomalies

Twelve-month line chart of spending, with the income line overlaid as a dashed reference. Anomaly months (significantly above or below the rolling average) are marked with a filled dot rather than an outline. Hover for the breakdown of what drove the anomaly.

A monthly trend line chart with anomaly markers on November (highest spend) and February (lowest spend), with the income line shown as a dashed horizontal reference
The monthly trend. Filled dots are anomaly months, the dashed line is the income reference.

Top 10 merchants by spend

A horizontal bar chart, sorted by total spend. There is usually a toggle to switch to frequency view (most-visited rather than most-spent), which uncovers a different story, the cafe you go to twice a week shows up here even though no single transaction was large.

A horizontal bar chart showing the top 10 merchants by total annual spend
Top 10 merchants by spend. Toggle to frequency to see most-visited.

Subscriptions audit

Every recurring transaction Claude detected, with monthly cost, annualised cost, and a flag column. Sorted by annual cost by default, so the biggest bleeders are at the top. The flag is the column to read first, "probably cancel" and "low engagement" are the action items.

A subscriptions audit table showing 11 detected services with monthly cost, annualised cost, and a flag column with values like "Probably cancel", "Low engagement", "Used weekly", "Essential", and "Review"
The subscriptions audit. The flag column is the one to read first.

Savings rate gauge

A half-gauge showing your savings rate as a percentage, with the absolute dollar figure underneath. 20% is the rule-of-thumb target; below 10% is a flag; above 30% is unusual and almost always means you are running a household with two incomes on the account.

A half-gauge chart showing a savings rate of 14.2 percent with the absolute dollar amount saved over the period
Savings rate gauge. The rule of thumb is 20%; below 10% is a flag.

Transaction explorer

A searchable, filterable table at the bottom containing every transaction. Use it for sanity-checking, did Claude really categorise that as "Coffee" or did it count the Saturday brunch as well? Click a column header to sort. Type in the search to find a specific merchant.

A transaction explorer table with search bar and filter chips for All, Income, Subscriptions, >$100, Recurring, and Last 30 days; underneath, a sample of rows showing date, merchant, category, type, and amount
The explorer. Useful for spot-checking categorisation and finding specific transactions.
Section 07

Privacy and what to know before you upload

You are uploading a year of your spending to a third-party AI. Three things to know, and one thing to consider.

What Anthropic actually sees

  • The CSV is read into the conversation context. On Anthropic's consumer plans (Free, Pro, Max), conversation content is not used to train models by default, and you can confirm or change this in Settings → Privacy.
  • On Team and Enterprise plans, training opt-out is the default.
  • The file is stored alongside the conversation. Delete the conversation when you are done if you want the file gone too.

What to anonymise before uploading

For most personal accounts, nothing. A list of merchant names and amounts is not particularly sensitive. For joint or business accounts, or if you are paranoid:

  • Find-and-replace any personal payee names (rent payments to a landlord, transfers to family) with generic labels ("RENT", "FAMILY_TRANSFER"). The dashboard still works; only the names change.
  • Strip account numbers and sort codes if your bank embeds them in the Description field. Most do not. Some European banks do.
  • If the file came from a business account and contains client names, do not upload it to a personal Claude account. Use a Team or Enterprise workspace, or strip the names first.

One thing to consider

The dashboard is rendered inside Claude's artifact panel. If you screenshot it for a video, a tweet, or a blog post, the screenshot contains real merchant names and real dollar amounts. Decide whether that is fine before you publish. The dashboard in this guide is built on synthetic data for exactly this reason.

Section 08

The budget playbook · 11 follow-up prompts that actually move money

The dashboard is the start, not the end. Once it is rendered, the same chat can answer almost anything you ask, because Claude already has the full transaction history loaded into context. The next eleven prompts are the ones I run, grouped by what you are trying to do.

Paste them verbatim. Each one is calibrated to produce a structured, actionable response rather than a wall of prose. They are also designed to chain, the output of one is often a useful input to the next.

1. Find the three biggest wins fast

Use this when you want a quick, prioritised action list before you commit to a real budget. This is the prompt I always start with.

text
What are my top three variable expenses where I could realistically save money, ranked by likely monthly savings? Ignore fixed bills, focus on behaviour I could change. For each one tell me roughly how much I'd save per month and what specifically to cut versus keep.
A Claude chat reply with three ranked categories (Eating Out, Coffee runs, Rideshare under $20), each showing realistic monthly savings, the underlying data, and a recommended change
A real reply to prompt #1. The pattern: rank by impact, show the data, recommend the specific change.

2. Set a real goal with a real deadline

Goals are the single biggest unlock. A "save more" prompt produces vague advice; a "save $10k for a car by year-end" prompt produces a budget. Replace the goal and deadline with yours.

text
I want to buy a $10,000 car by the end of the year. What do I need to change to afford it?

Show me a category-by-category budget: current monthly spend, target monthly spend, and monthly saving. Total it. Tell me if I will hit the goal on the current trajectory, and if not, what additional cuts close the gap. Order the cuts from least painful to most.
A Claude budget breakdown showing current and target monthly spend across six categories, with the gap between trajectory and goal calculated and two suggestions for closing the gap
A real reply to prompt #2. Notice the trajectory math at the bottom, that is what makes the budget actionable.

3. Cancel the subscriptions you forgot about

text
Look at my subscriptions audit. Rank them by "least used per dollar spent". For each one in the bottom half of the list, give me:
- The merchant
- Annual cost
- The last time I appear to have used it (if there's any signal in the data)
- A one-line script I can paste into a cancellation email or chat

Skip anything I clearly use (Spotify, Netflix). Focus on the ones I'm probably paying for and forgetting.

4. Model the "what if I cut X in half" question

For when you want to know whether the painful change is worth it before you actually make it.

text
If I cut my eating-out spend in half starting today, what does my savings rate become and what's the year-end impact? Also show me the trade-off in absolute terms, e.g. how many restaurant meals I'm giving up per month.

5. Find duplicates and possible fraud

Genuinely useful. Banks miss a surprising amount of small duplicate charges. Run this at least once.

text
Look at every transaction. Flag anything that might be a duplicate charge, an accidental double-tap, or a subscription that started silently. Also flag anything that looks unusual for me, a merchant I've never used before, a country I don't usually transact in, an amount that doesn't match the pattern of that merchant.

For each flag give me: date, merchant, amount, and the specific reason it caught your attention.

6. Plan a no-spend weekend

text
Build me a "no-spend weekend" plan. Use my data to find: which categories I'm weakest on Saturdays and Sundays, what I usually spend money on then, and three specific alternatives that match my interests (also inferred from the data, e.g. if I buy a lot of running gear, suggest a long run).

Give me a Saturday-morning-to-Sunday-night schedule that costs $0.

7. Pull out business expenses for tax

For freelancers and side-hustlers running everything through one account. Replace the categories with whatever your tax authority uses.

text
Pull out every transaction that looks like a business expense. Group them by the standard self-employed tax categories: Software, Office Supplies, Travel, Meals (50%), Phone, Internet, Professional Services, Equipment, Other.

Output a table per category with date, merchant, amount, and a one-line note on why it qualifies. Total each category. At the bottom, flag anything ambiguous that I should review manually before claiming.

8. Split shared spend between two people

text
Two people share this account: me (everything in the data is mine by default) and my partner. Split the spend into:
- Shared bills (rent, utilities, groceries, joint subscriptions)
- Mine
- Theirs (anything that looks like partner-only spend, e.g. specific salons, gyms, hobbies)
- Joint (date nights, holidays, gifts to each other)

If you can't tell, ask me. At the end give me a summary table of who owes who what for the period.

9. Drill into a specific merchant

When the dashboard surfaces something surprising and you want to understand it.

text
Show me everything about my spend at <MERCHANT NAME> over the period: every transaction (date, amount, day of week, time if available), total spend, average per visit, busiest month, longest gap. Also tell me whether the spend pattern looks like a habit, a binge, or a slow drift up.

10. Optimise a debt payoff

Only run this if you have an actual balance to pay down. The dashboard sees the spending; you tell it the debt.

text
I have $4,800 on a credit card at 21% APR. Using my spending data, build me the fastest realistic payoff plan. Categories I can cut, in order of least painful to most, with the dollar contribution each one makes to the monthly payoff. Tell me the total months to zero on three scenarios: minimum payment, "easy" cuts only, and "aggressive" cuts.

11. The monthly review prompt

For after you have done this once and want to compare against last month. Re-run the original dashboard prompt on the new CSV in a fresh chat first, then paste this in:

text
Compare this month's dashboard to last month's. Specifically tell me:
- Total spend delta and what drove it
- Any new merchants I started using
- Any categories that moved more than 15% in either direction
- Whether my savings rate went up, down, or held
- One thing I should celebrate, and one thing I should pay attention to next month
Section 09

Five mistakes that ruin the result

  1. Uploading three months of data and expecting a useful trend. The whole point of "monthly trend" is having enough months to see a trend. Twelve. Always.
  2. Trying to type the prompt instead of pasting it. Paste from a saved text file. Typing introduces mistakes that change the shape of the output, and the on-camera-ness of typing is not worth the loss of fidelity.
  3. Treating the dashboard as the answer. The dashboard is the question generator. The follow-ups are where the money actually moves. Run at least three from the playbook above before you call it done.
  4. Re-prompting when a follow-up would do. If the dashboard is mostly right but the savings rate calculation looks wrong, do not re-run the whole prompt. Ask: "Recalculate the savings rate using your existing categorisation but excluding pension contributions from non-essential spend." One message, fixed.
  5. Skipping the duplicates/fraud sweep. It takes 30 seconds and catches real money, recurring charges from services you cancelled, duplicate restaurant bills from a flaky terminal. Run it once per year minimum.
Section 10

Three variations worth knowing

Same workflow, slightly different prompt, different outputs. Use these when the headline dashboard is not the shape you need.

Subscription audit only (3-minute run)

When you just want to know what you are paying for and which ones to cancel. Skip the full dashboard.

text
Find every recurring subscription in this CSV. Build a single table sorted by annual cost, with columns: service, monthly cost, annual cost, first seen, last seen, and a "cancel / keep / review" recommendation. At the end, total the annual cost of everything in the "cancel" pile.

Tax prep, deep version

For when you actually need a year-end pack you can hand to an accountant.

text
This is my full business account for the financial year. Categorise every transaction into the standard self-employed tax categories for <YOUR COUNTRY>. For each category produce:
- A line-item table (date, merchant, amount, brief justification)
- A category total
- An "evidence needed" column flagging anything where I should hold on to the receipt

At the end produce a single summary table of all category totals, plus a "review pile" of ambiguous transactions I need to classify manually. Format the whole thing as a printable HTML artifact I can save and send to my accountant.

Couples / household split

For joint accounts where both partners want a clean breakdown without arguing over a spreadsheet.

text
Two people share this account: <NAME A> and <NAME B>. Split every transaction into:
- Joint (shared bills, shared groceries, joint subscriptions)
- <NAME A> only (anything that's clearly <A>'s personal spend)
- <NAME B> only
- Ambiguous (ask me to label)

Build me a settlement table: total spent in each bucket, expected 50/50 split of joint spend, and the actual amount one partner owes the other for the period. Include a small "rules I assumed" panel at the top so we can correct the categorisation if I disagree.
Section 11

Where to go from here

Three things, in order, if you have not done this before:

  1. Run the headline workflow once. Pull 12 months, paste the prompt, look at the dashboard. Do not skip to the follow-ups. The dashboard is the shared context for everything that comes after.
  2. Run prompts 1, 3, and 5 from the budget playbook. The three-cuts prompt to set priorities, the subscription audit to find the easy wins, the fraud sweep to catch the small leaks. That is roughly $200 to $500 of recoverable spend for most people on a first pass.
  3. Pick a real goal and run prompt 2. A savings target, a debt payoff, a holiday, a piece of equipment, a car. The moment the model is solving a real problem, the playbook stops being an exercise and becomes a budget you will actually follow.

Set a recurring calendar event to run the monthly-review prompt on the first of each month. Twelve minutes of work; compounds for years.

Section 12

Further reading

  • Anthropic: Working with files in Claude (support.claude.com)
  • Anthropic: Privacy and data usage on consumer plans (anthropic.com/privacy)
  • Claude Artifacts overview (support.claude.com, "What are artifacts")
  • The 60-second short version of this workflow on YouTube @alistairinai