Collections Aging Review: Reconcile the Buckets Before You Chase

Run aging on one consistent basis, tie it to the ledger, and give each overdue item a reason and owner. Includes NetSuite, Sage, Oracle, and SAP settings.

A distributor’s aging report shows an invoice in the 31–60 bucket. The customer has 60-day terms. The invoice is not late; the report aged it by document date. Two rows down, a customer who paid on Friday still shows past due because AR applied the receipt on Monday. Both items are on this morning’s call list.

Before collectors pick up the phone, the aging report has to answer two questions correctly: what is actually overdue, and why is each item still open. This guide covers how to run aging on a consistent basis, how the major ERPs differ, how to tie the report to the ledger, and how to route each open item to the person who can close it.

Once the aging ties out: the DSO calculator separates days caused by payment terms from days caused by late payment.

Why two aging reports disagree

When this month’s aging does not match last month’s, or finance’s version does not match collections’, the cause is usually one of these:

CauseWhat happensHow to spot it
Date basisOne report ages by document date, the other by due dateAn invoice moves buckets with no change in payment
Cutoff and close datesA rerun reflects transactions closed after the original cutoffCredits appear in one export and not the other
Unapplied cash and creditsOne report nets them against the customer, the other excludes themTotals differ by the unapplied balance
ScopeDifferent entities, business units, currencies, or customer groupsA transaction appears on one side only
SettingsStatement cycles, future-dated items, exclusionsA report change looks like a behaviour change

Fix the report before you draw conclusions from it. An invoice that moved buckets because someone switched from transaction date to due date has not become more urgent.

Save the settings with every snapshot

Keep two views. A frozen month-end snapshot for comparing periods, and a current view for deciding who to call today. For each snapshot, save the as-of date, date basis, entity or business-unit scope, currency, and filters, so another analyst can reproduce it.

ERPReportWhat the documentation says to watch
NetSuiteA/R Aging DetailGroups unpaid invoices and statement charges by customer or project, and uses transaction close dates rather than application dates. Rerunning an older period can reflect closures that happened later. Oracle
Sage 100Accounts Receivable Aged Invoice ReportSelect invoice detail to see what makes up a balance; there are separate options for aging date and exclusions, including future-dated transactions. Sage
Sage IntacctCustomer AgingCan filter by bill date, due date, or GL posting date; the detailed version shows document numbers and dates. Sage
Dynamics 365 FinanceCustomer agingBalance as of sets the balance date; Aging as of sets the bucket date; Criteria chooses the transaction date used, such as due date. Microsoft
AcumaticaAR Aging (AR631000)Groups by statement cycle and customer; cycle settings decide whether buckets are aging or financial periods; amounts are in base currency. Acumatica
Sage 300A/R Aged Trial BalanceCan age by document date or due date. Sage
Oracle FusionReceivables Aging by General Ledger AccountShows balances as of an accounting date; Oracle recommends aligning its parameters with the Receivables to GL Reconciliation for on-account credits, unidentified payments, and unapplied cash. Oracle

For the call list, age by due date. For accounting cutoff, confirm the posting-date view separately. In Acumatica, if you change statement cycles, rerun the old and new views with the same cutoff and record the reporting change separately from any change in when customers paid.

Tie the aging to the ledger before anyone chases

Aging is a subledger report. Before using it for collections priorities or a DSO calculation, reconcile its total to the trade receivables control account at the same date.

Worked example (illustrative)

At month-end, the aging report totals $812,400. The receivables control account in the general ledger shows $798,900. Difference: $812,400 − $798,900 = $13,500.

Investigation finds that the report was run with settings that leave out two credit items, both of which reduce the receivables control account:

  • $9,000 of unapplied cash from a customer whose remittance has not arrived.
  • A $4,500 on-account credit held for another customer.

Check: $9,000 + $4,500 = $13,500. The aging overstates what customers owe on a net basis by $13,500, and collectors working from it may be chasing customers who have money sitting with you. Rerun the report with credit items included so it ties to the ledger, show both credits against their customers on the call list, and apply the $9,000 as soon as the remittance identifies the invoices. Apply the on-account credit only on the customer’s instruction.

