ExpenseBot matches every bank deposit against your recorded income to eliminate double-counting before you file taxes. Connect your bank via Plaid and the 4-layer matcher runs automatically — each deposit is checked against email-detected income, manual entries, and existing records in your Income tab.
The 4-layer matcher:
- Entity ID match — Stripe ch_..., PayPal txn_..., Square sqp_... matched exactly
- Normalized merchant match — strips punctuation, case, and noise before comparing
- Token-subset match — handles "Stripe Inc" vs "STRIPE TRANSFER"
- AI canonicalization — Gemini resolves edge cases like "PayPal *Etsy" matching "Etsy"
The Reconcile button (Income tab) walks you through every unmatched deposit one at a time. For each gap: Accept (add as income), Edit (adjust before adding), or Ignore (transfers, refunds — rule sticks going forward).
Tax routing happens automatically: business income → Schedule C Line 1 / T2125 Line 7; rent deposits (matched by property tag) → Schedule E / T776; interest/dividends → Schedule B / T5 summary.
Bank Summary in the year-end tax workbook shows reconciliation status by month: ✓ Reconciled (≥83% of months), ⚠️ Partial, or ℹ️ Not enabled. Accountants use this to confirm whether your gross receipts are bank-verified before filing.
Platform support: Stripe, PayPal, Square, Shopify Payments, Etsy, Amazon seller deposits, ACH/EFT transfers, Interac e-Transfer (Canada).
