Completed work isn’t always billed work
A plumbing job can be finished in the field and still be missing from the invoice queue. The technician closes the work order, heads to the next call, and tells dispatch that the job is done. But the office never gets a clear record of the extra labor, the fittings pulled from the truck, or the return visit that finished the repair.
That gap is easy to miss when everyone is busy. It’s also fixable. The practical way to find unbilled work orders is to reconcile what your dispatch system says was completed against what your accounting or invoicing system says was billed.
For a plumbing company, the work is more than matching job numbers. A clean reconciliation also checks that the final notes, time, parts, and customer approval made it onto the invoice. A job may have an invoice and still be underbilled if a second technician’s time or an after-hours fee was left out.
This matters across plumbing, HVAC, electrical, and roofing businesses. Owners of firms with many jobs and systems may find that a manual spot-check won’t reliably catch every omission. The amount of leakage varies from business to business. That isn’t a promise of what your company will recover. It’s a reminder that small misses, repeated over hundreds of jobs, can add up to a material amount.
If you’re looking at the wider pattern of service work slipping through billing, read our guide to capturing unbilled trades service work. This article focuses on how to find the gaps by reconciling completed work orders with invoices.
Start with three records, not one
A plumbing company may have at least three sources of truth:
- The work order: What was scheduled, what work was completed, and what the technician recorded.
- The dispatch or field-service record: When the crew arrived and left, who attended, and whether the job was closed.
- The invoice or accounting record: What was charged, what was sent to the customer, and whether payment was recorded.
The reconciliation becomes unreliable when the office treats any one of these as complete. A closed work order doesn’t prove that an invoice was created. An invoice doesn’t prove it includes every approved line item. A payment doesn’t prove the job was billed correctly.
Start by agreeing on what “completed” means in your systems. For example, a work order might count as completed when the technician selects a completion status, enters a closing note, or marks the final visit done. Pick the actual event your team uses, then compare those records with invoices created for the same jobs.
Use a consistent matching key where possible. A work order number is usually best. If one job can generate multiple work orders, or invoices use a different number, create a cross-reference using the customer, service address, and job date. Name the matching rule before you start, or the same job may appear to be missing in one report and duplicated in another.
Build a daily completed-to-invoiced check
A useful first pass is a daily list of work orders that reached a completed status but have no linked invoice. If your systems can export reports, start with a recent date range and include:
- Work order number and status
- Customer and service address
- Scheduled and completion dates
- Technician or crew
- Closing notes
- Labor hours recorded
- Materials or parts recorded
- Invoice number, invoice date, and invoice status
Compare records by work order number first. Then review completed work orders with no invoice match. Don’t assume every mismatch is a billable job. A cancelled call, warranty visit, or no-charge inspection may be valid, but it should have a reason code or note that supports that decision.
Next, compare matched jobs for missing details. Look for completed work orders where the invoice has fewer labor hours than the field record, where a second visit has no separate charge or explanation, or where listed materials are absent from the invoice. Check whether the customer approved the work and whether your pricing rules allow the charge. The goal isn’t to add every recorded item automatically. It’s to find discrepancies that a person can confirm.
Keep the review queue simple. Each exception should have an owner, a next action, and a resolution. For example:
| Exception | Review action |
|---|---|
| Completed job with no invoice | Confirm billable status, then create or explain the missing invoice |
| Invoice exists but labor differs | Compare time entries and approved scope |
| Parts listed in notes but not on invoice | Confirm parts used and pricing before adding a line |
| Return visit recorded separately | Check whether it belongs on the original invoice or a new one |
| Work order remains open after completion | Confirm the field record, then close or correct it |
A spreadsheet can be enough to prove the process before you automate it. The important part is that the same checks happen every day and exceptions don’t disappear into a shared inbox.
Check for the common plumbing gaps
Extra labor. A technician may stay longer than planned, add a second technician, or return after picking up a part. If dispatch records only the scheduled slot, the invoice can miss the additional time. Compare field time and job notes with the labor lines billed. Confirm the time is chargeable under your agreement and pricing rules before changing an invoice.
Materials. Parts may be entered in the technician’s notes, a truck-stock log, or a purchase record rather than on the work order. A replaced valve, supply line, or fitting can be easy to overlook when the office is processing a high volume of jobs. Match material records to the work order and invoice, then flag missing or unclear parts for review. For process improvements around parts and job handoffs, see how to automate parts ordering between jobs.
Finished jobs left open. A crew may complete the work but leave the order in progress because the last step is a note, a customer signature, or a photo upload. Those jobs won’t show up in a completed-work report. Set a clear closeout requirement and check for older work orders with no activity. A manager can determine whether they’re genuinely unfinished or simply need accurate closeout information.
One customer, several work orders. A service call can lead to diagnostic work, an approved repair, and a return visit. If the invoice is attached to one work order but the labor or parts sit on another, a basic unmatched-record report can miss the connection. Group related orders by customer, address, and service date, then verify the scope and billing arrangement.
Credits, warranties, and no-charge work. These records can look like leakage if they’re treated as ordinary billable jobs. Keep them in the reconciliation, but make the reason for no charge visible. That lets the reviewer distinguish a legitimate warranty visit from a completed repair that was never invoiced.
Turn exceptions into a controlled queue
An exception report only helps if someone works it. Set a daily owner, even if the role rotates between an office manager and billing staff. Give that person a short list of clear decisions: invoice, correct, investigate, or close with a documented reason.
Set a reasonable age limit for unresolved items. A same-day review catches simple omissions while the technician remembers the job. Older exceptions may need a call to the field lead, a check of customer approvals, or a review of purchase and time records. Use a status that shows what’s holding the item up, such as “waiting for technician notes” or “approval needed.” Avoid vague labels like “check later.”
Review trends weekly. If a particular crew often misses closeout notes, the remedy may be a clearer mobile form. If material lines are regularly absent, check where technicians are expected to record parts. If invoices are created but extra visits aren’t billed, clarify how return work should be attached. The point is to repair the handoff, not just ask billing to work faster.
This process can also surface billing errors in the other direction. If an invoice includes work that the field record doesn’t support, hold it for review. Reconciliation protects the customer relationship as well as revenue.
For a related view of the financial workflow, see bookkeeping software for plumbing businesses. Better reports help, but the operating rule still matters: every completed work order must either match an invoice or have a documented reason it wasn’t billed.
What an agent can handle end to end
An AI agent can run the routine comparisons and route exceptions, with a human making judgment calls about charges, warranties, and customer approvals. Here’s what a practical workflow could look like:
- Pull records on a schedule. The agent reads completed or recently updated work orders, invoice records, labor entries, and available parts data from the systems your company already uses.
- Match each job. It links records using the work order number, then applies agreed fallback fields such as customer, address, and date when the numbers don’t line up.
- Check for required details. It flags completed jobs without invoices, invoices with missing labor or material lines, and records that appear to show a return visit without a billing decision.
- Sort exceptions by risk and age. A job completed yesterday with no invoice can be reviewed before the details go cold. A warranty visit with a clear reason code can be separated from a job with incomplete notes.
- Prepare the next action. The agent can create a draft exception, attach relevant notes, and assign it to billing or a manager. It shouldn’t add an unapproved charge or send an invoice just because a record looks incomplete.
- Track resolution. Once a person corrects the invoice, documents a no-charge visit, or requests missing information, the agent records the outcome and removes the item from the open queue.
The agent needs access to the relevant records, a reliable matching rule, and an escalation policy. It also needs to know what it must never do without approval. For many businesses, that means it can identify and prepare exceptions, while a person authorizes invoice changes and customer communications.
The same operating setup can help with work before billing. Our Estimate Follow-Up Agent tracks estimates and sends trade-appropriate follow-ups on day 2, day 5, and day 14. A 24/7 Dispatch Voice Agent can answer missed calls, qualify emergency versus scheduled work, book a slot in the dispatch tool, and text a confirmation. These agents address different leaks, but they depend on the same basic discipline: clear records and a defined next step.
An owner may still be dispatching while crews are on the tools, with calls going to voicemail and some callers leaving no message. That missed-call problem can mean lost work, depending on the job and whether the customer finds another provider. It’s separate from unbilled work, but it competes for the same limited office attention.
If you want to map which checks should stay manual and which are ready for automation, Book a 60-min Omni Audit. We’ll discuss your workflow and data sources, potential automation opportunities, and practical next steps. No deck.
Put a dollar value on the exceptions
Start with your own records, not a generic recovery estimate. For one month, count completed work orders with no invoice and matched invoices with a confirmed labor or material discrepancy. Separate valid no-charge work from genuine omissions. Then calculate the confirmed value using your actual rates and cost rules.
For example, if a confirmed missed item is two hours of approved labor, use the customer’s applicable labor rate, not a broad company average. If parts are missing, use the amount your pricing policy allows, not the purchase cost alone. If an invoice has already been sent, check your process for corrections before taking action.
You can also estimate the administrative cost of the current process. Record how long staff spend exporting reports, locating notes, checking with technicians, and correcting records. That time is real even when a job was ultimately billed. Don’t count it as recovered revenue, but include it when deciding whether a better workflow is worthwhile.
For a wider review of the revenue handoffs in your business, stop losing money on unbilled work in your trades business. If calls and follow-up are also areas of concern, the After-Hours Call Recovery Plan for Trades is a practical worksheet for mapping what happens when a customer calls outside office hours. You can get the downloadable call recovery plan and use it to document who responds, how the call is qualified, and where the booking gets recorded.
Build the process before adding automation
Before an agent touches billing records, confirm that your team can answer these questions:
- Which work-order status means the job is finished?
- Which system holds the final labor and material details?
- What is the normal time between completion and invoice creation?
- How are warranty, callback, and no-charge visits recorded?
- Who can approve an invoice change or a new charge?
- What happens when the customer hasn’t approved extra work?
- Where does a reviewer see that an exception has been resolved?
If those answers vary by person, document the rules first. Automation can follow a stable process. It can’t resolve conflicting expectations about whether a return visit belongs on the original job or how an unapproved repair should be billed.
Run the first version against a historical period and have staff review the results. Check both false positives, such as legitimate warranty work flagged as missing billing, and false negatives, such as a job that matched an invoice but still lacked a chargeable item. Adjust the rules before the agent creates a live queue.
The useful outcome isn’t a flashy dashboard. It’s a short list of specific work orders that someone can resolve, with enough evidence to make the decision. For help assessing the data, workflow, and safe boundaries for an agent, see Omni for trades businesses.
Choose a first measurable step
A plumbing company doesn’t need to automate every billing step at once. Start with one service line or one team, run a daily completed-to-invoiced report, and assign an owner to review the exceptions. Track how many items are confirmed as missing, how long they take to resolve, and why they occurred.
After the manual process is consistent, decide which parts an agent should handle. A good first task is identifying mismatches and preparing a review queue. You can then consider draft creation or additional routing once staff trust the results and approval rules are clear.
The same approach applies to HVAC, electrical, and roofing jobs, though the records and billing rules differ. The value comes from matching the field record to the invoice before the job fades from view. If you want to assess the opportunity against your systems and team, see the AI audit for trades businesses and Book a 60-min Omni Audit. We’ll map the workflow, identify where work slips between completion and billing, and leave you with three practical outputs and no deck.
Your guide is ready
Check your downloads folder. If it did not open automatically, use the button below.
Download the GuideYour guide is ready
Check your downloads folder. If it did not open automatically, use the button below.
Download the GuideTalk it through
Talk it through with Sam
30 minutes on what a Command Centre would look like for your business.
Book a call