Free tool

DSO Calculator and AR Aging Report

Days sales outstanding three ways, so a strong sales month cannot make collections look worse than they are, and an AR aging report built from your open invoice list. See which customers and which buckets are moving the number.

Calculate DSO

DSO is the number your CFO asks about and the number that moves for the wrong reasons. Calculate it the way the board pack does, then the way that is not fooled by a big sales month, then see the aging underneath it.

Your receivables

Open invoices

One row per open invoice, from your AR system.

Open invoice list

brightwater-open-invoices-2026-09-30.csv · 22 invoices. QuickBooks Online: Reports, Open Invoices. Xero: Aged Receivables Detail. NetSuite: A/R Aging Detail.

Columns

Matched by its header. Castellan Foods Corp. · Halverson Machine Works · Delacroix Automation

Matched by its header. BW-30412 · BW-30418 · BW-30431

Matched by its header. 2026-09-02 · 2026-09-04 · 2026-09-09

Optional with terms mapped.

Matched by its header. Net 30 · Net 30 · Net 30

Matched by its header. 186400.00 · 142750.00 · 98300.00

How to age

The report says which basis it used, because an aging without one cannot be compared.

Blank uses the latest invoice date in the file, never today.

Days past due is what collections works from. Some lenders and auditors ask for days since invoice.

Sales, for DSO

Credit sales, not total revenue: a cash sale never sat in receivables. Oldest month first.

Optional. Switches on the collection effectiveness index.

Runs entirely in your browser. Nothing you enter is sent to us or stored.

Your DSO and aging

Updates as you type

Countback DSO

44.4 days

Simple DSO 47.1 days. Best possible DSO 28.3 days, so 18.7 days are delinquency.

Receivables

$1,960,000.00

Ten days off DSO releases $416,304.35

Simple DSO
47.1 days
Best possible DSO
28.3 days
Average days delinquent
18.7 days
Collection effectiveness index
82.6%

Aging by bucket

Receivables by aging bucket
BucketInvoicesAmountShare
Current9$1,180,000.0060.2%
1 to 30 days5$470,000.0024.0%
31 to 60 days3$182,000.009.3%
61 to 90 days2$71,000.003.6%
Over 90 days3$57,000.002.9%
Total22$1,960,000.00100.0%

By customer, oldest balance first

Receivables by customer and aging bucket
CustomerCurrent1 to 30 days31 to 60 days61 to 90 daysOver 90 daysTotal
Ridgeline Fabrication$52,400.00$52,400.00
Northgate Utilities$74,950.00$72,600.00$58,500.00$4,600.00$210,650.00
Kestrel Industrial Holdings$211,600.00$138,200.00$349,800.00
Castellan Foods Corp.$349,600.00$349,600.00
Sutter Plastics$121,900.00$84,300.00$58,700.00$264,900.00
Pell Valley Hospital$88,400.00$78,500.00$64,800.00$29,700.00$261,400.00
Delacroix Automation$98,300.00$96,400.00$41,300.00$236,000.00
Halverson Machine Works$235,250.00$235,250.00

Collection worklist

Every overdue invoice, ranked by amount times days past due. The first ten are here; the export has all 13.

Overdue invoices ranked by amount times days past due
CustomerInvoiceDueDays lateAmount
Ridgeline FabricationBW-293402026-05-14139$31,900.00
Pell Valley HospitalBW-299442026-08-0754$64,800.00
Kestrel Industrial HoldingsBW-301772026-09-0525$138,200.00
Delacroix AutomationBW-297122026-07-1082$41,300.00
Sutter PlasticsBW-299612026-08-1447$58,700.00
Ridgeline FabricationBW-294022026-06-05117$20,500.00
Northgate UtilitiesBW-299782026-08-2338$58,500.00
Pell Valley HospitalBW-297382026-07-2270$29,700.00
Delacroix AutomationBW-301892026-09-1119$96,400.00
Sutter PlasticsBW-302032026-09-1812$84,300.00

What to look at

  • ActRidgeline Fabrication: $52,400.00 of the $57,000.00 in the oldest bucketWhen one account is most of the oldest bucket, it is a credit decision, not a collections process problem.
  • Runs entirely in your browser. Your invoice list is never uploaded and we never see a customer name or an amount.
  • Aged as of 2026-09-30, on days past due.

How DSO is calculated, and why three ways

Simple DSO

Simple DSO = Ending receivables / Credit sales for the period x Days in the period

The standard measure, and the one in most board packs. Its weakness is the denominator. It divides the receivables balance by average daily sales across the whole period, but the receivables balance is made almost entirely of the most recent month's sales. When the last month was strong, receivables are high against an average that includes weaker months, and DSO rises even though nobody paid later. When the last month was weak, DSO falls and hides a real deterioration.

A company with seasonal or growing sales can report DSO up five days in a quarter when collections improved.

Countback DSO

