Problem
Financial advisors often charge fees based on a percentage of your portfolio or superannuation balance for services that largely boil down to categorizing spending, identifying trends, and projecting future scenarios. The raw data -- bank statements, salary deposits, investment balances, property values -- is all available to you in CSV or PDF form. But manually categorizing hundreds of transactions per month and building projections is tedious enough that most people just pay someone else to do it.
Solution
Feed your bank statement data to Claude and have it build a personal financial analysis tool. No direct bank API connections needed -- just export CSVs from your banking app.
Step 1: Export and prepare data
# Most banks let you export transactions as CSV
# Typical format: Date, Description, Amount, Balance
ls ~/finances/
# 2025-checking.csv 2025-savings.csv 2025-credit-card.csv
Step 2: Prompt Claude to categorize and analyze
I have bank statement CSVs in ~/finances/. Build me a financial analysis tool that:
1. Reads all CSV files and normalizes the transaction format
2. Auto-categorizes each vendor (groceries, dining, transport, subscriptions, etc.)
3. Generates monthly spending breakdowns by category
4. Identifies spending trends over time (increasing/decreasing categories)
5. Creates an interactive HTML dashboard with charts I can search and filter
6. Projects annual spending based on current trends
Use Python with pandas for data processing. Use Chart.js in the HTML output
for interactive graphs. Save the dashboard to ~/finances/dashboard.html.
Step 3: Add longer-term financial planning
Extend the financial tool to include long-term projections:
- Input: current salary, super balance, property value, shares portfolio
- Model: salary growth at 3% pa, super at 7% pa, property at 5% pa
- Output: net worth projection graph over 10, 20, 30 years
- Include: kids education costs (private school estimate), retirement target
- Generate interactive sliders to adjust growth rate assumptions
Add this as a second page in the dashboard.
Example vendor categorization logic the AI generates:
CATEGORY_RULES = {
"groceries": ["woolworths", "coles", "aldi", "harris farm"],
"dining": ["uber eats", "doordash", "menulog"],
"transport": ["uber", "lyft", "opal", "myki"],
"subscriptions": ["netflix", "spotify", "youtube", "openai"],
"utilities": ["agl", "origin", "telstra", "optus"],
}
def categorize(description: str) -> str:
desc_lower = description.lower()
for category, keywords in CATEGORY_RULES.items():
if any(kw in desc_lower for kw in keywords):
return category
return "uncategorized"
Why It Works
Bank transactions are structured tabular data -- exactly what AI excels at processing. The categorization task is pattern matching against vendor names, which is straightforward once you build a keyword mapping. Claude generates the entire pipeline (CSV parsing, categorization, trend analysis, visualization) as a single vibe-coded project. The interactive HTML dashboard with Chart.js gives you the same drill-down capability that financial advisor software provides, but tailored to your exact accounts and categories. Because you control the code, you can refine categories, adjust projection models, and add new data sources without waiting for an advisor.
Context
- Start with CSV exports from your bank -- most Australian banks (CommBank, ANZ, Westpac, NAB) support CSV export for 12+ months
- For PDF-only statements, Claude can parse these too -- just feed the PDFs directly and ask it to extract transaction tables
- The "uncategorized" bucket is your friend -- review it after the first run and add new vendor keywords
- For investment tracking, export portfolio CSVs from your broker (Stake, CommSec, SelfWealth) and feed those in alongside bank data
- This is a great project for vibe-coding competitions -- the scope is well-defined and the output is immediately useful
- Keep financial data local -- run everything on your machine, do not upload bank statements to cloud services
- The AI-generated code is a starting point; validate projections against basic sanity checks before making financial decisions