A landscaping company owner once told me she thought business was going great. Revenue was up 20% year over year, her calendar was booked solid, and she'd just hired a fourth crew. Then she couldn't make payroll. Not because she wasn't earning money — because $38,000 of it was sitting in customer invoices that were 60, 90, even 120 days past due. She was profitable on paper and broke in her bank account, and she had no idea until it was almost too late.
That gap between "we're making money" and "we have money" is exactly what an accounts receivable aging report is built to catch. It's one of the least glamorous reports in small business finance, and one of the most important, because it's often the earliest warning sign that a healthy-looking business is about to have a cash flow problem.
What an Accounts Receivable Aging Report Actually Shows
An AR aging report is a snapshot of every unpaid customer invoice, sorted by how long each one has been outstanding. Instead of a single lump number — "customers owe us $50,000" — it breaks that total into time buckets so you can see exactly where the risk is concentrated.
A standard aging report groups invoices into columns like:
- Current — not yet due, still within the agreed payment terms
- 1–30 days past due — recently overdue, usually the largest bucket in a healthy business
- 31–60 days past due — starting to become a real concern
- 61–90 days past due — a serious collection problem
- 90+ days past due — often headed toward write-off territory
Each row lists a customer, their outstanding invoices, and which bucket those invoices fall into based on the due date (not the invoice date — that distinction matters, because payment terms like "net 30" or "net 60" shift when an invoice is actually considered late). The columns total up, and that grand total should tie back to the accounts receivable balance on your balance sheet. If it doesn't, something's out of sync in your books and needs to be reconciled before you trust the report.
Reading the Buckets: What's Normal and What's a Red Flag
The shape of your aging report tells a story. A healthy business typically has 70–80% or more of its receivables sitting in the current and 1–30 day buckets. That's not a coincidence — it means most customers are paying close to on time, and the business can reliably predict when cash will hit its account.
As balances migrate into the older buckets, the story changes:
- 1–30 days past due: This is often just the normal lag of a business day or two, a mailed check, or a customer who pays reliably but always a little late. It usually resolves itself with a friendly reminder.
- 31–60 days past due: This is where you should start paying real attention. A customer sitting here isn't just slow — they may be having their own cash flow trouble, disputing something on the invoice, or simply deprioritizing you. This is the point to pick up the phone rather than send another automated email.
- 61–90+ days past due: Statistically, the older a receivable gets, the less likely you are to collect it in full. Industry data consistently shows collection probability drops sharply past the 90-day mark — some estimates put it below 70% for invoices that old, and it keeps falling the longer they age. This bucket often warrants pausing new work for that customer, escalating to a collections conversation, or involving a collections agency.
DSO (Days Sales Outstanding) — the average number of days it takes to collect payment after a sale — is the summary metric that often gets tracked alongside the aging report. It varies a lot by industry: retail and cash-heavy businesses often run 5–20 days, professional services firms commonly sit at 30–60 days, and construction or manufacturing businesses with long payment cycles can run 60–90+ days. There's no single "good" number, but a rising DSO trend, even within a normal-looking range, is often the first sign that your customer base — or your collections discipline — is slipping.
Turning the Report Into a Collections Workflow
The aging report is only useful if it drives action. A lot of small businesses generate one, glance at the total, and move on — which wastes the report's real value: telling you who to call today.
A simple, repeatable workflow looks like this:
- Run the report weekly, not just at month-end. Cash problems compound quickly, and a customer who slips from 25 days to 35 days past due is much easier to recover than one who's already at 75 days.
- Match your response to the bucket. A 1–30 day invoice gets an automated or lightly personalized reminder. A 31–60 day invoice gets a direct phone call or email from a real person, not a template. A 61–90+ day invoice gets a firm conversation about a payment plan, and a decision about whether to keep extending credit (or providing new work) to that customer at all.
- Track patterns by customer, not just by invoice. A customer who's chronically 45 days late on every invoice isn't a one-time fluke — that's a signal to tighten their terms, require a deposit, or move them to a shorter payment cycle.
- Set a bad debt reserve. Once you have historical data, estimate what percentage of receivables typically go uncollected and set aside an allowance for doubtful accounts against it — either as a flat percentage of sales (e.g., "we historically write off about 2% of revenue") or, more precisely, by applying a higher write-off percentage to older aging buckets than to current ones. This keeps your books honest: recognizing that not every dollar of "revenue" you've booked will actually turn into cash.
From Collections Tool to Cash Flow Forecast
The most underused feature of an aging report is forward-looking, not backward-looking. Once you know roughly how long each customer segment takes to pay, you can build a rolling cash flow forecast instead of just reacting to whatever lands in the bank account this week.
If your current and 1–30 day buckets historically convert to cash within two weeks, and your 31–60 day bucket has a lower but still meaningful collection rate, you can project — with real confidence — how much cash is likely to arrive over the next 30 and 60 days. That's the difference between finding out you can't make payroll the day before it's due, and knowing three weeks in advance that you need to accelerate collections, delay a discretionary purchase, or draw on a line of credit.
This is especially important for seasonal or project-based businesses, where revenue and cash timing can diverge for months at a stretch. A growing top line with a deteriorating aging report isn't growth — it's a business quietly extending more and more interest-free credit to its customers.
Keep Your Books Honest, Not Just Your Invoices
An aging report is only as reliable as the ledger behind it — invoice dates, due dates, and payment terms all have to be recorded consistently for the buckets to mean anything. This is one of the places where plain-text accounting has a real advantage: because every invoice and payment is a version-controlled entry rather than a black-box record in proprietary software, it's straightforward to see exactly when a receivable was booked, when it was due, and when (or if) it was paid — no reconciling two systems to figure out why the totals don't match.
Beancount.io gives you that transparency for free, with plain-text accounting that's easy to audit, easy to script against, and easy to trust when you're staring at a report that's telling you something urgent about your cash flow. Get started for free and build a set of books you can actually rely on when it matters most.