A/R in dollars doesn't tell you much on its own. $90,000 in open invoices is alarming for a shop doing $100,000 a month and routine for one doing $500,000. Days sales outstanding converts the balance into time: roughly how many days of sales you are waiting to be paid for. That makes it comparable month to month even as the business grows.
DSO in plain English
Imagine every dollar of sales lined up by date. DSO asks how far back in that line you'd have to go to account for everything customers still owe you. If the answer is 15 days, then on average you are carrying about two weeks of sales as receivables. Every one of those days is cash you've earned and can't yet spend on payroll, trucks or equipment.
How do you calculate DSO?
Metric
Days sales outstanding
The average number of days of sales sitting unpaid in accounts receivable.
Ending A/R ÷ credit sales for the period × days in the period
Where the numbers come from: A/R balance on the last day of the period, from your aging report; invoiced sales not paid at the time of sale for the same period.
A worked example (simple method)
Made-up numbers for a mixed residential and commercial shop:
| Input | Value |
|---|---|
| A/R at end of September | $90,000 |
| Credit sales, July to September | $540,000 |
| Days in the period | 92 |
| DSO | $90,000 ÷ $540,000 × 92 = 15.3 days |
Use the actual number of days in the period. Using 90 for a 92-day quarter is a small error, but it's an easy one to avoid.
The countback method for seasonal shops
The simple method averages sales over the whole period. In a trade with a summer peak, that can distort the picture: a big August raises A/R but is diluted by a slow July. The countback method walks backward through recent months instead.
- 1
Start with ending A/R
Example: $90,000 open at the end of September.
- 2
Subtract the most recent month's sales
September credit sales were $70,000, a 30-day month. $90,000 − $70,000 leaves $20,000. Count 30 days.
- 3
Take the remainder as a fraction of the prior month
August credit sales were $200,000 over 31 days. $20,000 ÷ $200,000 × 31 = 3.1 days.
- 4
Add them up
30 + 3.1 = 33.1 days of sales are sitting in receivables.
Countback DSO answers a slightly different question, so the numbers won't match the simple method. Pick one method and use it every month.
Common mistakes in the math
- Mixing periods. A/R from today with sales from last quarter gives a meaningless number.
- Changing the definition. Switching between credit sales and all invoiced sales moves DSO without anything real changing.
- One blended number. Residential work collected at the door hides slow commercial accounts. Split them.
- Counting pending bank payments as collected. Stripe's documentation says ACH Direct Debit can take up to 4 business days to confirm success or failure.1 Until it clears, the money is still a receivable.
- Comparing with the prior month. Seasonality swamps the trend. Compare with the same month last year.
What is a good DSO?
There's no reliable public benchmark for residential HVAC, plumbing or electrical DSO, so this page doesn't quote one. Mix drives the answer. A residential service shop that collects most invoices on site may run a DSO of a few days. A shop doing commercial maintenance on net 30 terms will rarely be far below 30, and progress billing on larger projects can push it higher.
Set your baseline from your own history:
Set your own DSO baseline
- Calculate DSO for each of the last 12 months with one method
- Split residential and commercial customers
- Note the seasonal pattern: which months run high
- Set a target for each segment a few days below its 12-month average
- Recalculate monthly on the same day
The reason to care is cash. In the Federal Reserve Banks' 2024 Small Business Credit Survey, 51% of small employer firms reported uneven cash flow as a financial challenge, a category the survey says includes collecting on receivables.2
What moves DSO?
| Lever | Why it works | How to check |
|---|---|---|
| Collecting on site | A paid-on-site invoice adds zero days | Share of residential invoices paid on the job day |
| Same-day invoicing | Every day between finishing and invoicing adds a day to DSO | Days from job complete to invoice sent |
| Text-to-pay links | Customers pay from their phone without a login or a check | Days to paid for invoices sent by text |
| Fixed reminder schedule | Follow-up doesn't depend on someone remembering | Invoices paid within 7 days of a reminder |
| Bank debit for large invoices | Cheaper than cards on big tickets, but slower to clear | Mix of card vs bank payments over $5,000 |
| Written commercial terms | Net 30 starts a clock both sides agree on | Commercial DSO vs stated terms |
On the bank debit row there's a trade-off. Stripe's published US pricing is 0.8% capped at $5 for ACH Direct Debit, against 2.9% + 30¢ for online cards,3 so a $12,000 job costs at most $5 to collect by bank debit. It also takes longer to confirm, which nudges DSO up slightly. For most owners the fee saving on large invoices is worth a few days.
How TradesWork helps you track DSO
The collections feature lists DSO among the metrics to track: open A/R divided by credit sales over the period, times the days in the period, using the Open A/R figure and invoiced revenue. Accounting shows open A/R, and the A/R aging widget breaks it into not yet due, 1 to 30, 31 to 60, 61 to 90 and 90 plus. Overdue reminders go out by text with a pay link on days 3, 7, 14 and 30 by default. In reports and dashboards, revenue and collected each come with their definition, so the inputs to your DSO math are the same ones your team sees.
TradesWork doesn't show a DSO number on its own today; you calculate it from those two figures. For the first commercial contract that sets your terms, see your first commercial service agreement.
Footnotes
-
Stripe documentation, ACH Direct Debit: payments can take up to 4 business days to receive acknowledgement of success or failure. https://docs.stripe.com/payments/ach-direct-debit ↩
-
Federal Reserve Banks, Small Business Credit Survey: 2025 Report on Employer Firms (2024 survey, 7,653 responses). https://fedsmallbusiness.org/-/media/project/clevelandfedtenant/fsbsite/reports/2025/2025-report-on-employer-firms.pdf ↩
-
Stripe, "Pricing," standard US rates, checked October 2026. https://stripe.com/pricing ↩
