Skip to content

FINANCE OPERATIONS

Accounts receivable aging report: build it, reconcile it, act on it

Read and build an accounts receivable aging report with due-date buckets, partial payments, credit notes, a ledger reconciliation and a practical action queue.

By Published 9 min read

THE SHORT ANSWER

What is an accounts receivable aging report?

An accounts receivable aging report groups open customer balances by age at a stated reporting date. For collection work, use days past the agreed due date, separate current invoices from overdue ones, and age only the remaining balance after applied payments and credits. Reconcile unused credits and unapplied cash before deciding what to chase.

Link to this answer
Fictional HUNT marketing scene of a woman in red relaxing in a yellow chair with a cup of coffee.
HUNT marketing illustration. The character and scene are fictional.

What an aging report tells you—and what it does not

An aging report answers a precise question: which customer balances were still open at this cutoff, and how old were they? It can reveal overdue exposure and help prioritize investigation. It does not tell you why an invoice remains unpaid or when the cash will arrive. Those require invoice and conversation context.

Stripe's explanation of accounts receivable aging covers unpaid invoices, credit memos and age ranges. Its worked example measures time from invoice issue. For the collection workflow here, we measure time from the due date instead. Both definitions can be useful, but they answer different questions. Read your accounting system's settings before treating a bucket as overdue.

The same invoice can have different ages without either calculation being an error
BasisExample as of 19 September 2026Meaning
Invoice-date agingIssued 20 August: 30 days oldHow long the invoice has existed.
Due-date agingDue 19 September: 0 days past dueIt is due today and belongs in Current in this guide.
Expected receipt dateClient says payment will reach the bank on 23 SeptemberA forecast assumption or commitment; it does not rewrite either age.

For the wider process around billing, ownership and weekly review, use our accounts receivable guide for agencies. This guide focuses on getting the report itself right and turning its exceptions into action.

Set the cutoff before exporting the data

Choose one as-of date, legal entity, currency and accounting basis. A report for 19 September must reflect transactions posted through that cutoff. A payment posted on 20 September can clear today's balance while leaving the invoice open in the 19 September snapshot. Rebuilding a past report from today's remaining balances will miss that distinction.

  1. Export invoices and the payment, credit and adjustment allocations needed to reconstruct the cutoff. Use the accounting system's historical aging report where available.
  2. Keep a stable invoice ID, customer legal entity, invoice date, due date, original amount, applied payments, applied credits and remaining balance. Include currency on every row.
  3. Keep unused customer credits and unapplied receipts visible in a separate reconciliation. Do not silently distribute them across old invoices.
  4. Check missing due dates, duplicate invoice IDs, negative balances and allocations dated after the cutoff. Resolve or label exceptions instead of forcing them into Current.
  5. Record the report settings and export time. Compare reports with the same basis; a setting change can move every bucket without any money changing hands.

A worked example with partial payments and credits

These six fictional invoices illustrate a service firm's report as of 19 September 2026. All payments and credit notes shown have been posted and applied to the stated invoices by the cutoff. There are no other invoice adjustments. Open balance equals original invoice amount minus applied payments minus applied credits.

Step 1: calculate remaining invoice balances; all amounts in USD
Customer / invoiceOriginalPayments appliedCredits appliedOpen balance
North / N-101$7,500$1,500$0$6,000
Orbit / O-202$3,000$0$0$3,000
Pine / P-303$10,000$4,000$1,000$5,000
Quartz / Q-404$4,500$0$500$4,000
Reed / R-505$3,500$1,000$0$2,500
Sable / S-606$1,500$0$300$1,200
Total$30,000$6,500$1,800$21,700

Use calendar days. An invoice due today or in the future is Current. An invoice due yesterday is 1 day past due. The overdue ranges below are inclusive and do not overlap: 1–30, 31–60, 61–90 and 91+ days. A partial payment reduces the amount in the original invoice's bucket; it does not restart that invoice's age.

Step 2: assign each open balance to exactly one due-date bucket
InvoiceDue dateDays past dueBucketOpen balance
N-10130 Sep 20260; not yet dueCurrent$6,000
O-20219 Sep 20260; due todayCurrent$3,000
P-30320 Aug 2026301–30$5,000
Q-40419 Aug 20263131–60$4,000
R-50520 Jul 20266161–90$2,500
S-60620 Jun 20269191+$1,200
Step 3: total the buckets and check the sum
Current1–3031–6061–9091+Total open invoices
$9,000$5,000$4,000$2,500$1,200$21,700

The overdue subtotal is $12,700: $5,000 + $4,000 + $2,500 + $1,200. It is 58.5% of the $21,700 positive open-invoice balance, rounded to one decimal place. That is a description of this fictional ledger, not a benchmark. Label the denominator, particularly when the ledger also contains customer credits.

Reconcile the report before contacting clients

A positive open-invoice total can differ from net AR because the customer ledger also holds credits not yet allocated to invoices. In this example, a $700 unused credit belongs to Pine and a $900 unapplied receipt belongs to Reed. Both have already been posted as credits to the same AR control account and customer subledger; neither is included in the applied amounts above.

A reconciliation bridge for this example's accounting treatment
ItemAmountCheck
Positive open invoices$21,700Agrees to the sum of all five aging buckets.
Less unused customer credit−$700Posted credit memo; invoice allocation still unresolved.
Less unapplied receipt posted to AR−$900Bank receipt recorded on Reed's account; remittance allocation pending.
Net customer subledger balance$20,100$21,700 − $700 − $900.
AR control account in the general ledger$20,100Same entity, currency, account scope and cutoff.
Unexplained difference$0Investigate any non-zero difference before relying on the report.

