Skip to content

Free tool

Aging report generator

Paste or upload an invoice CSV and get the classic AR aging report in a second: buckets, totals, and the one balance you should chase first. Everything runs client-side; the file never leaves your machine.

Your data never leaves the browser: parsing and the report both run client-side, with no upload request. Optional columns: email, paid amount, issue date, status.

Now what

An aging report is a to-do list in disguise

The report is diagnosis; the treatment is follow-up, applied consistently. A practical translation of each bucket: everything 1-30 days overdue gets a friendly nudge this week; 31-60 gets a firm second notice naming the days overdue and a date; 61-90 gets a final notice with a deadline; and 90+ gets a decision, because pretending a 120-day-old invoice will resolve itself is how it becomes a write-off. The templates for every one of those messages are free in our template library, and the escalation logic behind them is explained in the escalation ladder guide.

If the report you just generated has real money sitting in the 31+ buckets, that is precisely the problem Duebay exists for: import the same CSV into an account and every overdue invoice goes onto a sequence that sends those messages on schedule, logs every send, and stops when payment lands.

FAQ

Aging report questions

What is an AR aging report?

The standard receivables report: every open invoice balance, grouped by how far past due it is (current, 1-30, 31-60, 61-90, 90+ days). It answers "who owes what, and how worried should I be" in one table; the older the bucket, the lower the odds of collecting in full.

What does my CSV need?

Four columns: customer, invoice number, amount, and due date. Common header spellings are recognized automatically (e.g. "total", "amount due", "client", "due"). Optional columns: email, paid amount, issue date, status. Rows with problems are reported individually, never silently dropped.

Does my invoice data get uploaded?

No. The CSV parser and the aging engine are TypeScript running in this page; there is no upload request at all, which you can verify in your browser's network tab. Close the tab and the data is gone.

How should I read the buckets?

Current and 1-30 are normal commerce. 31-60 means follow-up is overdue: these invoices need a firm second notice now. 61-90 and especially 90+ are where collectibility genuinely decays; balances there need a final notice, a call, or a decision about escalation. The tool flags the largest overdue balance because that is where an hour of chasing pays best.

Can I get the report as a file?

Yes, the download button produces a CSV of the bucket totals and headline figures, generated in the browser from the same computation you see on screen.

Same CSV, but the chasing runs itself

Import the file you just tested and put the overdue buckets on an escalating sequence today. Free for 10 active invoices.