heezy-finance Roadmap¶
Phase 1 — Fix the Data ✅ Complete (2026-06-18)¶
| Item | Status |
|---|---|
receipts.date_ts migration + backfill |
✅ |
merchant_normalized on receipts |
✅ |
category + merchant_normalized on bank_transactions |
✅ |
| Bank transactions integrated into dashboard | ✅ |
| Gas spend fixed: $140.52 (was $36) | ✅ |
| Bank source filter + 🏦 badge in Purchases | ✅ |
| Bank page with category cards + monthly chart | ✅ |
| BoA parser: CC detection | ✅ |
| Cap1 parser: fixed stmt_id bug | ✅ |
| Statement NFS ingest pipeline (end-to-end) | ✅ |
| Ingest pipeline: auto-category + merchant on insert | ✅ |
| docs.heezy.info live on Cloudflare Pages | ✅ |
Phase 2 — Complete Bank Coverage ← Current¶
| Item | Status | Notes |
|---|---|---|
| More BoA monthly statements | 🔲 | Only Jan–May 2026 loaded; download from portal + drop to NFS |
| CC statements (BoA Visa, Cap1) | 🔲 | Drop to NFS ingest; parser handles BoA CC detection |
payment_type on receipts |
🔲 | Blocked until CC statements available |
| Historical statement backfill | 🔲 | Pre-2026 BoA statements if available |
Gmail auto-fetch is not viable
BoA and Capital One send notification-only emails with no PDF attachments.
Manual workflow: download from bank portal → drop to /nfs/heezy/ingest/raw/statements/new/ → picked up within 5 min.
Phase 3 — Reconciliation Service¶
heezy-finance-reconcile — a new service to match receipts/orders against bank transactions.
Goal: Surface discrepancies, unmatched charges, and duplicate entries.
Design sketch:
- Match by: date ±2 days + amount (exact or within 1%) + merchant similarity
- Match sources: receipts ↔ bank_transactions, orders ↔ bank_transactions
- Confidence score per match (high/medium/unmatched)
- New UI page: reconciliation table with match status, manual override
Prerequisites: Phase 2 complete (CC statements needed for meaningful matching)
Current DB State¶
| Table | Count | Notes |
|---|---|---|
orders |
161 | 202 line items |
order_items |
202 | Ollama-categorized |
receipts |
43 | 342 line items; all have date_ts |
bank_statements |
7 | BoA Jan–May 2026, Cap1 Q1 2026 |
bank_transactions |
137 | Debits only shown in dashboard |
Last updated: 2026-06-18