Reporting · Guide
Accounts receivable aging explained
An aging report sorts what customers owe by how long it has been owed. It's the difference between "we're owed $840,000" and "we're owed $840,000, and $210,000 of it is over 90 days old."
What a bucket is
A bucket groups receivables by how far past due they are. The conventional set is Current (not yet due), 1–30, 31–60, 61–90 and 90+ days. Some businesses split at 120 days instead. The labels matter less than being consistent over time — a report that changes its buckets month to month can't be compared to itself.
Days overdue, calculated properly
Age from the due date, not the invoice date. The gap is the payment terms, not lateness. A Net 60 invoice issued yesterday is not 1 day old in any sense a collections team cares about:
Days overdue = MAX(0, StatementDate - DueDate)
Bucket =IFS(DaysOverdue = 0, "Current",
DaysOverdue <= 30, "1-30",
DaysOverdue <= 60, "31-60",
DaysOverdue <= 90, "61-90",
TRUE, "90+")
The MAX(0, …) is not decoration. Without it, invoices not yet due produce negative days and fall outside every bucket, so the aging total silently fails to tie to the ledger.
Age invoices, not customers
Summing a customer's balance and aging the total is the most common mistake in the report. A customer can be current on their newest balance and 90 days late on an older one, and those two facts need completely different actions. Age each open document, then total the buckets by customer.
Both views are useful: the invoice-level report tells you what to chase, and the customer-level roll-up tells you who to escalate.
Net of what, exactly?
An aging should show open items, meaning:
- Payments applied. Part payments must reduce the specific invoice, not sit as an unallocated credit.
- Credit notes applied. An unapplied credit note inflates receivables and makes the report disagree with the control account.
- Fully settled documents excluded. Paid invoices shouldn't appear in any bucket with a zero — they belong off the report.
Unapplied cash and unapplied credits should be shown separately, and they should be reconciled to the ledger, not quietly parked.
The aging total must equal the AR control account as at the same date. If it doesn't, the difference is almost always unapplied cash, unapplied credits, or a document dated in the wrong period. Find it before the report goes out — after it goes out, someone else finds it.
What it's actually used for
- Collections priority. 90+ days is where recovery rates drop sharply. Work from the oldest bucket backwards, not the largest balance.
- Bad debt provision. Expected credit loss models apply different percentages per bucket — which only works if the buckets are computed consistently.
- Cash forecasting. The Current and 1–30 buckets are roughly your next 30 days of expected receipts, adjusted for your collection history.
- DSO. Days sales outstanding is driven by the same data; a wrong aging produces a wrong DSO and a misleading cash conversation.
- Credit control. A customer who moves from Current to 31–60 is a signal, and it's cheaper to act on it then than at 90+.
Reading it well
Look at the shape of the movement, not the snapshot. If the total is flat but the 61–90 bucket doubled, something is deteriorating while the headline number reassures you. Compare buckets month over month and note which customers moved between them — that's the part of the report with actual information in it.