v0.5.13 Bank of America support + summary-block stripping for CSV imports
Pair with extension v0.4.6. Together they add Bank of America to the auto-capture pipeline.
What’s new
CSV summary-block stripping
BoA’s CSV export (despite being labeled “Microsoft Excel Format” in their UI — they killed the explicit CSV option) prepends 5 summary rows before the real transaction headers:
Description, , Summary Amt.
Beginning balance as of 11/25/2024, , 4,480.65
Total credits, , 277,139.29
Total debits, , -271,724.59
Ending balance as of 05/22/2026, , 9,895.35
Date, Description, Amount, Running Bal. ← the real header (row 7)
...
ExtensionImportService now scans the first 20 lines of every CSV before parsing. If line 1 doesn’t look like a transactions header but a later line does, we skip ahead. Heuristic: a header-like row has 3+ non-empty fields and matches at least 2 of these keywords: date, amount/debit/credit, description/payee/merchant, balance/running bal, category. Generic enough to handle any bank with this pattern.
Bank of America added to the extension
bankofamerica.com is now a required host permission alongside Chase/Amex/Citi. The webRequest listener watches all bank URLs on those domains. BoA’s existing preset in ImportPresets.cs (Date, Description, Amount, Running Bal.) handles the format once the summary block is stripped.
The URL pattern is currently loose — once we see a real BoA download URL via the SW console (webRequest catches it), we’ll tighten the regex if needed.
How to update
Click Download on the orange update banner. Also reload the extension at chrome://extensions/ to v0.4.6.