Last updated November 6, 2026
General information, not tax or legal advice. The rules depend on your country and your situation, so check anything with a tax or legal consequence with your accountant.
An aged receivables report lists what every customer owes, split by how long it has been overdue, usually as current, 1 to 30, 31 to 60, 61 to 90 and over 90 days. Read the total first, then the oldest column, then who's in it. Each age calls for a different action.
What does an aged receivables report look like?
An aged receivables report has one row per customer and one column per age band, with totals at the bottom. Here's an invented example, in euros including VAT, as at 31 October 2026.
| Customer | Current | 1–30 | 31–60 | 61–90 | Over 90 | Total |
|---|---|---|---|---|---|---|
| North Quay Ltd | 2,400 | 1,200 | 3,600 | |||
| Alder & Co | 3,000 | 1,500 | 4,500 | |||
| Lumen Studio | 1,800 | 1,800 | ||||
| Ferris Joinery | 2,100 | 2,100 | ||||
| Tallis Events | 1,000 | 1,000 | ||||
| Total | 4,200 | 4,200 | 1,500 | 2,100 | 1,000 | 13,000 |
| Share | 32.3% | 32.3% | 11.5% | 16.2% | 7.7% | 100% |
The bands should count from the due date. A report that counts from the invoice date shows every Net 30 invoice as a month old on the day it falls due, which makes good customers look bad. Check which one your report uses before you act on it.
How do you read an aged receivables report?
Read an aged receivables report from the total down to the individual customer, asking one question at each step. On the example above:
- How much is owed compared with what you bill? If this firm invoices about €9,000 a month, €13,000 is 13,000 ÷ 9,000 × 30 = about 43 days of sales. On Net 30 terms, that's slower than it should be.
- How much is overdue? Everything except the first column: €8,800, or 67.7% of the total.
- How much is old? Over 60 days is €3,100, or 23.8%. This is the money most at risk.
- Who is concentrated? Alder & Co owes €4,500, 34.6% of the total, so one bad month for them is a bad month for you.
- What moved? Compare with last month's copy. A customer drifting from 1–30 into 31–60 tells you more than a single snapshot does.
Then look at why, because the report can't tell you. An invoice can be old because the customer has no money, because it never reached the right person, or because they're disputing it. Each of those needs a different conversation.
What should you do about each age bucket?
Each age bucket on an aged receivables report calls for a different action, and the point of the report is to make sure each one happens.
| Age | What to do |
|---|---|
| Current | Check the invoice was delivered and has any PO number it needs. Nothing else yet |
| 1–30 days | Send a polite reminder with the invoice attached. See the reminder sequence |
| 31–60 days | Phone. Ask for a payment date and write it down. Ask whether anything is in dispute |
| 61–90 days | Send a written final notice. Consider pausing further work, and whether to claim interest on the debt |
| Over 90 days | Decide: collection agency, small claim, or write-off. Ask your accountant about VAT relief |
VAT relief on bad debts has its own conditions in each country. The EU's starting point is Article 90 of the VAT Directive, and in the UK it's HMRC's Notice 700/18.
How do you build an aged receivables report in a spreadsheet?
You can build an aged receivables report in a spreadsheet with one row per unpaid invoice and two formulas. Set up these columns:
| Column | Holds |
|---|---|
| A | Customer |
| B | Invoice number |
| C | Due date |
| D | Balance still owed, including VAT |
| E | Days overdue |
| F | Age band |
Put the report date in cell H1, so a copy saved today still gives today's answer next month. Then, in row 2:
- Days overdue, in E2:
=MAX(0,$H$1-C2) - Age band, in F2:
=IF(E2=0,"Current",IF(E2<=30,"1-30",IF(E2<=60,"31-60",IF(E2<=90,"61-90","Over 90"))))
Copy both down, then use a pivot table with customers in the rows, age bands in the columns and the sum of balance in the values. Check the grand total against your list of open invoices. If they differ, an invoice is missing or a payment wasn't recorded.
Three things catch people out here. Use the balance, not the invoice total, or part payments vanish. Convert other currencies at one stated rate, so the columns can be added up. And leave void invoices out.
What an aged receivables report won't tell you
An aged receivables report won't tell you whether a customer's records agree with yours. For that, send a statement of account, which lists what you think they owe and invites them to say so if it's wrong. The report is for you, and the statement is for them.
Tracking overdue invoices in ERPFlow
ERPFlow has no aged receivables report and no age buckets. Here's what it has instead.
- The Invoices list filters by Overdue and Partially paid, with what's still due shown under the total. That list is your to-do list.
- The dashboard shows Outstanding and Overdue figures across the organisation in your base currency, without VAT, with the VAT beneath.
- A customer's Analytics tab shows that customer's outstanding amount, also net of tax with the tax beneath.
- Send payment reminder on an overdue invoice emails the PDF with the days overdue and the amount due. Someone has to send each one.
To build the spreadsheet above, export your invoices as CSV. The export gives one row per invoice line, with the customer, number, due date, status, quantity, price, discount and tax percent. It doesn't include payments, so take balances for part-paid invoices from the Partially paid filter.