By Paras Saini & Shubham Sharma ·

How to Build an Invoice Tracking Spreadsheet That Actually Gets Used

Most invoice tracking spreadsheets get abandoned within two months. They start clean, then grow into an unformatted mess of outdated rows, missing due dates, and a Notes column that says “chased?” with no date attached. This guide shows you how to build one that stays useful — the exact columns, the three formulas that do the heavy lifting, and the point at which a spreadsheet stops being the right tool.

Key takeaways

  • The 8 essential columns are: Invoice Number, Client, Invoice Date, Due Date, Amount, Status, Days Outstanding, Notes — add nothing else until you need it
  • =MAX(0, TODAY()-D2) auto-calculates days overdue every day without any manual input
  • Conditional formatting (amber at 1 day overdue, red at 30+ days) lets you scan 50 invoices in 10 seconds
  • A separate Chase Log tab becomes essential the moment you have more than one follow-up per invoice
  • Spreadsheets fail reliably at 15–20 open invoices — missed follow-ups, no alerts, no per-invoice history

The 8 Columns Every Invoice Tracker Actually Needs

The most common mistake when building this spreadsheet: adding too many columns on day one. A Status column, a VAT column, a Retainer Type column, a Client Category column — and within two weeks you're spending more time maintaining the spreadsheet than chasing invoices. Start with the minimum viable set and add columns only when you feel the gap. Google Sheets is the most practical free choice for this — accessible from any device, shareable, and supports all the formulas below.

Essential columns (include from day one):

ColumnWhat to enter / format
Invoice NumberSequential (INV-001, INV-002) or date-based (2026-001)
Client NameCompany name. Add contact name in a second column if needed.
Invoice DateDate format (DD/MM/YYYY or MM/DD/YYYY). Consistent format is critical.
Due Date= Invoice Date + payment terms days. Or calculate manually.
AmountInvoice total including tax. Format as currency.
StatusDropdown: Sent / Overdue / Chased / Paid / Written Off
Days OutstandingFormula (see below) — auto-calculates from invoice date.
NotesFree text for chase history (until you outgrow this — see below).

Optional columns (add when needed):

  • PO Number — required by many corporate clients
  • Payment Method — bank transfer / card / PayPal
  • Invoice Type — retainer / project / hourly
  • AP Contact — who to email for payment queries
  • Last Chased — date of most recent reminder
  • Amount Paid — for partial payments

The 3 Formulas That Turn a List Into a Tracker

Without these, you have a static list of invoices — useful for reference, useless for action. These three formulas are what make the spreadsheet update itself daily so you can open it Monday morning and immediately see what needs chasing, without doing any manual calculations.

1. Days Overdue

=MAX(0, TODAY()-D2)

Where D2 is the Due Date cell. Returns 0 if not yet overdue, or number of days overdue. Add this as a calculated column — it updates every day automatically.

2. Due Date from Invoice Date + Terms

=C2+14

Where C2 is the Invoice Date. Replace 14 with your payment terms (30 for Net 30, 7 for Net 7). Or use the Net Terms Due Date Calculator for any date.

3. Total Outstanding Balance

=SUMIF(F2:F100,"<>Paid",E2:E100)

Where F is your Status column and E is your Amount column. Shows total owed across all unpaid invoices. Add this at the top of your sheet as a running total.

Colour-Coding That Lets You Scan 50 Invoices in 10 Seconds

Conditional formatting is the difference between “spreadsheet you open, scan, and act on” and “spreadsheet you open, feel overwhelmed by, and close.” Without it, you read every row individually. With it, the red and amber rows pull your attention directly to the problems. Set up three rules — in this exact order, since Excel and Google Sheets apply them top-down:

Rule 1 — Overdue (any)

Formula: =AND(F2<>"Paid", D2<TODAY())

Fill: light orange / amber. Applies to any unpaid invoice past its due date.

Rule 2 — Seriously overdue (30+ days)

Formula: =AND(F2<>"Paid", TODAY()-D2>30)

Fill: red. High priority — needs immediate action.

Rule 3 — Due within 3 days

Formula: =AND(F2<>"Paid", D2-TODAY()<=3, D2>=TODAY())

Fill: yellow. Pre-due reminder opportunity — send a heads-up before it goes overdue.

In Excel: Home → Conditional Formatting → New Rule → Use a formula. In Google Sheets: Format → Conditional Formatting → Custom formula. Apply rules to the entire row by using mixed references (e.g. $D2 instead of D2) for the date column but relative references for the row.

The Chase Log Tab: Why One Notes Column Is Never Enough

A Notes column starts out looking fine: “Chased 12 Feb.” Then a second follow-up: “Chased 12 Feb. Chased 19 Feb — no reply.” Then a third. Then a fourth. Within six weeks you have a sprawling wall of text in a single cell and no idea what you actually said in each message or what the client's response was. The fix: a second tab called “Chase Log” with one row per contact attempt.

DateInvoice #ClientActionResponse / Notes
15 FebINV-042Acme LtdEmail sent (friendly)No response
22 FebINV-042Acme LtdEmail sent (neutral)"Processing this week"
01 MarINV-042Acme LtdEmail sent (firm)Payment received