Oracle Fusion’s recommendation to align aging and reconciliation parameters exists for exactly this reason. Business units that make different choices will produce results that look comparable until someone tries to explain the difference.

Give every open item a reason and an owner

Once the report is reliable, open the item detail before assigning a balance to a collector. A receipt, credit, or deduction can change what the customer owes even while the original invoice stays open.

What the detail showsWho acts nextWhat to measure
Accepted invoice, past due, no dispute or receiptCollector asks for a payment date and records the promiseWhether the promised payment arrived
Receipt confirmed but unappliedCash application checks remittance and allocation; collector holdsTime from receipt to application
Advance or credit awaiting applicationAR confirms which invoice it reducesTime to application
Customer deducted for shortage, freight, or priceClaims owner checks evidenceTime from claim to decision
Customer rejected the invoiceBilling corrects and confirms acceptanceTime from rejection to acceptance
Receipt with no reliable payer matchCash application traces the bank entryTime to identify

In Sage Intacct, an unapplied advance can make a past-due account look small while the invoice stays on the call list. Open both records in the entity where they were recorded and confirm the advance belongs to that invoice before taking the account off the list. A net balance by customer can hide which invoice still needs attention.

Check promises against what was posted

The customer paid on Friday as promised but deducted a freight charge. In SAP, by Monday the original invoice may be cleared and a residual item open for the difference. SAP S/4HANA’s Process Receivables includes a Promises to Pay tab where collectors can see customer promises and payments assigned through process integration. SAP’s Promise to Pay documentation. Before marking the promise missed, check what arrived and how it posted. Keep the residual item’s reference with the promise so the freight deduction does not disappear from follow-up when the original invoice clears.

Compare segments that are actually comparable

  • Branches and plants. If a customer’s open balance is shared across branches, leave it in a shared group rather than forcing an allocation. Check branch totals against the full aging report.
  • Business units. Confirm that the aging export and the credit sales report cover the same unit and accounting currency.
  • Customer groups. If a child account moved into or out of a parent group, list the affected invoices before comparing periods.
  • Card versus invoiced sales. Instant card sales can inflate the sales figure without creating the receivables you are measuring. Leave them out of a credit-sales comparison if they never enter the balance.
  • Large period-end billings. If a batch of progress or milestone invoices posted just before close, check how much is still within terms before reading anything into the jump.

Set benchmarks from your own queue

External DSO benchmarks will not tell you which of your items to work first. Use your own prior periods, for customers on comparable terms, and track separately:

  • Overdue undisputed balance on accepted invoices
  • Payment promises kept versus missed
  • Time from receipt to application
  • Time from claim to decision
  • Time from rejection to acceptance

When you change a reminder schedule or routing rule, check whether those items reached a decision sooner. Counting emails sent misses invoices that stayed open because they needed a correction. Once the aging reconciles, use the DSO and cash forecasting guide for the period comparison. Oracle’s DSO documentation explains why sales and terms affect the result.

Related: unapplied cash and consolidated remittances, customer deductions and short pays, and the AR automation guide.

Month-end aging review checklist

  • Snapshot saved with as-of date, date basis, scope, currency, and filters.
  • Aging total tied to the receivables control account; differences explained.
  • Unapplied cash, on-account credits, and advances shown against the right customers.
  • Call list built from due-date aging, not document date.
  • Every overdue item tagged with a reason: late, unapplied, disputed, rejected, or unidentified.
  • Each reason routed to its owner, with collectors holding where a receipt is pending.
  • Promises to pay checked against what posted, including residual items.
  • Segment comparisons use matching scope for balances and sales.

See this workflow on your own ERP data

ProcIndex connects to NetSuite, Sage Intacct, and QuickBooks. Bring a recent batch and we'll walk through it with your team.

Book a Demo See how the AR agent handles this