Google Sheets Sales Tracker: A Freelancer's Pipeline Without the CRM Price Tag
Build a Google Sheets sales tracker with a 7-column pipeline log, COUNTIF stage summary, overdue follow-up flags, and SUMIFS monthly revenue formulas.
Published June 23, 2026
CRM software was built for sales teams. It assumes you have deal stages to manage across 12 reps, a VP of Sales who needs a dashboard, and a budget for $50/seat/month. If you're a freelancer chasing five active leads, or a solo founder closing your first dozen customers, a CRM is overkill — and the maintenance cost alone will make you stop using it within a month.
A well-built Google Sheets sales tracker does 90% of what you need: it shows where every deal stands, flags follow-ups you've let slip, calculates your closed revenue by month, and tells you your win rate. It takes about an hour to build, costs nothing, and you'll actually use it because it lives in your Drive alongside everything else. Here's how to build one.
The 7-Column Sales Log: Your Core Sheet
Create a tab called Pipeline with these seven columns:
| Column | Header | Notes | |--------|--------|-------| | A | Date | Date of first contact or outreach | | B | Client / Lead | Name or company name | | C | Deal Size | Estimated contract value in $ | | D | Stage | Prospect / Proposal / Negotiation / Won / Lost | | E | Next Action | What you need to do next (free text) | | F | Follow-up Date | When to next reach out | | G | Won / Lost | Final outcome once resolved |
A few setup notes:
Stage — Use a dropdown (Data → Data validation → List of items). Dropdown values should match exactly what you'll reference in your COUNTIF formulas later: Prospect, Proposal, Negotiation, Won, Lost. Consistent spelling matters.
Deal Size — Enter the estimated contract value, even if it's a range. Use the midpoint if you're unsure. This is what your revenue formulas will pull from.
Won / Lost — Keep this separate from Stage. Stage tracks where you are in the process; Won/Lost is the final binary outcome. Having both lets you filter "closed deals" separately from "active deals" without needing complex logic.
Lock row 1 as a header (View → Freeze → 1 row) so it stays visible while you scroll.
The COUNTIF Pipeline Summary
Add a second tab called Summary. This tab gives you a real-time count of deals at each stage so you can see your pipeline shape at a glance.
Set up the summary like this (example using column references from your Pipeline tab):
=COUNTIF(Pipeline!D:D, "Prospect")
=COUNTIF(Pipeline!D:D, "Proposal")
=COUNTIF(Pipeline!D:D, "Negotiation")
=COUNTIF(Pipeline!D:D, "Won")
=COUNTIF(Pipeline!D:D, "Lost")
Put stage names in column A of your Summary tab and these formulas in column B. The result is a live count per stage that updates every time you update the Pipeline tab.
For deal value at each stage, use SUMIF instead:
=SUMIF(Pipeline!D:D, "Proposal", Pipeline!C:C)
This gives you the total value of all deals currently in "Proposal" — useful for understanding not just how many deals are in each stage, but how much revenue is at stake.
Not ready to invest in a full tracker yet? Grab our free Google Sheets starter template — no signup wall, no email required. A clean starting point you can duplicate and build on immediately.
Conditional Formatting: Flag Overdue Follow-ups
The most important automation in the whole tracker. This rule highlights any row where a follow-up is overdue and the deal isn't closed.
- Select column F (Follow-up Date) — or the whole row range (A2:G100 to highlight the full row)
- Go to Format → Conditional formatting
- Choose Custom formula is and enter:
=AND(F2<TODAY(), D2<>"Won", D2<>"Lost")
- Set the fill color to a yellow or orange highlight
- Click Done
This flags any row where:
- The follow-up date is in the past (
F2<TODAY()) - The deal hasn't been won yet (
D2<>"Won") - The deal hasn't been lost yet (
D2<>"Lost")
The result: every morning you open the tracker, overdue follow-ups jump out immediately. You don't have to mentally scan every row. The spreadsheet does the watching for you.
If you want to apply the highlight to the entire row instead of just column F, select A2:G100 as your range before applying the rule, and update the formula to use an absolute column reference:
=AND($F2<TODAY(), $D2<>"Won", $D2<>"Lost")
Monthly Closed Revenue: SUMIFS Formula
On your Summary tab, add a monthly revenue section. This formula sums closed deal values where the Stage is "Won" and the Date falls within a specific month.
First, create a helper column with month-start dates (e.g., 2026-01-01, 2026-02-01, etc.) in column D of your Summary tab.
Then in column E:
=SUMIFS(Pipeline!C:C, Pipeline!D:D, "Won", Pipeline!A:A, ">="&D2, Pipeline!A:A, "<"&EDATE(D2,1))
This formula:
- Sums the Deal Size column (
Pipeline!C:C) - Where Stage is "Won" (
Pipeline!D:D, "Won") - Where Date is on or after the month start (
Pipeline!A:A, ">="&D2) - Where Date is before the next month start (
Pipeline!A:A, "<"&EDATE(D2,1))
Drag the formula down for each month row. You now have a running monthly closed revenue chart that updates automatically as you update Pipeline.
Win Rate Calculation
Add a simple win rate metric to your Summary tab:
=COUNTIF(Pipeline!D:D,"Won") / (COUNTIF(Pipeline!D:D,"Won") + COUNTIF(Pipeline!D:D,"Lost"))
Format the cell as a percentage. This gives you your overall win rate across all closed deals.
For a more granular view, you can calculate win rate by deal size tier or by lead source if you add those columns to your Pipeline tab. But the single overall number is what you need first — if your win rate drops significantly, that's the signal to look harder at what's changing in your proposals or follow-up process.
From Pipeline to Full Income Visibility
A sales tracker tells you what's in your pipeline and what you've closed. But it doesn't tell you what you've actually received — invoice paid dates, partial payments, recurring client revenue, referral income that didn't start as a formal deal.
That's where an income tracker fills the gap. Pair this pipeline tracker with a dedicated income log that records every payment received (date, client, amount, category), and you get the full picture: what you're selling, what you're closing, and what's actually landing in your bank account.
The Personal Finance Tracker is a Google Sheets template built for exactly this — income logging, expense tracking, monthly summaries, and tax set-aside calculations, all in one spreadsheet. It's $19, instant download, and it's designed to sit alongside a pipeline tracker like this one. If you're serious about knowing where your money is coming from, that's the next sheet to have open.
Free Resource
Not ready to buy? Grab our free Notion Quick-Start Template
A no-fluff starter workspace to get organized in 30 minutes. Free, no credit card required.
Pair It With a Full Income Tracker
The Personal Finance Tracker is a Google Sheets template for income logging, expense tracking, monthly summaries, and tax set-aside calculations — designed to sit alongside a pipeline tracker like this one. $19, instant download.
Related Articles
Google Sheets Budget Planner: The Setup That Actually Works
Most people have downloaded a budget spreadsheet at some point. Maybe it was from a finance blog, maybe a Reddit thread.…
Read more →Google Sheets Expense Tracker: The Setup That Gives You Control
Google Sheets Expense Tracker: Track Every Dollar Without Apps Most budgeting apps make the same promise: link your acco…
Read more →Google Sheets Project Tracker: Build One That Actually Works
Google Sheets Project Tracker: Build One That Actually Works You started with a clean spreadsheet. One tab, a few rows, …
Read more →