How to Build an Accounts Payable Aging Report: A Full Guide

Every finance team eventually asks the same two questions in the same week. What do we owe, and what happens if we pay it late?
An accounts payable aging report answers both. It sorts unpaid supplier invoices by how long they have been outstanding. The ones about to cost you something then stand out from the ones that can wait.
This guide covers what belongs in the report, how to build one from an invoice export, and how to read it once it exists.
What the report shows
The report is a table. Each row is a vendor, each column is an age band, and each cell holds the amount owed to that vendor within that band.
Age is measured from the invoice date or the due date, and which one you pick changes everything downstream. Measuring from the due date tells you how late you are. Measuring from the invoice date tells you how long the money has been sitting.
Most teams use due date, because the question that matters is lateness rather than elapsed time.
| Vendor | Current | 1–30 days | 31–60 days | 61–90 days | 90+ days | Total |
|---|---|---|---|---|---|---|
| Northwind Supply | $12,400 | $3,200 | — | — | — | $15,600 |
| Ardent Logistics | $8,000 | — | $6,750 | — | $2,100 | $16,850 |
| Beacon Print | $1,900 | $450 | — | — | — | $2,350 |
The 30-day bands are convention rather than law. Some teams use 15-day bands for tighter control, and a few use 45 or 60 where supplier terms run long.
One column deserves more attention than it usually gets. "Current" is where every decision you can still influence lives. Everything to its right is a record of choices already made, or of something that went wrong.
Teams that read the report right to left tend to spend their time on the past. Teams that read it left to right spend it on the week ahead.
Why lateness costs money
The buckets exist because late payment has a price, and early payment sometimes has a discount. The clearest public statement of that trade comes from US federal procurement rules.
The Prompt Payment rules from the Bureau of the Fiscal Service describe the obligation directly. In 1982, Congress passed the Prompt Payment Act "to require Federal agencies to pay their bills on a timely basis." The same Act requires agencies "to pay interest penalties when payments are made late, and to take discounts."
The consequence is stated just as plainly: "In most cases, when an agency pays a vendor late, the agency must pay interest." The current rate is published — for July 1 through December 31, 2026, it is 4.75%.
The other direction has value too. The same source notes that "A vendor may offer the agency a discount if the agency pays within a specified shorter time."
Private companies are not bound by those rules. But the economics are identical. Late fees and lost early-payment discounts are both real. An accounts payable aging report is the instrument that shows where each one is about to happen.
There is a definition worth borrowing as well. The rules describe a vendor who "submits a proper and valid invoice to the right people." When that happens, the agency must pay on time, and a payment that misses the date is late. That phrase — proper and valid invoice to the right people — is where most disputes actually live.
What you need before you start
Three things, and the first one causes most of the trouble.
An open invoice export with, at minimum, vendor name, invoice number, invoice date, due date, and outstanding amount. Paid invoices should be excluded or flagged, because including them silently doubles your totals.
A consistent as-of date. Every age calculation is relative to a single day, and mixing two reference dates produces buckets that cannot be reconciled with anything.
Agreed band definitions. Decide whether ages run from due date or invoice date, and whether "Current" means not yet due or under 30 days. Write it down, because the next person to build this will assume the other one.
| Field | Why it matters |
|---|---|
| Vendor name | The grouping key; inconsistent spellings split one vendor into three |
| Invoice number | Detects duplicates, which are common after a system migration |
| Invoice date | Alternative age basis; also needed for discount windows |
| Due date | Primary age basis for most teams |
| Outstanding amount | Must be the unpaid balance, not the original invoice total |
| Payment status | The filter that keeps settled invoices out |
How to build the report
Step 1: Upload the invoice export and state the as-of date
Start in Powerdrill Bloom with the export from your accounting system, as CSV or Excel. Describe what you want in natural language: an accounts payable aging report grouped by vendor, aged from due date, as of a specific day.
Naming the as-of date in the request matters more than it sounds. It is the difference between a report you can reconcile next month and one you cannot.
Ask for the unpaid balance rather than the invoice total in the same sentence. Partial payments are the most common source of inflated totals.
Step 2: Confirm the buckets and the vendor grouping
Check two things before reading any numbers.
First, the band definitions. Confirm that Current means what your team agreed it means, and that the boundaries do not overlap. An invoice exactly 30 days old should land in exactly one column.
Second, vendor names. Exports routinely contain "Acme Corp," "Acme Corp.," and "ACME CORPORATION" as three separate rows. Ask for near-duplicate vendor names to be grouped, then review the grouping rather than trusting it.
The total across all buckets should tie to your accounts payable balance. If it does not, the gap is almost always paid invoices left in the export or credits recorded as negatives.
Step 3: Generate the summary and the exception list
Ask for two outputs rather than one.
The first is the aging table itself, by vendor, with a total row. The second is a short exception list. That list should cover invoices past 60 days, discount windows closing this week, and any vendor whose total moved sharply since last period.
The second output is the one people actually act on. A table of forty vendors invites scanning; a list of six invoices invites a decision.
Export both, and keep the source file attached to the analysis so the numbers can be traced when somebody questions a row.
Need this built from your own export rather than by hand? Try Powerdrill Bloom.
How to read it once it exists
A completed accounts payable aging report is read in three passes, in this order.
The 90+ column first. Anything sitting there is either a dispute, an error, or a relationship problem. None of those resolve on their own, and all of them are cheaper to address early.
Concentration second. If one vendor holds forty percent of the balance, your payment timing is now a supplier relationship question rather than a cash question.
The Current column last. This is the part you still control. Discount windows live here, and so does the choice of what to pay first if cash is tight this week.
One number worth computing alongside the report: the share of total payables that is past due. Tracked monthly, it moves before anything else does.
A second number is worth having when cash is tight. Total the invoices whose discount windows close within the current payment cycle, and note what those discounts are worth. That figure turns an abstract timing question into a specific amount of money left on the table.
Both numbers belong on the same page as the table. A report that requires a second calculation before anyone can act on it tends not to get acted on.
Choosing bands that match your terms
The standard 30-day bands are inherited from net-30 terms. If your supplier terms are different, the default bands hide exactly what you need to see.
Consider a business where most invoices are net-15. Under 30-day bands, an invoice that is 14 days late and one that is 2 days early land in the same column. The report technically works and tells you nothing.
The fix is to align the first boundary with your most common term, then keep the later bands wide. Detail matters near the present; anything past 90 days is a problem regardless of exactly how old it is.
| Typical terms | Suggested bands |
|---|---|
| Net 15 | Current, 1–15, 16–30, 31–60, 60+ |
| Net 30 | Current, 1–30, 31–60, 61–90, 90+ |
| Net 45 or 60 | Current, 1–30, 31–60, 61–90, 90+ |
| Mixed terms | Age from due date, keep 30-day bands |
That last row is the important one. When terms vary across suppliers, aging from the due date normalizes everything automatically. An invoice is late or it is not, regardless of whether it started at 15 days or 60.
A second refinement helps teams with seasonal suppliers. Add a column for invoices not yet due but falling due within seven days. It turns the report from a record into a short worklist.
Using it in a weekly payment run
The report earns its keep when it drives a decision rather than documenting one.
A workable weekly routine takes about twenty minutes. Regenerate the report against a fresh export. Read the exception list first, not the table. Decide the payment run from that list, then check the table for anything the exceptions missed.
Three questions guide the run itself. Which invoices carry a discount that expires before the next run? Which are already late and accruing a cost? And which vendors are approaching a concentration level that would be uncomfortable to explain?
Document the decision somewhere the next person can find it. A skipped invoice with a written reason is a decision; a skipped invoice with no note is an error waiting to be discovered.
One habit prevents most month-end surprises. Compare this week's total against last week's before doing anything else. A large unexplained jump usually means the export changed rather than the business.
How this differs from an accounts receivable aging report
These two reports look nearly identical and answer opposite questions. Confusing them is common enough to be worth stating clearly.
An accounts payable aging report covers money you owe suppliers. An accounts receivable aging report covers money customers owe you. Same buckets, same shape, different direction and a completely different reader.
The actions they trigger diverge too. A receivable in the 90+ bucket starts a collections conversation. A payable in the 90+ bucket starts an internal one — why has this not been paid, and is it disputed or simply missed?
| Payables aging | Receivables aging | |
|---|---|---|
| Whose money | Yours, owed out | Yours, owed in |
| Owner | Accounts payable team | Collections or credit control |
| 90+ bucket means | A dispute or a missed payment | A collection risk |
| Optimization goal | Pay on time, capture discounts | Get paid sooner |
Both reports draw on the same underlying ledger discipline. If your transaction records are messy, both will be wrong in the same way — the walkthrough on reconciling transactions in a spreadsheet covers that groundwork.
Common mistakes
Including paid invoices. The single most common error, and it inflates every bucket at once. Filter on payment status before anything else.
Aging from the wrong date. Mixing due-date and invoice-date logic across periods makes trends meaningless, even when each individual report is internally correct.
Letting vendor names split. Three spellings of one supplier hide concentration, which is the exact thing the report exists to reveal.
Ignoring credit memos. Negative amounts belong in the report, and dropping them overstates what you owe.
Building it once. A report produced quarterly tells you what already happened. The value comes from a cadence fast enough to act on — weekly for most teams, daily during a cash crunch.
Forgetting partial payments. An invoice with half paid should show the remaining balance, not the original figure.
Treating the report as a finance-only artifact. Procurement usually knows why a specific invoice is disputed, and operations often knows which supplier is about to become critical. A report circulated to three people beats one perfected by one.
Reporting the total without the trend. A payables balance of $400,000 means nothing on its own. The same figure after three months of steady increase means something quite specific, and only the series shows it.
Quick reference
| Question | Where to look |
|---|---|
| What is about to go late? | Current column, sorted by due date |
| What is already a problem? | 61–90 and 90+ columns |
| Where is our exposure concentrated? | Vendor totals, sorted descending |
| Are we losing early-payment discounts? | Current column against discount terms |
| Is this getting better or worse? | Past-due share of total, tracked monthly |
| Does the report tie out? | Bucket total against the ledger balance |
For the wider cash picture these numbers feed into, there is a guide to creating a cash flow report. When the output needs to reach an executive audience, generating a board-ready financial summary from a spreadsheet covers that step.
Frequently asked questions
What is an accounts payable aging report?
It is a table of unpaid supplier invoices grouped by how long they have been outstanding, usually in 30-day bands. Rows are vendors, columns are age ranges. It shows what you owe and how urgent each amount is.
How do you calculate the aging buckets?
Pick a reference date, then measure the days between that date and each invoice's due date. Sort the result into bands such as current, 1–30, 31–60, 61–90, and 90 or more. Using invoice date instead of due date is valid, as long as it is applied consistently.
Why is an accounts payable aging report important?
Late payment often carries interest or fees, and early payment sometimes earns a discount. Federal Prompt Payment rules make both explicit for government agencies. The report shows where each outcome is about to happen while there is still time to choose.
What is the difference between AP and AR aging?
Payables aging tracks money you owe suppliers. Receivables aging tracks money customers owe you. The table shape is the same, but the readers and the actions are different.
How often should the report be produced?
Weekly suits most teams, since payment runs are typically weekly. During a cash constraint, daily is more useful. Monthly is generally too slow to change any decision.
Sources: Bureau of the Fiscal Service, US Department of the Treasury, "Prompt Payment," fiscal.treasury.gov. Interest rate as published for July 1 – December 31, 2026.