Report library
AR aging & DSO
AR aging groups a contractor's unpaid invoices into buckets — current, 1–30, 31–60, 61–90, 90+ days past due — so you can see exactly how much money is owed and how overdue it is. Days Sales Outstanding (DSO) turns that into a single number: the average number of days between invoicing a job and getting paid for it.
The columns.
- Benchmark
- None. There is no universal figure; track it against your own baseline.
What the report shows
The AR aging & DSO report pulls every open invoice across your customers and service sites and sorts them by age. You see total dollars outstanding per bucket, which customers or agreements are driving the balance, and a rolling DSO trend so you can tell whether collections are getting faster or slower.
For a commercial or mechanical contractor running service agreements alongside project and T&M work, this matters more than it does for a one-off residential shop — agreement billing, milestone invoices, and multi-site customers all extend the collection cycle in different ways, and the aging buckets show you which one is the actual problem.
Why DSO creeps up for service contractors
DSO rarely climbs because of one bad customer. It's usually a chain: a work order closes out but doesn't get invoiced for a week, the invoice sits for approval, a customer disputes a line item and the whole invoice stalls instead of just the disputed part, or a multi-site customer batches payment on their own cycle regardless of your terms.
The aging report exposes which link in that chain is slow. If most of the balance sits in 1–30 days, collections are healthy and the lag is in your own invoicing speed. If it's concentrated in 60+ and tied to a handful of accounts, it's a collections conversation, not a process one.
Where it lives, and what to read with it
Thermal calculates AR aging directly from invoice and payment records that already live in the platform — there's no separate export or reconciliation step. Every invoice created from a work order, agreement billing cycle, or manual entry carries its issue date and payment status, so the aging buckets and the DSO trend line update as payments post.
Straight answers.
What counts as 'past due' in the aging buckets?
An invoice ages from its issue date, not its due date, so the buckets reflect total time outstanding. You can see both the raw age and how far past terms each invoice is.
Does AR aging replace what my accounting system already tracks?
No. Thermal syncs with your accounting system rather than replacing its ledger — QuickBooks Online syncs with Thermal both ways; the Sage Intacct and Business Central adapters are on the roadmap. The report gives your operations team a live, job-connected view of the same balances your bookkeeper sees, without waiting on a sync cycle to check status.
Can I see DSO by branch or by customer segment?
Yes. Multi-branch operators can filter the aging report and DSO trend by branch, and by customer or agreement, to isolate whether a slow number is company-wide or specific to one book of business.
How is DSO different from time-to-invoice?
DSO measures the whole cycle from invoice date to payment. Time-to-invoice measures only the part before that — how long a completed job sits before it's billed at all. A contractor can have fast-paying customers and still carry a high effective collection cycle if time-to-invoice is slow.