Cash flow is the lifeblood of a small business, and the biggest threat to cash flow is usually outstanding receivables. An accounts receivable (AR) aging report is the most important tool a bookkeeper has for tracking who owes you money and for how long. Here's how to read one, use one, and what to do when invoices end up in the dreaded 90+ day column.
What is an AR aging report?
An AR aging report organizes all your outstanding (unpaid) invoices by how long they've been outstanding. The "buckets" break overdue invoices into time ranges, typically:
| Bucket | What it Means | Action Level |
|---|---|---|
| Current (0โ30 days) | Invoice is within payment terms | Monitor |
| 31โ60 Days | Payment is 1โ30 days late | First follow-up |
| 61โ90 Days | Significantly overdue | Firm reminder + late fees |
| 91+ Days | Collection risk territory | Collections or write-off consideration |
A real AR aging report example
| Customer | Invoice | Current | 31โ60 | 61โ90 | 91+ | Total |
|---|---|---|---|---|---|---|
| ACME Corp | INV-044 | $5,200 | โ | โ | โ | $5,200 |
| Blue Sky LLC | INV-038 | โ | $3,800 | โ | โ | $3,800 |
| Delta Foods | INV-031 | โ | โ | $1,200 | โ | $1,200 |
| Eastside Co | INV-022 | โ | โ | โ | $2,500 | $2,500 |
| Franklin Inc | INV-040 | $900 | โ | โ | โ | $900 |
| TOTALS | $6,100 | $3,800 | $1,200 | $2,500 | $13,600 |
At a glance, this report tells you that $13,600 is outstanding. $6,100 is within terms (healthy), but $3,800 needs a first follow-up, $1,200 needs a firm reminder, and $2,500 from Eastside Co may be heading toward a collections problem.
What to do with each bucket
Current (0โ30 days)
No action needed other than monitoring. Some bookkeepers send a friendly "thank you for your business" email with invoice details at the time of invoice as a subtle reminder.
31โ60 days past due
Send a polite, professional reminder. Often a simple email with the invoice attached resolves it immediately โ many late payments are just oversights. Keep your tone friendly; the client relationship matters.
61โ90 days past due
This is when you escalate. Send a firm reminder with the invoice, clearly stating the amount owed and the overdue amount. Mention late fees if they're in your contract. Call the client directly if email hasn't worked. Pause new work for this client until the balance is resolved.
91+ days past due
At this stage, you have three options:
- Collections agency: They typically take 25-40% of collected amounts but do the hard work
- Small claims court: For amounts under your state's limit (usually $5,000-$10,000)
- Write off as bad debt: If you've exhausted all options, write it off as a business expense and get the tax deduction
How to use AR aging to improve cash flow
1. Run it weekly, not monthly
By the time an invoice shows up in the 61-90 day bucket on a monthly report, you've already lost two weeks of collection time. Run your AR aging report weekly so you can catch invoices in the 31-60 day bucket before they age further.
2. Require deposits on large projects
The best collection strategy is prevention. For project-based work over $5,000, require a 30-50% deposit before starting. This filters out slow-paying clients and reduces your risk.
3. Set clear payment terms and stick to them
If you offer Net 30 but never follow up until day 45, clients learn they have 45 days. Be consistent about your follow-up cadence from the moment an invoice becomes overdue.
4. Offer early payment discounts
A "2/10 Net 30" term means the client gets a 2% discount if they pay within 10 days. For a client with a $10,000 invoice, that's $200 โ often worth it to get cash 20 days faster.
Bad debt reserve and write-offs
For tax purposes and accurate financial reporting, it's good practice to set up a bad debt reserve (allowance for doubtful accounts). A common method is to apply a percentage to each aging bucket based on historical collection rates:
- Current: 0.5% reserve
- 31-60 days: 3-5% reserve
- 61-90 days: 10-20% reserve
- 91+ days: 50-80% reserve
Create your AR aging report instantly
Enter your invoices with dates and our calculator sorts them into aging buckets automatically