BankViz
AI-powered bank statement analyzer. Upload CSV exports from your bank or PayPal, let AI categorize your transactions, and get a clear picture of your spending.
Financial planning features (superannuation, tax insights, Medicare Levy) are currently tailored to the Australian tax system.
Screenshots
| Dashboard | Financial Plan |
|---|---|
![]() |
![]() |
| Spending breakdown and monthly trends | Wealth projections and planning |
Screenshots use the included demo_transactions.csv sample data.
Features
- CSV import — parses bank and PayPal exports with automatic column detection
- AI categorization — OpenAI assigns main/sub categories based on merchant patterns
- Duplicate detection — exact, similar (±2 days), and PayPal-specific matching
- Interactive dashboard — spending charts, category breakdown, monthly trends
- Custom categories — create your own with drag-and-drop and bulk editing
- Rules engine — auto-categorize transactions by description patterns, applied retroactively
- Financial profile — household, income, assets, liabilities, expenses, and goals
- 23 insight calculators — superannuation, tax, debt, and investment analysis
- Wealth projections — long-term financial planning with configurable assumptions
Local Development
Prerequisites
Setup
git clone https://github.com/RiccardoGrin/BankViz.git
cd BankViz
npm install
cp .env.example .env.localStart Convex (first terminal)
On first run, this prompts you to log in and create a project. It auto-sets VITE_CONVEX_URL in .env.local.
Set your OpenAI key in the Convex environment:
npx convex env set OPENAI_API_KEY=sk-your-key-hereFor authentication setup (JWT keys, optional Google OAuth), see the Convex Auth docs.
Start the frontend (second terminal)
Open localhost:5173.
Commands
| Command | Description |
|---|---|
npm run dev |
Vite dev server |
npx convex dev |
Convex backend |
npm run build |
Production build |
npm run lint |
ESLint |
npm test |
Tests (watch mode) |
npm run test:run |
Tests (single run) |
npm run test:coverage |
Tests with coverage report |
400+ tests using Vitest with enforced coverage thresholds on critical financial modules.
Deployment
See docs/DEPLOYMENT.md for deploying to Vercel + Convex.
Tech Stack
- Frontend — React 18, Vite, TailwindCSS, Radix UI / shadcn/ui, Recharts
- Backend — Convex (database, real-time sync, auth), OpenAI (server-side categorization)

