Build a private spending dashboard from your bank and card CSV exports
Download CSV exports from each bank and card account, put them in one local folder, and ask a coding agent to write a script that loads, cleans and categorises them and builds a dashboard file. Keep the categories in a rules file that you edit, and make every total come from code. Check the totals against your statements before you trust any chart. Public accounts report that the agent is good at matching and charting, but labels many lines wrongly until you give it your own payee rules.
You get a local dashboard of spending by month and category that you can rebuild each month, with totals that match your statements.
- Difficulty
- Intermediate
- Time
- 1-3 hours for the first build, minutes each month after that
- Sources
- 3 · 3 independent
- Updated
- 2026-10-13
- Cost:
- Your agent plan. Bank exports are free.
The prompt
Fill the blanks here, or leave them for your agent to ask. Pick the tab for your agent. The hand-off button gives any agent this page as markdown.
Build me a private spending dashboard. Work only in this folder: [path]. Do not upload my data anywhere, and do not install anything without asking. Inputs (read only, never edit these files): - CSV exports: [bank-checking.csv, card-1.csv, card-2.csv], covering [months]. - Statement totals to check against: [account: total out, total in, for each month]. 1. Write a script (Python or similar) that loads every CSV. Print, for each file, the column names, the row count, the first and last date, and the sums of money in and money out. Every number must come from the code, not from you. 2. STOP. Show me those numbers next to my statement totals and wait for me. 3. Mark lines that are not spending: transfers between my own accounts, credit card payments, refunds. List them and wait for my OK, so nothing is counted twice. 4. Propose a rules file, categories.csv, that maps payee text to a category from this list: [Housing, Groceries, Eating out, Transport, Subscriptions, Health, Shopping, Travel, Other]. Show me the 30 biggest payees and the rule for each. Wait for me to edit and approve it. 5. Apply the rules. Put anything without a rule under "Uncategorised" and list it. Do not guess. 6. Build one local HTML file with charts: spending by month, by category, top payees, and a table I can filter. Show the check totals at the top. 7. Write a short README that explains how to rerun it next month with new CSVs.
Human checkpoints: the agent stops and asks you
- Approve the category rules file before the agent applies it to all transactions.
- Check that the dashboard totals match each statement before you rely on them.
Bank exports hold sensitive data. Keep them in a local folder, and do not give the agent bank logins or payment access. Wrong categories or double-counted transfers give a false picture, so check the totals.
What you need
- CSV exports from each bank and card accountdata
Most banks offer a CSV or OFX download in online banking. Export the same months from every account.
- Your statement totals for the same monthsdata
You use them to check the agent's numbers.
Steps
Export the same months from every account
Download CSV files for the same date range from every checking, savings and card account. Put them in one new folder. Note the total money in and out for each account and month from your statements.
Check: One folder holds one CSV per account, and you have a short list of statement totals.
Load the files with code and check the totals
Paste the prompt. The agent writes a script and prints row counts, date ranges and sums for each file. Compare them with your statements. Different banks use different columns and sign rules (some show spending as negative numbers, some in a separate column), so this is where errors show up.
Check: The printed sums for each file match your statements.
Remove transfers and card payments
A card payment from your checking account and the card purchases it pays for are the same money. Approve the list of lines that the agent marks as not spending.
Check: The list holds only moves between your own accounts and refunds, and no real purchases.
Write your own category rules
Edit the rules file that the agent proposes. A payee to category map that you own works better than letting the model guess each line. One tester reports that without rules, the model put most lines under "other" and labelled bank fees as fuel.
Check: The 30 biggest payees each have a category you agree with.
Build the dashboard and read the uncategorised list
The agent applies the rules and builds a local HTML file. Read the "Uncategorised" list and add rules for anything big. Ask the agent to rerun.
Check: The dashboard opens in your browser, the check totals at the top match your statements, and uncategorised spending is small.
Rerun it each month
Drop next month's CSVs into the folder and run the script, or ask the agent to run it. Add rules for new payees.
Check: The new month appears in the charts and the totals still match.
What goes wrong
The model labels most transactions as "other" or picks odd categories, such as fuel for bank fees.
Fix: Give it a payee to category rules file that you edit, and make it list unmatched lines instead of guessing.
Totals are wrong, or some rows are missing, but the answer sounds certain.
Fix: Make every count and sum come from code, and compare the per-file sums with your statements before you look at charts.
Read the lesson →A long session drifts and the agent forgets earlier rules or repeats work.
Fix: Keep the logic in a script and a rules file, not in the chat. Start a fresh session and point it at the files.
Evidence
Two or more public accounts from different people or sites describe the same job. We summarise each source in our own words. Open the original before you rely on it.
- Hacker News2025-02-27· ChatGPTShow HN: Probly, spreadsheets, Python and AI in the browser (review comment)
The commenter tried an AI spreadsheet tool to build a household budget. He says that when he asked it to group bank transactions, his OpenAI o1 model labelled most lines as "other" and bank charges as "fuel". He plans to feed it a payee to category map first.
librasteve · news.ycombinator.com - Hacker News2026-05-14· Claude CodeClaude for Small Business (comment on Claude Code bookkeeping)
The commenter says he runs Claude Code with his email over IMAP, a read-only bank token and the plain-text tool beancount. He says it finds the invoice for almost every expense and categorises it, and he reviews the accounts himself. A reply says text-based ledgers with git history make the agent's changes easy to review.
arjie · news.ycombinator.com - Hacker News2025-07-22· Custom agentAccountingBench discussion (comment on matching bank CSV lines to invoices)
The commenter says he gave an agent his bank transactions as a CSV and a Gmail connection to match each line to an invoice. He says it worked after about 4 hours, that he could have done it by hand in about an hour, and that context rot forced several restarts.
aussieguy1234 · news.ycombinator.com
- Claude Code overviewchecked 2026-10-13
Report how it went
Every report makes this page better for the next person and the next agent. Reports are reviewed before they count. Agents can report with the report_run tool.
Loading reports…