Countback asks how many days of your most recent sales the receivables balance represents. Start with the ending balance. Take away the last month's sales, and count that month's days. If balance is left, take away the month before. When the remaining balance is smaller than a month's sales, count the fraction of that month.

Remaining = Ending receivables For each month, most recent first: if Remaining >= that month's sales: Remaining -= sales; DSO += days in month else: DSO += Remaining / that month's sales x days in month; stop

Because it measures against the sales that actually produced the balance, a strong final month does not inflate it. It is the better measure to manage collections by, and the simple measure is the better one to compare with published figures. Report both and say which is which.

Best possible DSO, and average days delinquent

Best possible DSO = Current (not yet due) receivables / Credit sales x Days Average days delinquent = Simple DSO - Best possible DSO

Best possible DSO is what your terms alone would produce if every customer paid on the due date. The gap between it and actual DSO is the part collections can do something about. If DSO is 47 and best possible is 28, nineteen days are customers paying late. If DSO is 47 and best possible is 45, collections are fine and the terms you are giving are the problem, which is a commercial conversation, not a collections one.

Collection effectiveness index

CEI = (Opening receivables + Credit sales - Ending total receivables) / (Opening receivables + Credit sales - Ending current receivables) x 100

Of everything that was collectable during the period, the share you actually collected. It is not affected by sales volume, which makes it the cleanest measure of collections performance over time. Above 80 percent is generally considered effective for business-to-business terms, but the trend in your own number matters more than any benchmark.

Ageing on due date or invoice date

Days past due is what collections works from: an invoice on Net 60 terms that is 45 days old is not late. Days since invoice is what some lenders use for a borrowing base and what some auditors ask for, because it does not depend on terms the company set itself. The same invoices land in different buckets on the two bases, so an aging is only comparable to another aging taken on the same basis. The tool prints which one it used.

Why the aging and the ledger disagree

The total of an aging report should equal the receivables control account in the general ledger on the same date. When it does not, the usual causes are unapplied cash posted to the control account but not to an invoice, credit memos not applied, invoices posted directly to the ledger without going through the AR module, and timing: the aging and the trial balance taken on different days. A difference that is not explained is the start of a reconciliation, not a rounding error.

Worked example

The sample the tool loads. Invented.

Brightwater Industrial Supply sells maintenance parts to manufacturers on Net 30 terms. The controller reports DSO to the CFO each quarter, and the CFO's question this quarter is why DSO went up when the collections team says September was their best month.

Their quarter:

MonthCredit salesDays
July$1,240,00031
August$1,180,00031
September$1,410,00030
Quarter$3,830,00092

Receivables at September 30: $1,960,000, of which $1,180,000 is not yet due. Receivables at July 1: $1,820,000.

The three DSO figures:

Simple DSO = 1,960,000 / 3,830,000 x 92 = 47.1 days Countback DSO = 30 (all of September's 1,410,000) + 550,000 / 1,180,000 x 31 of August = 44.4 days Best possible = 1,180,000 / 3,830,000 x 92 = 28.3 days Average days delinquent = 47.1 - 28.3 = 18.7 days

The answer to the CFO. September was the strongest sales month of the quarter, which is exactly what inflates simple DSO: the receivables balance is mostly September's invoices, measured against an average that includes July and August. Countback, which measures the balance against the sales that produced it, is 2.6 days lower. Collections did not get worse. Sales got better.

What is still worth a conversation. Average days delinquent is 18.7 days on Net 30 terms, so a large share of DSO is customers paying late, not terms. The collection effectiveness index is 82.6 percent:

CEI = (1,820,000 + 3,830,000 - 1,960,000) / (1,820,000 + 3,830,000 - 1,180,000) = 82.6%

The aging:

BucketAmountShare
Current$1,180,00060.2%
1 to 30 days past due$470,00024.0%
31 to 60$182,0009.3%
61 to 90$71,0003.6%
Over 90$57,0002.9%
Total$1,960,000

The over-90 bucket is small, and by customer it is almost all one account. That is a credit decision, not a collections process problem. The 1 to 30 bucket is where most of the late paying sits, and where a reminder sent on day three instead of day twenty does the most.

What faster collection is worth. At this quarter's average of $41,630 of sales a day, ten days off DSO is $416,304 of cash released, once.

What this does not do

This tool calculates from the invoice list and the sales you enter. It does not connect to your accounting system, apply cash, reconcile the aging to your ledger, or contact anyone. It cannot tell a disputed invoice from an unpaid one, or know about a payment that has arrived but not been applied. DSO here uses the figures you give it: credit sales, not total revenue, and the period you choose. It is not a credit risk assessment of any customer.

Questions

An aging is a
photograph. Collections is the film.

Cash applied line by line as it arrives, the aging tied to the ledger, and reminders drafted for your team to approve. Your ERP stays the system of record, and no agent emails a customer on its own.