SPENDLENSyour transactions never leave your browserSAMPLE DATA
SAMPLE DATA
Privacy-first: All parsing runs in your browser and your transactions are never transmitted anywhere. Optional extras (AI categorisation, live share prices) send only merchant names or ticker symbols, never amounts, dates, balances, or account details. Use Save session to store data as a file on your own device.
Upload Statements
Drop CSV or PDF statements from any bank. Parsing happens entirely in your browser, so your statements are never uploaded to any server.
SAMPLE DATA loaded — a built-in fictional dataset so you can explore first.
Drop files here or click to browse
CSV and PDF bank statements β any bank, multiple files at once
How privacy is maintained
CSV files β Parsed directly in your browser using JavaScript. Nothing is uploaded.
PDF statements β Text extracted locally using PDF.js (open-source, runs in your browser).
Categorisation β Built-in library of 300+ merchant patterns + your custom keyword rules, all matched locally with no API calls. The optional AI assist sends only cleaned merchant names, never amounts, dates, or account details.
Rules storage β Saved to browser localStorage only.
Transaction data β Held in memory only. Use Save session to download to your device.
Transactions
No transactions yet.
Edit vendor or category on any selected row to apply to all
Categorisation Rules
Each rule maps a description to a vendor and category. When a rule's description is found in a bank transaction, that transaction gets the vendor and category defined here. Rules are tested in order β first match wins.
Add new rule
Description
Vendor
Category
Spending Analysis
Upload and process statements to see your analysis.
Expenses
Click a category to see its transactions Β· hover a bar for the full subcategory breakdown
$/mo and $/yr are each category's total spend divided by the number of months of data loaded (then Γ12 for the yearly figure) β a simple average to help you budget, not a trend. The bar is split into segments by subcategory, sized proportionally β hover the bar to see every subcategory and its yearly figure.
Category
$/mo
$/yr
%
Bar ($/mo) β by subcategory
Trend
Spend Mosaic β by subcategory
Area = % of total spend Β· shades = subcategories within each category
Income β typical by month
Each month averaged across every year of data Β· use it to anticipate dividend timing
Income Breakdown
Click βΆ for source detail
Same $/mo Β· $/yr average as spend, broken down by source (employer, dividend payer, etc.) so you can spot systematic changes β e.g. a dividend payer trending up or down.
Source
$/mo
$/yr
%
Bar ($/mo)
Trend
Spend by Month (stacked)
Income by Month (stacked)
Net Savings by Month
Categorise
Scanningβ¦0%
Option 1 β Categorise with your own AI
Loadingβ¦
For privacy-conscious users. See exactly what gets sent, choose your own AI assistant, and paste the results back. Your data never leaves your control.
A prompt will be generated for you to copy and paste into your AI assistant (Claude, ChatGPT, Gemini etc.)
Option 2 β Full re-classification
Overwrites all existing categories and subcategories.
Use this if auto-categorisation got things wrong (e.g. location names misclassifying transactions).
Sends every unique vendor description to your AI assistant to rebuild the rules from scratch.
β Save your session before running.
Requires your own AI assistant (Claude, ChatGPT, Gemini etc.) β a prompt will be generated for you to copy and paste.
Option 2 β Auto-categorise
Automatically categorises all your uncategorised transactions using AI. Fast and hands-free.
What gets sent: Only the cleaned vendor name for each uncategorised transaction β for example "Woolworths". No amounts, dates, account numbers, or any other financial information ever leaves your device.
Dev mode β enter Groq API key for local testing:
Categorisingβ¦0%
Next batch available in
60
seconds
Description
Count
Vendor
Category
Use your AI assistant to categorise the rest
Privacy: The prompt contains vendor names and cleaned descriptions only β no amounts, dates, account numbers or balances. Paste it into any AI chat (Claude, ChatGPT, Gemini, etc.) in a private/incognito window if preferred.
Prompt preview
Step 2 β paste the AI response here
Ask your AI to reply using the exact same numbered format. Paste its response below and click Import.
Net Worth
A balance is captured from each statement you upload. Liabilities (credit cards, loans) appear as negative figures.
No balance data yet. Upload some statements and a balance snapshot will be captured automatically.
Loading live pricesβ¦
Please waitβ¦
Net Worth
$0
Total Assets
$0
Shares
$0
Cash
$0
Total Liabilities
$0
Accounts Tracked
0
Latest balance per account
Account
Type
Name
As at
Last Stmt Balance
Live Value
Assets over time
Liabilities over time
Portfolio returns
Annual return (incl. dividends)
Total ReturnCapital Return
Fetching price historyβ¦
Current Holdings
Current holdings
Closed holdings
Expand all
βΈ All balance snapshots (statement history)
Date
Account
Type
File
Balance
Conf.
Edit entry
β No confirmed purchase date β the date shown is inferred from your earliest statement. Enter the actual purchase date below to confirm this holding and clear the warning.
β Sends ticker code and date via a CORS proxy to Yahoo Finance. No account data, balances, or amounts leave your device.
Hide ticker from timeline
This ticker will be hidden from the per-ticker timeline. You can restore it at any time from the dismissed tickers list.