Context
Fixed three issues on the finance tracker cards page:
- Annual fee due dates incorrect — closed/inactive Empower accounts showed stale AF projections, and active cards with heavy spending pushed AF transactions out of the 50-row scan window
- Cards missing last-4 digits — Plaid/Teller account names do not contain last-4 digits, and the cross-referencing by accountId suffix was broken (opaque IDs)
- Investment NW not updating — daily sync cron broken since setup because npx not on cron PATH
What Changed
- AF calculation: Added closed-card check (isLikelyClosed), pre-filter by AF keywords in DB, amount proximity filtering, confidence scoring
- Card masks: Added FinancialAccount.mask column, populated from Plaid account.mask and Teller account.last_four. Backfilled Empower from name patterns. All cards now show last-4.
- Daily sync: Added export PATH to daily-sync.sh. Investment data now current.
Commits
- a83bb05 Fix annual fee due date calculation
- 0c6f05c Add mask field for card last-4 digits
- d9bc2a7 Fix AF renewal date: filter by amount proximity
- cde10d5 Update context.md
Open Items
- Balance history gap April 28-May 4 (cosmetic)
- daily-sync.sh only on VM, not in repo
- Closed Empower accounts still mapped (no AF shown, but appear on page)