This simple income tracker Google Sheets setup takes about 15 minutes to build and covers the 90% case: freelancers, side hustlers, small business owners, and anyone who gets paid from more than one place.
Why Most Income Trackers Fail Before March
The failure pattern is predictable. You find a template online, open it, and discover 12 tabs, pivot tables pre-wired to cells you haven't filled yet, and a dashboard with charts plotting zero against zero. You close it and go back to ignoring your income.
According to research on spreadsheet adoption, the majority of personal finance spreadsheets are abandoned within 2 weeks of creation. The cause is almost always complexity, not intent.
The fix isn't better templates. It's fewer columns.
The 6-Column Structure That Actually Holds Up
Your log sheet needs exactly this:
| Column | Header | Example Value |
|---|---|---|
| A | Date | 2026-04-01 |
| B | Source | Acme Corp |
| C | Category | Consulting |
| D | Amount | 4500 |
| E | Payment Method | Wire |
| F | Notes | Invoice #112 |
Format column D as currency. Format column A as a date. Leave everything else as plain text.
Don't add a "Status" column yet. Don't add "Tax Rate" or "Net Amount" or "Client ID." Those can come later, once you've actually been logging for a month and know what you're missing.
Building Your Simple Income Tracker Google Sheets Setup
You need 2 sheets: Log and Summary. That's the whole structure.
Sheet 1: Log
Row 1 is your header. Row 2 onward is data. Freeze row 1 so it stays visible as you scroll. Nothing else special here — just fill it in every time money hits your account.
Sheet 2: Summary
This is where the 4 formulas live:
Total income this month:
=SUMPRODUCT((MONTH(Log!A:A)=MONTH(TODAY()))*(YEAR(Log!A:A)=YEAR(TODAY()))*Log!D:D)
Total income by category (assuming your categories are in E2:E10 on the Summary sheet):
=SUMIF(Log!C:C, E2, Log!D:D)
Income count this month (useful for freelancers tracking invoice volume):
=COUNTIFS(Log!A:A,">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1),Log!A:A,"<="&EOMONTH(TODAY(),0))
Year-to-date total:
=SUMPRODUCT((YEAR(Log!A:A)=YEAR(TODAY()))*Log!D:D)
As of April 2026, Google Sheets handles these SUMPRODUCT formulas across up to 10 million cells — you won't hit any limits with personal income data.
The One Thing Most Guides Skip: Category Discipline
The Notes column is a free-text field. The Category column is not. If Category becomes free-text, your SUMIF breaks. You'll have "consulting," "Consulting," "CONSULTING," and "consult" — and none of them match.
The fix is a dropdown. Select the entire C column, go to Data > Data Validation, and enter your category list. Now every entry is consistent and your formulas don't lie to you.
EuSpRIG's 2024 research on spreadsheet errors found that 88% of spreadsheets containing more than 150 rows had at least one data entry error — and inconsistent text values (like mismatched category names) were the leading cause. A dropdown with 8 options prevents most of that.
When to Add a Second Log Sheet
The single-sheet setup breaks down in 2 scenarios:
Multiple currencies. If you invoice in USD and GBP, add an "Original Currency" column and an "Exchange Rate" column, then calculate Amount in your reporting currency. Don't try to do this with one Amount column — rounding errors accumulate and the math stops making sense around month 3.
Refunds and reversals. Log these as negative amounts in the same sheet with a "Refund" category. Don't delete original rows, and don't create a separate "Refunds" tab. Your SUMIF handles negatives correctly, and your history stays intact.
If you're tracking 5+ income sources and want to run queries against your data — things like "show me all income from Source X in Q1 where Amount > $2,000" — that's when a formula-based summary sheet stops being enough. ModelMonkey can run that kind of query directly in your Google Sheet without you wiring up additional formulas or tabs.