Accounts Receivable Aging: How to Track Who Owes You What
An aging report sorts unpaid invoices by how late they are. Ten minutes a week with one is the cheapest cash-flow habit there is.

Accounts receivable (AR) is money customers owe you for invoices you've sent. An aging report groups those unpaid invoices by how long they've been outstanding, so you can see at a glance what's current, what's slipping and what's at risk.
What an aging report looks like
| Customer | Current | 1–30 days late | 31–60 | 61–90 | 90+ | Total |
|---|---|---|---|---|---|---|
| Harbor & Pine Co. | $2,400 | $2,400 | ||||
| Greenline Builders | $1,150 | $860 | $2,010 | |||
| Riverside Dental | $640 | $640 | ||||
| Kline Media | $1,900 | $1,900 | ||||
| Oak & Iron Ltd | $450 | $450 | ||||
| Total | $3,550 | $860 | $640 | $1,900 | $450 | $7,400 |
| % of total | 48% | 12% | 9% | 26% | 6% | 100% |
"Current" means not yet due. Some reports age from the invoice date instead of the due date; either works if you're consistent. Aging from the due date is more useful for chasing.
How to read it
- Most of your AR should be current. If more than a quarter is over 30 days late, collections need attention.
- Look at customers, not just buckets. One customer appearing in several columns is a pattern.
- The older a debt, the less likely you'll collect it. Invoices over 90 days late have a much lower chance of being paid in full, which is why acting at 30 days matters.
- Watch the trend. Is the late share growing month to month?
Build one in a spreadsheet
If you don't use accounting software, a simple invoice log is enough. Columns:
Invoice no. | Customer | Invoice date | Due date | Amount | Paid date | Amount paid | Balance
Then add a column for days overdue:
=IF(Balance=0, "", MAX(0, TODAY() - DueDate))
and a bucket column:
=IF(Balance=0,"Paid",IF(DaysOverdue=0,"Current",IF(DaysOverdue<=30,"1-30",IF(DaysOverdue<=60,"31-60",IF(DaysOverdue<=90,"61-90","90+")))))
A pivot table by customer and bucket gives you the report above.
Turning the report into action
A weekly routine:
| Bucket | Action |
|---|---|
| Current, due this week | Optional friendly heads-up |
| 1–30 days | Reminder emails; see templates |
| 31–60 days | Phone call, pause further work, statement |
| 61–90 days | Final notice, late fees if agreed |
| 90+ days | Collections, small claims or write-off decision |
Useful numbers
Days sales outstanding (DSO) estimates how long, on average, it takes to get paid:
DSO = (Accounts receivable ÷ Credit sales in the period) × Days in the period
If you have $7,400 outstanding and invoiced $12,000 over the last 30 days: (7,400 ÷ 12,000) × 30 = 18.5 days. Compare it with your payment terms. A DSO well above your terms means customers are paying late.
Beyond collections
An aging report also tells you:
- Which customers to require deposits from next time
- Whether to shorten terms for certain clients
- What to provide for as bad debts at year end
- Whether invoice financing would help, and which invoices lenders would accept (they generally avoid anything over 90 days)
Log each invoice as you create it, and your aging report practically builds itself.
Open the invoice generatorSend statements too
A monthly statement of account shows each customer their own aging. It's a neutral way to prompt payment without chasing invoice by invoice.


