Skip to main content

Invoice Aging Report Template for Small Business (Free Sheets/Excel Setup + How to Read It)

A free invoice aging report template for small business — build it in Google Sheets or Excel in 10 minutes, with the 30/60/90 buckets explained.

An invoice aging report answers one question: who owes you money, and how worried should you be about each of them?

If you've ever scrolled through a pile of invoices trying to remember which ones are "a little late" and which ones are "call a lawyer" late, this is the fix. This post gives you a free invoice aging report template for small business — one you can build in Google Sheets or Excel in about ten minutes — plus a plain-English guide to actually reading the thing.

No accounting degree required. It's four columns of buckets and a couple of formulas.

What an aging report actually is

An accounts receivable (AR) aging report sorts every unpaid invoice into buckets based on how overdue it is:

  • Current — not due yet
  • 1–30 days overdue
  • 31–60 days overdue
  • 61–90 days overdue
  • 90+ days overdue

That's it. The magic isn't in the math — it's that seeing your invoices grouped this way changes how you act. An invoice sitting in the 61–90 bucket feels different than the same number buried in a list sorted by client name. And it should, because the odds of collecting it are genuinely worse (more on that below).

The invoice aging report template (copy into Sheets or Excel)

You can build this as an accounts receivable aging report excel template or a free Google Sheets version — the formulas below work in both.

Set up these columns:

| Column | Header | What goes in it |

|---|---|---|

| A | Client | Client name |

| B | Invoice # | Your invoice number |

| C | Amount | Amount still owed |

| D | Due date | When it was due |

| E | Days overdue | Formula (below) |

| F | Bucket | Formula (below) |

Column E — days overdue (row 2, then drag down):

=IF(D2="", "", MAX(0, TODAY()-D2))

Column F — the bucket:

=IF(E2="", "", IF(E2=0, "Current", IF(E2<=30, "1-30", IF(E2<=60, "31-60", IF(E2<=90, "61-90", "90+")))))

Then add a summary block somewhere above or beside the table — this is the part you'll actually look at:

Current:  =SUMIF(F:F, "Current", C:C)
1–30:     =SUMIF(F:F, "1-30", C:C)
31–60:    =SUMIF(F:F, "31-60", C:C)
61–90:    =SUMIF(F:F, "61-90", C:C)
90+:      =SUMIF(F:F, "90+", C:C)
Total:    =SUM(C:C)

Two habits that keep the template honest:

  • Delete (or zero out) invoices when they're paid. The report only works if it shows what's actually outstanding. For partial payments, update column C to the remaining balance.
  • Open it on a schedule, not "when things feel bad." Weekly is right for most freelancers and small businesses. The report recalculates itself every day thanks to TODAY() — the discipline is looking at it.

That's the whole template. If you want the version with conditional formatting, add a color rule on column F: green for Current, then yellow → orange → red as the buckets age. It sounds cosmetic, but a row turning red is weirdly motivating.

How to read an AR aging report (the plain-English version)

Here's what each bucket actually means and what to do about it. This is the part most templates skip.

Current — not due yet

Nothing is wrong. But this bucket isn't "ignore it" — a friendly heads-up a few days before the due date measurably improves on-time payment. This is the cheapest collections work you'll ever do.

1–30 days overdue — normal, but don't wait

Most invoices in this bucket get paid. Someone's on vacation, an approval is sitting in an inbox, the payment run is monthly. Send a polite reminder in the first week — not day 30.

The mistake small businesses make is treating this bucket as "fine." It's fine if you're actively reminding. It's the on-ramp to the next bucket if you're not.

31–60 days overdue — something is stuck

An invoice doesn't sit here by accident. There's a reason: a dispute nobody mentioned, an invoice that went to the wrong person, or a client managing their own cash flow problem by using you as a free lender.

This bucket needs a direct question, not another gentle nudge: "Is there an issue with this invoice I should know about?" If your terms include late fees, this is also when they should start showing up on statements — a late fee calculator will tell you what you can reasonably charge.

61–90 days overdue — escalate now

At this point the polite-reminder phase is over. Pick up the phone, send a firmer written notice, and pause any new work for that client until it's resolved. If you keep delivering while this bucket grows, you're funding their business with yours.

90+ days — the danger zone

Industry collections data consistently shows that once an invoice passes 90 days, your odds of collecting drop steeply — commonly cited figures put recovery around 50% or lower, and it keeps falling from there. Every invoice in this bucket needs a decision this week: final demand letter, collections, small claims, or a conscious write-off. "Keep waiting" is not one of the options.

The three numbers to check every week

You don't need to study the whole report. Check these:

1. The 90+ total. Should be zero or close to it. If it's growing, your follow-up process is failing somewhere upstream — invoices don't teleport to 90+; they pass through every earlier bucket while nobody acts.

2. Percent of total AR that's overdue. Add up everything past due and divide by the total. Under 20% overdue is healthy for most small businesses. Over 40% and you have a collections problem eating your cash flow, even if revenue looks great.

3. Repeat offenders. Sort by client. If the same name shows up in a late bucket every single week, the problem isn't that invoice — it's your terms with that client. Require a deposit, shorten the terms, or charge for the float.

That last one is the real payoff of running this report weekly instead of never: patterns. One late invoice is noise. The same client late five times is data.

Where the template stops working

Honest limitation: the spreadsheet tells you who's late. It doesn't do anything about it.

Every invoice that ages from one bucket to the next still needs a human — you — to notice it, write the email, match the tone to how overdue it is, and send it. With five invoices that's a coffee-break task. With twenty-five clients on different terms, it quietly becomes a weekly afternoon, and the invoices that slip through are exactly the ones that end up in the 90+ bucket.

If you're running this manually, at least systematize it: write down what happens at each bucket so you're not re-deciding every week. Our free accounts receivable SOP is a fill-in-the-blanks version of exactly that, and the payment reminder email generator will draft the bucket-appropriate email so you're not staring at a blank screen.

Start with the report, then automate the chasing

Build the invoice aging report template today — it's ten minutes, and it'll change how you see your receivables by Friday. Read it weekly, act on the buckets, and watch the 90+ line like it owes you money. Because it does.

And when updating the spreadsheet and chasing each bucket by hand stops being worth your time, tools like Saldetto build the aging view for you and send the escalating reminders automatically — so invoices stop quietly sliding from one bucket to the next.

Free Download

Cash Flow Tracking Spreadsheet

Free spreadsheet with invoice log, aging buckets, monthly projections, and collection rate tracking.

Download free