Your accounting system may present these credits within its aging report, in a separate column or in another account. Follow the actual postings. A receipt merely visible on a bank statement, but not yet posted to AR, cannot be subtracted in the same bridge. Nor should you subtract a credit again if the report already includes it.

Do not tell Reed to pay $2,500 before investigating its $900 receipt. Confirm the remittance and allocate it under the normal controls. If it belongs to R-505, that invoice becomes $1,600 open and stays in 61–90 days at this cutoff. Allocation changes the positive invoice total and the unapplied-cash line by the same $900; net AR remains $20,100. A credit belonging to one customer cannot offset another customer's debt.

  • Check whether one report includes tax, retainage or other receivable accounts that the other excludes.
  • Look for direct general-ledger postings that have no matching customer-subledger entry.
  • Confirm transaction dates, exchange-rate treatment and whether the system includes draft or unposted records.
  • Investigate payments, credits, write-offs and reversals around the cutoff. Keep an explanation and owner for each remaining difference.

Turn the report into a reason-and-owner queue

Age helps identify exposure; the reason unpaid tells you what to do. Add an internal owner, next action and review date to each exception. Prioritize amount, missed commitments, unresolved disputes and client context together. The oldest invoice need not be the first email of the day.

Illustrative next actions after the balance check
AccountWhat the team knowsOwner and next action
NorthNot due; submitted through the agreed route.Finance: check acceptance before the due date.
OrbitDue today; scheduled payment run is unconfirmed.Finance: confirm status without calling the invoice overdue.
PineUnused credit and missing PO reference.Bookkeeper: resolve the credit. Account owner: obtain the correct PO and resubmission instructions.
QuartzClient has promised a specific receipt date.Finance: retain the original due date and review the promise on its agreed date.
ReedUnallocated cash and a question about billed hours.Bookkeeper: match the receipt. Delivery lead: resolve the specific hours question.
SableA prior payment commitment was missed.Finance lead: review the account and agree a documented escalation with the relationship owner.

For Pine's administrative issue, use the missing purchase-order invoice guide. For other collection decisions, follow our overdue-invoice workflow. Keep a dispute in the aging report until the accounting record changes; pausing reminders should not make the balance disappear.

Feed confirmed commitments and documented assumptions into a separate 13-week cash flow forecast. A 61-day-overdue invoice is not automatically a receipt next week, and a current invoice is not guaranteed to arrive on time.

Copy the formulas for a small invoice-level report

For a single-currency sheet, put the fixed as-of date in L1 as a real date value. Use A for invoice ID, B for invoice date, C for due date, D for original amount, E for payments applied by the cutoff, F for credits applied by the cutoff, G for open balance, H for days past due and I for the bucket. These formulas assume the simple invoice treatment used above; keep other adjustments explicit when needed.

aging formulas for Excel or Google Sheets

G2 — Open balance
=D2-E2-F2

H2 — Days past due
=IF(OR(C2="",G2<=0),"",MAX(0,$L$1-C2))

I2 — Bucket
=IF(G2<=0,"Closed / credit",IF(C2="","Missing due date",IF(C2>=$L$1,"Current",IF(H2<=30,"1-30",IF(H2<=60,"31-60",IF(H2<=90,"61-90","91+"))))))

Total for the 1-30 bucket
=SUMIF(I:I,"1-30",G:G)

Total positive open invoices
=SUMIF(G:G,">0",G:G)

Fill the row formulas down and change the quoted bucket label for each summary total. Check that the five age buckets plus any Missing due date exception total equal the positive open-invoice total. Zero and negative balances need separate review. Some spreadsheet locales use semicolons instead of commas. Do not use TODAY() for a report you need to reproduce later: tomorrow's date changes the result.

Common questions when reviewing an aging report

Does an invoice become overdue on its due date?

In this report, an invoice due today is Current and becomes 1 day past due the following calendar day. A contract, local rule or internal policy may affect payment timing and how weekends are handled. Document that separately; do not mix aging conventions between reports.

Should a disputed invoice be removed from aging?

No: a dispute alone does not settle the invoice. Flag the disputed amount and pause unsuitable reminders while the authorized people resolve it. Approved credit notes, payments or other posted adjustments then change the balance under your accounting policy.

Is the average age of this report the same as DSO?

No. An average of open-invoice ages describes the invoices still outstanding at one date. Days sales outstanding relates an AR balance to credit sales over a period. Neither measure is the same as the actual average time taken to pay a set of settled invoices.

Sources & editorial notes

Published by . Examples and workflows are illustrative, not customer results. Sources checked on .

  • Stripe: Accounts receivable ageing explained. Background on aging reports, unpaid invoices, credit memos and age ranges; updated 14 May 2024. Stripe's example uses invoice age. This article explicitly uses due-date aging. The six-invoice ledger, reconciliation, formulas and action queue are original illustrative examples.

Read our editorial standards and current product status. Have a correction? Contact HUNT.

THE NEXT STEP

Give each outstanding invoice a useful next step

HUNT is building AI personas for invoice follow-ups with invoice context and human controls. Join early access to explore the workflow; live outreach and reply delivery are still in development.

Request HUNT early access