Accounts Payable Aging
Age your supplier bills, see what is overdue, plan a payment run and value the early settlement discounts you are about to lose. Runs entirely in your browser. Nothing is uploaded.
Version 1.0.0 · Updated Aug 5, 2026
Overview
How to use Accounts Payable Aging
The complete in-tool guidance, reproduced here so you can read it before you download.
What this tool does
CM8-54 is an aged creditor report and a payment-run planner in one file. You enter each supplier bill once; it works out what is outstanding, how far past due each balance is, what falls due next, how much every available settlement discount is worth, and which bills are stuck behind an approval or a dispute. Then it prints the lot as a report you can take to a cash meeting.
Everything runs inside this single file. There is no account, no upload and no network request of any kind, so supplier names, amounts and the state of your cash never leave the computer you are using.
Recording a bill
One line per supplier invoice. The four things that must be right are the invoice amount, the invoice date, the due date and the amount already paid — every figure in the tool is built from those.
The due date is the date the money must reach the supplier, not the date you intend to pay. If your terms are 30 days from the end of the month of invoice, work the date out and enter it; the tool does not try to interpret terms wording, because the same phrase means different things in different countries and different contracts.
Outstanding balance = invoice amount − amount already paid
The purchase order reference, cost centre and category are optional but they are what make the report useful to someone other than you. Category drives one of the filters, so a register where everything is "other" gives you one fewer way to slice the ledger.
Status and approval
Status says where a bill is; approval says whether anyone has agreed to pay it. They are separate on purpose, because a bill can be perfectly ordinary and still be sitting unapproved for three weeks.
- Open — nothing paid. Part paid — some but not all. Paid in full — settled, and it needs the date it was paid.
- Scheduled — already in a payment run you have committed to.
- On hold and disputed — still owed, still counted in the total payable and still aged, but never proposed for payment. The tool will not quietly pay something you have queried.
Held is not the same as gone. A disputed balance is a liability until the supplier issues a credit note. If the disputed slice of the status chart never shrinks, the query was probably never actually pursued — and the supplier is still counting the money.
How the aging works
Buckets are measured from the due date, not the invoice date. This is the convention most suppliers use when they chase you, and it is the only one that is fair across different credit terms: a bill on 90-day terms raised two months ago is not late, and should not appear in a red bucket.
Days overdue = today − due date (a negative result means it is not yet due) Bucket: not yet due · 1–30 days · 31–60 days · 61–90 days · over 90 days
A bill with nothing outstanding is shown as settled and drops out of every total. A bill with no due date is put in its own bucket rather than being guessed at, because guessing would move money between buckets without telling you.
The aging chart is the first thing to look at. A ledger with almost everything in "not yet due" is being run properly. A long tail past 60 days usually means either a real cash problem or a broken approval process, and the two need completely different responses.
The payment run
Set a horizon in the settings — 14 days is a fortnightly run, 7 a weekly one. The payment run proposal then lists, ordered by due date:
- everything already overdue;
- everything falling due within the horizon;
- anything whose settlement discount lapses within the horizon, even if the bill itself is not due yet — because that is the whole point of paying it early.
Bills on hold and disputed bills are never listed. Unapproved bills are always listed and flagged, but by default their value is not added to the run total; the foot of the table tells you how many were excluded and what they are worth, so an approval bottleneck is visible rather than invisible. Turn on "include unapproved bills in the payment run total" if you would rather see the full requirement.
Settlement discounts, and whether to take them
An early settlement discount is a supplier offering you a percentage off if the money arrives by a certain date. The tool values it:
Discount available = outstanding balance × discount % ÷ 100 (zero once the discount date has passed)
Applying the percentage to the outstanding balance is right for an unpaid bill, where the balance is the invoice amount. If you have already part-paid, check the terms — many suppliers calculate the discount on the invoice total instead, and the tool has no way of knowing which yours does.
The real question is not whether the discount is nice. It is whether paying weeks early is a better use of the cash than whatever else the cash could do. Comparing a bare "2%" against a borrowing rate quoted per year is comparing nothing to nothing, so the tool annualises it:
Annualised value = [ d ÷ (100 − d) ] × [ 365 ÷ (due date − discount date) ] × 100 where d is the discount percentage and the dates are days apart
The d ÷ (100 − d) part matters: taking 2% off means you pay 98 to settle 100, so the return is 2/98, not 2/100. The second part scales the gain over the number of days you gave up.
Two per cent for paying 20 days early annualises to about 37% a year. Two per cent for paying three days early annualises to well over 200%. Set your own cost of money in the settings — your overdraft or facility rate, or what the cash would otherwise earn — and the payment run flags each discount as beating it or not. When the annualised figure comfortably exceeds your cost of money, taking the discount is the cheaper option even if you have to borrow to do it.
The honest caveat. This comparison assumes the cash is genuinely available or borrowable at the rate you entered. If it is not — if paying early means missing payroll or going past a facility limit — then the annualised percentage is irrelevant, and preserving cash is the right answer no matter how good the arithmetic looks. The tool quantifies the trade-off; it cannot make the judgement.
A discount whose date has already passed shows as "lapsed" and is worth nothing. It is left visible on purpose: a pattern of lapsed discounts is one of the cheapest problems in a business to fix, and it is almost always caused by slow approval rather than by a shortage of money.
Days payable outstanding
Days payable outstanding is the average number of days you take to pay your suppliers, expressed against what you buy. It cannot be worked out from the bills alone, because a register of unpaid bills says nothing about the volume of purchases behind them. So it needs two figures from you:
Days payable outstanding = (total outstanding ÷ credit purchases for the period) × days in the period
Enter credit purchases for the period and the number of days that period covers. If purchases are left at zero the tile shows a dash — a dash is the correct answer when the input is missing, and far more useful than a confident number derived from nothing.
Three things will make the figure wrong, and all three are common:
- Mismatched periods. A quarter of bills divided by a year of purchases produces a figure four times too low. If you filter the register to a date range, change the purchases figure to match.
- Mismatched basis. If your bill amounts include a sales tax and your purchases figure excludes it, the ratio is inflated by the tax rate. Use the same basis for both.
- Closing balance, not average. This tool uses the outstanding balance right now, not the average balance across the period. That is the usual quick calculation, but it is sensitive to timing: run it the day after a large payment run and it will flatter you.
Read the trend rather than the number. A rising figure means you are taking longer to pay, which conserves cash and consumes goodwill; whether that is prudent or the first sign of trouble depends on things this tool cannot see.
Supplier summary
The supplier table ranks every supplier by outstanding balance and shows how much of it is overdue, what discounts are still available, and the average days you have actually taken to pay them.
Average days to pay = mean of (date paid − invoice date) across bills marked paid in full that carry a payment date
Only fully settled bills with a recorded payment date are counted, and the number of bills used is shown next to the average so you can see the basis. One settled bill is not an average; the tool shows it anyway but you should not read anything into it. Suppliers with no settled bills show a dash rather than a zero.
Compare the average to the credit terms you agreed. Paying at 45 days on 30-day terms is a decision, and it should be a deliberate one rather than a by-product of a slow approval chain.
What this tool cannot do
- It pays nobody. The payment run is a proposal on paper. Nothing is transmitted anywhere.
- One currency at a time. Bills in different currencies cannot be added together honestly. Keep a separate register per currency, or convert before entering and note the rate you used.
- Credit notes are not modelled. Either reduce the invoice amount on the bill the credit note relates to, or keep credit notes outside this register and adjust the totals in your report notes.
- No tax handling. Enter amounts on whichever basis you use consistently. The tool never calculates, separates or reclaims a sales tax, and it makes no assumption about your tax regime.
- It cannot tell you what you owe. It can only tell you about the bills you entered. A missing invoice, a duplicate, or a bill paid outside this register makes every total wrong by that amount. Reconcile against supplier statements.
Printing and sharing
Print Report produces a report from whatever the current filter shows: header, the six headline figures, all four charts, the payment run proposal, the supplier summary, the full ledger and your closing notes. Print to PDF to circulate it.
The scope line under the title states the filter in force and the currency. Clear the filters before issuing anything described as the full creditor position, and check that the purchases figure in the settings matches the period on the page.
Saving your work
Bills, settings and the report header are written to this browser's local storage as you type, and the toolbar shows the time of the last save. That storage belongs to one browser on one computer: another browser, a private window, a second machine or a clean-up tool that clears site data will not have it.
Treat Export .json as the real save — one file containing everything, which Import .json restores anywhere. Export CSV gives you the ledger for spreadsheet work, including the derived balances and buckets, and covers every filtered record rather than only those drawn on screen. Reset asks twice, then erases everything this tool has stored. There is no undo.
Accuracy & disclaimer
This tool calculates from what you enter and nothing else. It cannot tell whether a due date matches the terms you actually agreed, whether an invoice is a duplicate, whether a bill has already been paid from another account, or whether the purchases figure behind days payable outstanding covers the same period as the register. Every headline figure inherits those uncertainties.
It is a record-keeping and calculation aid. It is not a set of accounts, not a bookkeeping system, not a payment system, and not accounting, tax or financial advice. Reconcile to supplier statements and to your own ledgers before acting on anything here.