In many electrical, plumbing, HVAC and maintenance businesses, a job is "finished" days or weeks before it's invoiced. The tech marks it complete on their phone and drives to the next call-out, but the hours, the materials picked up from the wholesaler, the extra work the customer asked for on the day, the photos and the compliance paperwork arrive late, arrive in pieces or don't arrive at all. The office can't invoice an incomplete job, so it sits in a "completed" list while someone chases, cash comes in late, and some work never gets billed at all.
Picture a normal Thursday. There are a few dozen jobs sitting in "completed" in the job system. The office manager is texting three techs about missing timesheets. One job can't be invoiced because the facilities manager's portal wants a work order number nobody wrote down. Another is waiting on a certificate of compliance that's still in a ute glovebox. A bathroom job had an extra power point added "while we're here", but it's only mentioned in a photo caption. The service manager knows the quarterly maintenance visits for a strata client were done last week, but they haven't been ticked off against the contract yet.
Signs you have this problem
- The "completed but not invoiced" list in your job system is long, and nobody's sure how old the oldest job is.
- Office staff spend part of every day chasing techs for timesheets, job notes, photos and dockets.
- Wholesaler invoices for materials turn up after the job has already been invoiced, so the parts never get charged.
- Small extras, such as an extra circuit, a second tap, a part swapped on the spot or extra time waiting for access, live in a tech's memory or a text message and rarely reach the invoice.
- Commercial and facilities customers reject invoices because the work order or PO number, sign-off or certificate is missing.
- Planned maintenance visits under service contracts get done but aren't billed until someone notices at the end of the quarter, or they get missed entirely.
Why it happens
The problem sits between people and systems, not inside any one of them.
"Complete" means different things to different people. To the tech, complete means the work is done and the customer is happy. To the office, complete should mean the job is ready to invoice: hours in, materials known, extras priced, paperwork attached. When the job system has one "complete" button covering both, the office inherits a pile of jobs that look finished but aren't billable.
The information arrives from several places at different times. Hours come from the job app, a timesheet app or a paper sheet. Materials come from the van stock, the wholesaler's trade counter on account, or a supplier invoice that lands in the accounts inbox a week later. Variations come through the tech, the customer or the project manager. Photos sit on someone's phone. Certificates and test results are often on separate forms or a regulator's website. Each source runs on its own timing, and the invoice can't go out until the slowest one turns up.
Nobody owns the gap. Techs are measured on getting jobs done; the office on getting invoices out. The handover between the two often isn't anyone's job, so jobs wait and the chasing becomes a daily chore.
Contracts live in a different place to jobs. Maintenance contracts, scheduled servicing and agreed rates are often in a spreadsheet, an email or the service manager's head. The job system knows a visit happened. It doesn't always know that visit is the third of four included in a contract, or that it should be billed at contract rates with the after-hours call-out charged separately.
Buying another app rarely fixes it on its own. A new job management system can help, but if the process stays the same, with the same "complete" button, the same late materials, the same paperwork on paper, you get the same backlog in a nicer screen.
What it costs you
Cash arrives later than it should. Every day a finished job sits uninvoiced is a day added to when you get paid, on top of the customer's payment terms. You've already paid the wages, the super and the wholesaler. For example, if your crews finish a steady flow of jobs each week and the average job waits a couple of weeks for its invoice, you're carrying a fortnight of revenue on your own balance sheet all the time.
Work you never bill. The small extras are the first to go. One extra fitting or half an hour of waiting time doesn't feel like much, but across every crew, every week, it adds up, and it comes straight off your margin because you've already paid for it.
Margin you can't see. If materials and hours land after the invoice, your job profit reports are wrong. A job can look profitable at invoice time and turn out to have lost money once the late wholesaler bill and the missing timesheet arrive.
Disputes and rejected invoices. An invoice sent weeks after the work, without photos or a sign-off, is easier to question, and a facilities customer's rejected invoice resets the clock.
Key-person dependence. The chasing usually lives with one or two people who know which tech forgets timesheets and which customer needs a PO number. When they're on leave, invoicing slows down or stops.
What fixing it generally involves
Start simple. Some of this is a setting or a habit, not a project.
- Agree what "ready to invoice" means. Write down what a job needs before it can be invoiced: hours, materials, extras, work order number, photos, sign-off, certificate. Split "work complete" from "ready to invoice" so the tech's tap on the phone doesn't hide what's missing.
- Capture it once, on site, before leaving the job. Most job apps can require fields before a job can be closed: hours, parts used, a photo, customer sign-off. Often the fastest win is turning on settings you already pay for, and making them required rather than optional.
- Make extras easy to record. A quick "extra work" entry with a photo and a short description, raised on the spot, beats relying on memory. We cover the same idea for builders in the variation that never got billed.
- Get materials onto the job sooner. Ask your wholesalers to quote the job number on every account purchase, and match supplier invoices to jobs as they arrive rather than at month-end.
- Put maintenance contracts where the jobs are. Scheduled visits, contract rates and what's included should drive the billing, so a completed service visit raises the right invoice without someone checking a spreadsheet.
- Connect the systems so the data flows. When the job system, timesheets, supplier bills and Xero or MYOB are connected properly, a job that meets the "ready" rules can become an invoice without being retyped. If you're on ServiceM8, our guide to where the ServiceM8 and Xero link stops explains what the standard connection does and doesn't carry.
- Report the gap every day. One simple view showing finished jobs not yet invoiced, how old they are and what each one is waiting on turns chasing into a short daily routine.
If your job system already does most of this and the gap is habits and settings, fix those first. If you'd like a full picture first, our $5,000 Process & Systems Audit maps how jobs flow from site to invoice and produces a written report. It's worth getting outside help when the information comes from several systems that don't talk to each other, when maintenance contracts and billing rules are complex, or when the office is still retyping despite having the software. That's the kind of work we do for trades and field service businesses, and why we start by mapping how the work actually flows. See business process automation, our business process improvement guides, and what disconnected business systems cost growing businesses.
Frequently asked questions
Why do completed jobs take so long to invoice?
Usually because the job is finished on site but the information needed to bill it, such as hours, materials, extras, work order numbers and paperwork, arrives later and from different places. The office can't invoice until the slowest piece turns up, so jobs wait.
How do I stop techs closing jobs without timesheets or materials?
Most job management apps let you make fields required before a job can be closed, such as hours, parts used, a photo and a customer signature. Turn those on, keep the list short, and separate "work complete" from "ready to invoice" so missing items are visible.
How do I make sure small extras get billed?
Give techs a quick way to record extra work on the spot, with a photo and a short note, against the job. Then make "extras recorded" one of the checks before a job is ready to invoice. If it isn't on the job, it won't reach the invoice.
How do I stop maintenance contract visits being missed on invoices?
Keep the contract details, such as scheduled visits, rates and what's included, in the same place as the jobs, so a completed visit raises the right invoice. If contracts live in a separate spreadsheet, someone has to remember to check it, and that's where visits slip.
Do we need new job management software to fix this?
Not always. Many trades businesses can close much of the gap with clearer rules about when a job is ready to invoice, required fields in the app they already use and a daily view of uninvoiced work. New software only helps if the process around it changes too.
If finished jobs are sitting uninvoiced in your business, book a free initial chat and we'll talk through where the gap is and what to fix first.