For an electrical contractor's service division, the real risk in days sales outstanding is not the number itself. It is the gap between the ticket a technician writes and the invoice that actually goes out, a gap DSO was never built to measure.
DSO tells a contractor how long customers take to pay. It says nothing about how long the contractor took to send the bill, and that is the blind spot. A service division can watch DSO climb from 43 days to 61 and still miss six tickets that were never invoiced at all, because work nobody billed is work DSO was never measuring. Under 45 days is the usual benchmark. Hitting it means watching two numbers instead of one: how fast invoices go out, and how fast they come back. An AR dashboard shows both. A monthly aging report shows one of them, a month late.
DSO formula: accounts receivable ÷ total credit sales × number of days in the period. Under 45 days is the general industry benchmark. Past that, cash the business already earned is sitting uncollected.
The Number Hiding Inside “Current”
A healthy-looking aging report can still hide two very different problems, and they need different fixes.
- Average Days Delinquent tracks invoices that went out on time and are simply late coming back. That is a collections problem.
- A rising DSO with a low delinquency rate usually means invoices are going out slowly in the first place. That is a billing-cycle problem, and it is the one most service divisions do not measure at all.
A contractor with two billing realities running at once, large progress-billed jobs and a service line doing time and material work, needs a report that can tell these apart. That is what a dashboard does that a static spreadsheet cannot.
What the AR Dashboard Actually Shows
Instead of a report someone has to pull and rebuild every week, Sage Intacct's AR dashboard gives a controller a live view built from the same data the invoices come from.
- A real-time aging list, updated as invoices post rather than at month end.
- Invoice status by job, so a controller can see which are unbilled, which are sent, and which are disputed without opening each one.
- A DSO trend line over time, so a slipping number shows up as a trend instead of a surprise.
- Retainage is isolated in its own column, so the holdback on a progress-billed job does not get counted as slow-paying receivable and distort the true DSO number.
QuestionStatic Aging ReportSage Intacct AR DashboardHow old is this balance?Shows days outstanding in 30/60/90 buckets, refreshed whenever someone runs the report.Shows the same buckets in real time, plus a DSO trend line so a controller can see if the number is moving in the wrong direction before it becomes a quarter-end surprise.Is this balance actually collectible?Mixes true accounts receivable with contractual retainage held on progress-billed jobs, so a holdback looks the same as a slow payer.Isolates retainage into its own column, so the aging list reflects what is genuinely collectible on the service side without retainage distorting the number.Which jobs are actually the problem?Requires exporting to a spreadsheet and manually sorting by customer or job to find the slow ones.Lets a controller drill from the dashboard straight into a specific job to see whether it is unbilled, billed and waiting, or billed and disputed.
Drilling Into What Is Actually Unbilled
The real value of the dashboard shows up when a number looks wrong. From the aging list, a controller can drill straight into a specific job or customer to see the underlying detail.
Is this ticket sitting because no one has invoiced it yet? Or is the customer disputing a line item on an invoice that already went out? Those are two different fixes. An unbilled ticket is an internal workflow problem. A disputed invoice is a documentation problem, usually solved by showing the customer exactly what they are being billed for.
This is where a specific feature closes the gap. When a time and material invoice line is disputed, Sage Intacct's Summary Billing Details tab shows the original expense entry, the timesheet field it came from, and the contract line it billed against, side by side.
A Construction or Projects subscriber can also export the linked receipts as a single zip file, so a controller can settle a dispute with the actual documentation instead of asking the field team to dig through paper tickets.
Frequently Asked Questions
What counts as a healthy DSO for an electrical contractor?
45 days is the general benchmark, though it shifts based on how much of the business is progress-billed project work versus faster-turning time and material service jobs.
Is DSO the same thing as an aging report?
No. An aging report shows how old a balance is. DSO measures the average time to collect across the whole receivables book, and it can rise even when nothing on the aging report looks overdue, if invoices are simply going out slowly.
Does DSO apply to progress-billed project work or only service jobs?
Both, but they need to be tracked separately. Progress-billed jobs carry contractual retainage that should not count as a slow payment, while service jobs are billed complete and should turn into cash on a much shorter cycle.
See What Your Real DSO Looks Like
A DSO number that only shows up during a monthly review is a number a contractor cannot act on in time. Alliance Solutions Group sets up the Sage Intacct AR dashboard so a service manager can see, in real time, which jobs are unbilled, which are disputed, and which are simply slow to pay, instead of finding six tickets stalled out at month end.