Each time you send a reminder or make contact, add a row. This gives you a complete timeline per invoice — essential when following up multiple times, and critical evidence if you ever need to escalate to formal action. See: unpaid invoice small claims court.

The Exact Moment the Spreadsheet Stops Working

The spreadsheet isn't broken — it just wasn't designed for active AR management. Here are the specific pain points that reliably appear once you have more than 10–15 open invoices at a time:

  • No automatic alerts. The spreadsheet doesn't know you exist until you open it. An invoice that went overdue on a busy Tuesday gets spotted the following Monday, now 7 days cold. One week of silence is often enough for a client to deprioritise payment entirely.
  • No today-view. You can't open the spreadsheet and immediately see “here are the three invoices that need action right now.” You see 40 rows and have to reconstruct the picture yourself every time.
  • Chase log disconnected from invoices. Even with a well-built Chase Log tab, you have to manually look up which log entries belong to which invoice before every follow-up. You're doing relational database work by hand.
  • No reminder drafting. Every follow-up email starts from scratch, or from a vague template you saved somewhere else. The 10-minute friction of writing a good reminder is why invoices go chased once and then forgotten.
  • Multi-person access problems. A shared spreadsheet means two people can overwrite each other's chase notes simultaneously. Version history exists but rarely gets checked.

In practice, the spreadsheet works reliably for solo freelancers with 3–5 active clients. It starts creating problems for anyone managing 15+ open invoices across 8+ clients. For a full breakdown: Excel invoice tracking problems — where it breaks down.

5 Signs You've Outgrown the Spreadsheet

The spreadsheet doesn't fail dramatically — it fails gradually. You stop updating it as diligently. You forget to add a new invoice. You miss a follow-up. An invoice goes 45 days overdue because you were busy and the spreadsheet didn't remind you. Watch for these specific signals:

  • You've discovered an invoice was overdue by weeks — not because you checked, but because the client mentioned it or you happened to scan the spreadsheet
  • You regularly have 15+ open invoices and genuinely can't tell which ones need action today without filtering and sorting
  • You're writing follow-up emails from scratch because you can't quickly pull up what you wrote last time or what the client said
  • Updating the spreadsheet has started taking longer than the actual chasing — adding rows, updating statuses, cross-referencing the chase log
  • Someone else in your business needs visibility into invoice status and your solution is a shared sheet with frequent version confusion

The cost of a dedicated tracker ($12–15/month) is recovered in the first invoice it catches that would have otherwise slipped past 45 days — the point at which collection rates drop sharply. Best Way to Track Invoices in 2026 covers all the options. For the InvoiceGrid tracker specifically, see the pricing page.

Ready to Track Your Invoices Visually?

Stop losing track of who owes you money. InvoiceGrid gives you a visual Kanban board, chase history, and professional email reminders.

Frequently Asked Questions

My spreadsheet has 40 rows and I can no longer tell what needs chasing today — what do I do?+

Add a Days Overdue column with =MAX(0, TODAY()-D2) and a conditional formatting rule that highlights red any row where Status is not 'Paid' and the overdue count is above 0. Then sort by the Days Overdue column descending. This immediately surfaces the oldest unpaid invoices at the top. If you find you're doing this sort manually every Monday, that's the signal to move to a dedicated tracker.

What formula shows how many days overdue an invoice is?+

=MAX(0, TODAY()-D2) — where D2 is the Due Date cell. Returns 0 if payment isn't overdue yet, and the number of days overdue if it is. This recalculates automatically every time you open the sheet. Wrap it in an IF to handle the 'not yet due' case: =IF(D2>TODAY(), "Not yet due", MAX(0, TODAY()-D2)).

I keep forgetting to update my invoice tracking spreadsheet — how do I build the habit?+

The habit problem is usually a friction problem. Make the spreadsheet the first tab you open on Monday mornings by keeping it bookmarked or pinned. Create a calendar reminder every Monday for 5 minutes: 'Update invoice tracker.' The bigger fix is reducing the number of steps needed per invoice — if adding a new invoice takes 30 seconds (one row, 8 columns) it gets done. If it takes 5 minutes, it gets deferred.

Is a spreadsheet good enough for tracking invoices as a freelancer?+

For 1–5 active clients and under 15 open invoices at a time, yes — a well-structured spreadsheet with the right formulas is entirely adequate. The gaps appear when you have multiple follow-ups per invoice (the Notes column becomes unusable), when you're managing 8+ clients simultaneously, or when the spreadsheet doesn't remind you that something is overdue. At that point, the time you spend maintaining the spreadsheet exceeds the time a dedicated tool would require.

What is the difference between an invoice spreadsheet and dedicated invoice tracking software?+

A spreadsheet is passive — it shows what you tell it. Dedicated software is active — it alerts you when invoices go overdue, logs chase history automatically, surfaces today's priorities without sorting, and maintains per-invoice timelines. Accounting software (QuickBooks, Xero) handles the full financial picture but isn't optimised for AR chase management. A dedicated invoice tracker like InvoiceGrid sits in the middle: focused on who owes what and what to do about it, without the overhead of full accounting software.