Executive summary
An AR aging analysis starts with a report that sorts open receivables by how late they are. Used well, it shows which dollars are likely to arrive on their own, which will arrive only if someone acts, and which are heading toward a write-off. Used poorly, it becomes a call list sorted by balance, and the team spends its week on the hardest accounts.
This guide covers the method: bucket and concentration analysis, a prioritization score (dollars × probability of collection ÷ effort), roll rates that show how fast invoices deteriorate, promise-to-pay tracking, and reserve logic. DSO itself is covered in How to reduce DSO. Start by pulling an aging report that ties to the general ledger.
When to use this
Use this guide when:
- Past-due AR is growing and nobody can say which invoices matter most.
- Collectors work from the oldest or the largest invoice by habit.
- The 61+ day bucket keeps growing and the reserve is a flat percentage nobody has revisited.
- The receipts line of the 13-week cash flow forecast keeps missing.
- An auditor, lender, or buyer is asking how the allowance for doubtful accounts was set.
Do not start here if the AR subledger does not reconcile to the general ledger, or if unapplied cash and credit memos are months old. They make every bucket look older than it is. Clear them first.
AR aging analysis method: buckets, roll rates, reserves
1. Aging buckets
Age receivables by days past due date, not days since invoice date. Invoice-date aging mixes terms with lateness: a net-60 invoice at day 45 is not late, and a net-15 invoice at day 45 is 30 days late. Use consistent buckets, for example:
| Bucket | Meaning |
|---|---|
| Current | Not yet due |
| 1-30 | 1 to 30 days past due |
| 31-60 | 31 to 60 days past due |
| 61-90 | 61 to 90 days past due |
| 90+ | More than 90 days past due |
For each bucket, report dollars, share of total AR, and invoice count. Dollars show exposure. Counts show whether the problem is a few large items (a negotiation) or many small ones (a process).
2. Concentration
Customer share of AR = Customer balance ÷ Total AR
Top-N concentration = Sum of the N largest customer balances ÷ Total AR
Run it for total AR and for past-due AR separately. A customer that is 8% of AR and 25% of past due is a different case from one that is 8% of both. Also check concentration by industry, region, and sales owner, because a single event can affect a group together.
3. Prioritization score
Expected cash = Invoice amount × Probability of collection within the planning window
Priority score = Expected cash ÷ Effort (collector hours)
The planning window is the period you are working to, such as 30 days. Probability is a judgment, so anchor it: use the customer's own history (how often past-due invoices of this age were paid within the window), the status (undisputed, disputed, customer in distress), and any documented promise. Effort is a rough estimate of collector or executive hours, including the time of non-collections staff who have to resolve a dispute.
The score ranks work per hour, not per dollar. It puts cheap, likely cash first and large, unlikely cash into a separate, owned plan. That does not mean ignoring the large balance. It means a large balance with a low score needs an executive, a legal view, or a credit decision, not another reminder.
4. Roll rates
Roll rate (bucket A to bucket B) = Dollars in bucket A at the start of the period that are in bucket B at the end ÷ Dollars in bucket A at the start
Track the same invoices from one month-end to the next. Roll rate answers: of what was current last month, how much is now 1-30 days late? Of what was 61-90, how much is now 90+? Dollars that were paid or credited leave the matrix. Dollars that stay in the same bucket for two periods without being collected are worth a flag. Rising roll rates in the early buckets are the first sign of a collection or customer problem, and they appear before the 90+ bucket grows.
5. Promise-to-pay tracking
Promise-keep rate = Promises kept on or before the promised date ÷ Promises made
Promise-weighted receipts = Sum of promised amounts × Historical keep rate for that collector, customer type, or amount band
A promise is a date and an amount from a named person at the customer, recorded when made. Silence and "we'll look into it" are not promises. Measure the keep rate and use it to haircut the cash forecast.
6. Reserve logic
Reserve by bucket = Bucket balance × Estimated loss rate for that bucket
Total reserve = Sum of bucket reserves + Specific reserves for named accounts
The loss rate for a bucket is the share of dollars that ended as write-offs among invoices that sat in that bucket at some past point. Build it from your own history, by cohort. Then overlay specific reserves for accounts you know are impaired (bankruptcy, dispute you expect to lose), and consider current conditions. Accounting standards (CECL under US GAAP, expected credit loss under IFRS 9) require an expectation of losses, not just a historical average, and your auditors will have a view on the documentation they expect. Confirm the approach with them.
Worked example (illustrative)
The numbers below are made up to show the method. They are not benchmarks. All amounts are in $K.
Aging and concentration
A manufacturer has $6,000K of total AR at month-end.
| Bucket | AR ($K) | Share |
|---|---|---|
| Current | 3,900 | 65.0% |
| 1-30 | 1,000 | 16.7% |
| 31-60 | 600 | 10.0% |
| 61-90 | 300 | 5.0% |
| 90+ | 200 | 3.3% |
| Total | 6,000 | 100.0% |
Past due is 6,000 − 3,900 = $2,100K, or 35% of AR. The top five customers by balance (900, 700, 500, 400, and 300) total $2,800K, which is 46.7% of AR. The next step is to see how much of the $2,100K past due belongs to those five. If most of it does, the plan is five account conversations, not a campaign.
Prioritization
Six past-due accounts with the collector's estimates:
| Account | Amount ($K) | P(collect in 30 days) | Expected cash ($K) | Effort (hours) | Score ($K per hour) |
|---|---|---|---|---|---|
| Alpha | 240 | 90% | 216.0 | 1 | 216.0 |
| Delta | 90 | 85% | 76.5 | 1 | 76.5 |
| Bravo | 180 | 80% | 144.0 | 2 | 72.0 |
| Charlie | 150 | 50% | 75.0 | 5 | 15.0 |
| Foxtrot | 300 | 20% | 60.0 | 10 | 6.0 |
| Echo | 60 | 30% | 18.0 | 4 | 4.5 |
Work order: Alpha, Delta, Bravo, Charlie, Foxtrot, Echo. Foxtrot has the largest balance and ranks fifth. Sorting by balance would have put it first and consumed ten hours for $60K of expected cash. Foxtrot still needs a plan, but the plan is an executive call or a dispute resolution, with its own owner, not a place for a new collector to start.
The first three take four hours and are expected to bring in $436.5K (216.0 + 76.5 + 144.0). The estimates are judgments, so record them and compare them with outcomes next month. If accounts rated 80% pay 50% of the time, the probabilities need recalibrating.
Roll rates
Opening balances by bucket at the start of the month and the dollars from each that were one bucket older at month-end:
| Bucket at start | Opening ($K) | Rolled to next bucket ($K) | Roll rate |
|---|---|---|---|
| Current | 3,700 | 370 | 10.0% |
| 1-30 | 900 | 270 | 30.0% |
| 31-60 | 500 | 200 | 40.0% |
| 61-90 | 250 | 150 | 60.0% |
Each step costs more: 10% of current invoices became late, but 60% of those at 61-90 days rolled to 90+. The old bucket is not a slow version of the new one. At the current 61-90 balance of $300K, a 60% roll rate would put $180K into 90+ next month without intervention. That shows where calls change the outcome: the 31-60 bucket, before the large step.
Promise-to-pay
A collector secured 10 promises last month and eight were kept on or before the date, a keep rate of 80%. If this month the same collector holds $400K of promises, the promise-weighted receipts are $400K × 80% = $320K. If instead the historical keep rate for that customer type is 70%, the figure is $280K. Use the lower, better-matched rate in the forecast and note the difference.
Reserve
Illustrative loss rates by bucket (in a real analysis, these come from your write-off history by cohort):
| Bucket | AR ($K) | Loss rate | Reserve ($K) |
|---|---|---|---|
| Current | 3,900 | 0.5% | 19.5 |
| 1-30 | 1,000 | 2.0% | 20.0 |
| 31-60 | 600 | 5.0% | 30.0 |
| 61-90 | 300 | 15.0% | 45.0 |
| 90+ | 200 | 40.0% | 80.0 |
| Total | 6,000 | 194.5 |
The bucket reserve is $194.5K, or 3.2% of AR. Add specific reserves for named accounts on top if you expect a loss, and avoid counting the same invoice twice. The 90+ bucket is 3.3% of balance and 41% of the reserve (80.0 ÷ 194.5), which is the pattern you should expect: a small share of dollars carries most of the expected loss.
Diagnostic questions
Answer these from the ERP and the AR subledger.
- Does the aging report tie to the general ledger at month-end, with unapplied cash and credits shown separately?
- Is aging calculated from the due date, and do terms in the system match the contracts?
- What share of past-due dollars sits in the top 10 customers?
- How much of past-due AR is disputed, and who owns each dispute?
- For each past-due invoice over your materiality threshold, who is the named owner, and when was the last documented contact?
- What were the roll rates between buckets for the last six months?
- How many promises to pay were made last month, and what share was kept?
- What have write-offs been in the last three years, by the age bucket at which the invoice sat before write-off?
- How was the current reserve set, when was it last updated, and who approved it?
- Which customers have exceeded credit limits, or have shipments continuing while 61+ balances exist?
Reading the answers: if question 1 fails, fix data before analysis. If question 4 is high, route disputes to the owner of the cause before calling anyone. If question 6 shows rising roll rates from current to 1-30, look at billing quality and terms before collections effort.