Cellwise Try it free

Free Excel template

Free Excel accounts receivable aging report template

For owners, bookkeepers and credit controllers who invoice customers on terms and need to see who owes what and for how long. Enter each open invoice with its date, amount and payments received; the template works out the due date, how many days it is past due as of the date you choose, sorts the balance into Current, 1-30, 31-60, 61-90 and Over 90 day buckets, and totals each bucket.

cellwise-accounts-receivable-aging-template.xlsxExcel workbook · 6.1 KB · works in Excel, Google Sheets, Numbers and LibreOffice · no signup
Download free template

Preview and try it

This is the template's sheet, calculated by the same engine as the Cellwise app. Change any number to see the formulas react before you download.

ABCDEFGHI
1Accounts receivable aging report
2Aging as ofOct 31, 2026
3Default terms (days)30
4CustomerInvoice #Invoice dateDue dateAmountPaidBalanceDays past dueAging bucket
5Alder Creek LandscapingINV-2291Jun 18, 202646221345003450105Over 90 days
6Bayview Property MgmtINV-2304Jul 9, 20264624212805007808461-90 days
7Cobalt FitnessINV-2318Jul 30, 2026462632960029606361-90 days
8Alder Creek LandscapingINV-2325Aug 12, 2026462761875018755031-60 days
9Delta Print CoINV-2331Aug 21, 20264628564064000Paid
10Evergreen CafeINV-2340Sep 3, 2026462989200920281-30 days
11Bayview Property MgmtINV-2347Sep 10, 202646305215002150211-30 days
12Fairway Auto BodyINV-2352Sep 15, 202646310430020002300161-30 days
13Cobalt FitnessINV-2360Sep 24, 20264631911900119071-30 days
14Granite Peak BuildersINV-2366Sep 29, 20264632468000680021-30 days
15Delta Print CoINV-2371Oct 2, 20264632771507150Current
16Evergreen CafeINV-2378Oct 8, 2026463331040010400Current
17Harbor Lights MarinaINV-2383Oct 13, 2026463383275032750Current
18Granite Peak BuildersINV-2389Oct 19, 2026463445120051200Current
19Fairway Auto BodyINV-2394Oct 22, 20264634786008600Current
20Ironwood FurnitureINV-2398Oct 27, 2026463522430024300Current

How the formulas work

Days past due as of a fixed date

H5=IF(A5="","",IF(G5<=0,0,MAX(0,$B$2-D5)))

The aging date in B2 minus the due date gives the days past due; MAX(0,...) turns invoices that are not yet due into 0. Paid invoices also return 0. Using an as-of date instead of TODAY() means the report matches your month-end close and gives the same answer every time you open it. Change B2 to re-age the whole list.

Put each invoice in an aging bucket

I5=IF(A5="","",IF(G5<=0,"Paid",IF(H5=0,"Current",IF(H5<=30,"1-30 days",IF(H5<=60,"31-60 days",IF(H5<=90,"61-90 days","Over 90 days"))))))

The nested IF tests the smallest bucket first, so each invoice lands in exactly one bucket. The labels include the word days on purpose: a bare "1-30" can be read by Excel as a date in a SUMIF criterion and match nothing.

Total the balance in each bucket

E28=SUMIF($I$5:$I$24,A28,$G$5:$G$24)

SUMIF adds the open balance of every invoice whose bucket matches A28. Column F divides each bucket by the total open balance. In the sample, more than half of the open balance is past due and Alder Creek has an invoice over 90 days, which is where collection calls should start.

One customer's past-due balance

E38=SUMIFS($G$5:$G$24,$A$5:$A$24,B36,$H$5:$H$24,">0")

SUMIFS adds balances that meet both conditions: the customer is the one typed in B36 and the invoice is past due. Type another customer name in B36 before you pick up the phone. The name must match the list exactly, so watch for trailing spaces.

Make it yours

FAQ

How do I calculate days past due in Excel?

Subtract the due date from the date you are aging to, for example =$B$2-D5, and wrap it in MAX(0,...) so invoices that are not yet due show 0. Dates are stored as day numbers, so the subtraction gives whole days.

What are the usual aging buckets?

Current (not yet due), 1-30, 31-60, 61-90 and over 90 days past due. Some businesses age from the invoice date instead of the due date; to do that, replace D5 with C5 in the days formula and say so on the report.

Why not use TODAY() for the aging date?

TODAY() changes every day, so last month's report would show different numbers when you reopen it. A typed as-of date such as the last day of the month keeps the report fixed and matches your books.

Functions used

Related guides

More free templates

Updated