ExpenseBot

Can ExpenseBot track income, not just expenses?

Yes — ExpenseBot tracks income alongside expenses. Four input methods feed a single Income tab in your spreadsheet, and a reconcile-with-bank step keeps everything in sync.

Yes — ExpenseBot tracks income alongside expenses. Four input methods feed a single Income tab in your spreadsheet, and a reconcile-with-bank step keeps everything in sync.

1. Gmail income detection (live, persona-aware default) The same Gmail scan that captures receipts can also pick up emails about money you've received — Stripe payouts, Cash App for Business deposits, Zelle / Venmo / Square / PayPal Business / Interac e-Transfer notifications, invoice-paid confirmations, and rent receipts — and write them to the Income tab automatically.

Creator platforms: ExpenseBot also looks for sale, tip and new-subscriber notification emails from Patreon, OnlyFans, Gumroad, Ko-fi, Fansly, Throne and Clips4Sale — for example OnlyFans new-subscriber, renewal and tip emails and Patreon new-member emails — and adds each one to your Income tab for the amount the email shows. When an email shows only one number, no platform fee is recorded until you confirm your fee rate once under Add Income → Manage platform fees (the button appears once Content Creator is turned on; ExpenseBot suggests a rate from your existing entries and never assumes one). Emails from other platforms, such as Twitch, YouTube AdSense or Buy Me a Coffee, may be picked up when they clearly say money was paid to you, but not every one will be; use CSV import (below) for a complete history. Substack emails are not read as income; a Substack payout sent through Stripe may appear as a Stripe payout. When you generate your Year End tax report, any fee recorded on an income entry is deducted on Schedule C Line 10 (US) or T2125 Line 8871 (Canada).

Gmail income detection starts on for earning-focused setups such as Freelancer, Incorporated, Realtor, Content Creator, and Rideshare/Delivery. It starts off for expense-only or managed-work setups such as Employee, Employer, Accountant, Executive Assistant, and Personal. The specific use cases you pick during setup refine the broad role: earning use cases (Rental Property/Landlord, Content Creator, Rideshare/Delivery, Film/Production, Investment Manager) start income detection ON even under an expense-only role, while expense-only use cases (Wedding, Shared Expenses, Medical Reimbursement) start it OFF when no earning use case is selected — so a freelancer planning a wedding starts expense-only, but a freelancer with rental properties keeps income detection on. This is only the new-account default: ExpenseBot does not change an existing choice when you later change roles.

To turn it on or off: Settings → Automation Hub → Gmail scanning → "Also track income emails (beta)". Your expense scanning stays on when income detection is off — only income emails stop being added.

2. Bank connection (live) Connect your bank and ExpenseBot reconciles deposits against your Income tab on a regular cadence. Deposits from known platforms — Stripe, PayPal, Venmo, Zelle, Square, Etsy, Airbnb, and others — are flagged as income. Anything that doesn't already match an Income tab entry surfaces as a "potential income" gap for review. Business income auto-fills Schedule C Line 1 (or T2125 Line 7 for Canada) at year-end.

3. Add Income — voice, screenshot, PDF, CSV, or manual entry (live) Tap the Add Income button in the app to log any payment that didn't come through your bank or Gmail. Five input modes feed the same review-and-save flow:

You can also attach an income screenshot, PDF, CSV, TSV, or text export in ChatGPT or Claude. ExpenseBot parses the file and shows the complete proposed rows before anything is saved; you then confirm the exact import. Imports over 100 parsed rows, or anything that benefits from visual editing, open the same authenticated Add Income review used in the app.

  • Voice — describe what came in ("$400 cash from Friday's gig plus $80 in Venmo tips") and the AI splits it into separate entries with the right payment method, payer, and category.
  • From screenshot or PDF — click Add Income (plus icon), Log Income, then From screenshot or PDF. Select an itemized bank statement or payment-platform PDF. Gemini reads the layout, including multi-page tables, and proposes incoming-payment rows. Check each date, payer, amount, category, and currency; remove transfers and any income already recorded. Then click Save Income or Save N Entries. A PDF over 10 MB must be split into smaller files or replaced with a CSV export. This adds reviewed income rows; it does not establish a Plaid bank connection or populate the Year-End Bank Transactions tab. See manual statement uploads for the separate card-purchase path.
  • From CSV — drop a transaction CSV from any payment or creator-economy platform (Cash App, Clips4Sale, Throne, Patreon, Ko-fi, Gumroad, Fansly, Stripe, PayPal, Venmo, Square, etc.). The AI auto-detects the columns regardless of layout, locale, or currency — no manual column mapping. Caps at 500 KB; for the largest backfills, split into smaller files (one month at a time works well). Excel users: ExpenseBot accepts CSV/TSV/TXT but not Excel (.xlsx) directly yet — open your file in Excel or Google Sheets and use File → Save As → CSV (takes about 10 seconds), then upload that.
  • Manual entry — pick a category (royalty, freelance, rental, sales, etc.), source, date, and amount.

All five paths land in the same review screen so you can edit, tag, and remove rows before submitting. Bulk save handles up to 50 entries per submission. The right path for cash-heavy professions where most income never shows up in a bank deposit or an email — and the right path for backfilling historical income from creator platforms that don't notify by email.

Refunds are tracked too. When you record a customer refund (money you sent back to a customer who previously paid you), it lands as a negative-amount row on the Income tab with the right Schedule C Line 2 / T2125 Line 8290 routing — and dedupes against any email-detected refund of the same event so you never get a duplicate row. Same convention whether the refund came in via Gmail, CSV import, PDF import, or manual entry.

4. Schedule C / T2125 worksheet (live) When you generate a year-end tax report, the worksheet tab lets you fill in gross receipts, returns and allowances, and other income directly — useful for catch-up entries, prior-year corrections, or any source not already captured.

Add income from bank deposits — once a month (or anytime, on demand), open Add Income → Add income from bank deposits to compare your Income tab against the deposits in your linked bank account. ExpenseBot lists every gap and lets you add each one to your Income tab or mark its source Never Flag in seconds. Not connected yet? Click Connect on the Bank Account row in that same window. Your year-end report shows a reconciliation status (✓ once you've reconciled at least 83% of months in the year) so your accountant knows whether the totals are bank-verified.

No double-counting. When the same payment shows up in two places — say, a Stripe email and the Stripe deposit hitting your bank — ExpenseBot's matcher recognizes them as the same event and only counts it once. The Income tab is the single source of truth; manual entries, Gmail-detected income, bank reconciliation matches, and year-end worksheet adjustments all flow through it.

Not every deposit is business revenue. In Review income, use Owner contribution / personal deposit for money you moved into the business yourself. Example: transferring $1,000 from personal savings into the business account. The cash movement stays recorded, but ExpenseBot leaves it out of P&L and Income by Source revenue. Use Omit instead for a duplicate or irrelevant row that should be excluded from all future ExpenseBot calculations.

Share:

Try ExpenseBot Free

AI extracts every receipt into a Google Sheet you own. Gmail scan, mileage, tax reports, profit-by-client. No credit card needed.

No credit card required · Setup in 30 seconds