Operational gap

Job completed. Invoice missing. RegentOps spots the gap.

Every completed job is checked against your accounting records. Where no qualifying invoice exists after the billing window, the job is raised for review with the reasoning attached.

Read-only. RegentOps does not change data in your connected systems.

RegentOpsCompleted job reconciliationrun 06:02Illustrative

Source systems

Job management11 Jun

Job #3390 · Completed 11 Jun · £3,480

Accountingchecked

4 invoices for this customer since 1 Jun

Accountingno match

None qualify against this job

Ingest

Reconciliation engine

6 checks
  1. 06:02:11Completion detected11 Jun · closed on siteMatched
  2. 06:02:11Customer resolvedSingle confirmed linkMatched
  3. 06:02:12Grace periodElapsedMatched
  4. 06:02:12Void / deletedExcluded from matchingMatched
  5. 06:02:12Reference matchNo job reference on any invoiceNot found
  6. 06:02:13Amount + date matchNo invoice within toleranceNot found
Finding
No qualifying matching invoiceHigh confidence

£3,480

  • Completed 11 June, billing window elapsed.
  • Four customer invoices examined, none qualifying.
  • No job reference and no amount match within tolerance.

Evidence

Job #3390Customer link4 invoices checked
Review evidenceCreate actionDismiss

The pattern

One job, two systems, no handover

The sequence is always similar. Work is completed and closed operationally. The closure event carries everything needed to bill: customer, date, value, description. It stays where it was created. The accounting system never hears about it, because nothing told it to.

Weeks later the job is invisible. It is not on an aged debtor report, because no invoice exists. It is not on a work-in-progress list, because operationally it is finished. It is not on anyone's follow-up list, because nobody knows it needs following up.

The only way to find it is to compare two systems and notice the absence — which is exactly the check RegentOps runs.

The check

What has to be true before a job is raised

A useful finding is a specific one. The rule is deliberately conservative, because a false alarm costs your team more time than the finding is worth.

  • Completion is recorded

    The job system states the work is complete. Open and in-progress jobs are never raised.

  • The customer is resolved

    The job's customer is confidently linked to a single accounting contact. Unresolved customers are excluded and held for a human decision instead.

  • The grace period has passed

    Recent completions are given room to be invoiced through the normal billing cycle before anything is flagged.

  • Void invoices are ignored

    Provider statuses are mapped to canonical states. A voided or deleted invoice never counts as evidence of billing.

  • No qualifying match exists

    Reference tokens are checked first, then amount within a date window. A match on either clears the job.

  • No cost data is used

    Supplier costs are not part of the decision. This is a billing question, not a margin question.

The financial decision is deterministic. It is made by rules over canonical records, not by a language model interpreting free text.

Worked example

A single reactive job, followed through

Job management£3,480

Emergency attendance, pump replacement. Completed 11 Jun.

Accounting1–30 Jun

Customer resolved. Four invoices raised in the period.

Accountingno match

No invoice references the job; no amount matches within tolerance.

Outcome

The job is raised as potentially unbilled, valued at the operational job figure, with three possible resolutions: attach the invoice it actually belongs to, raise the missing invoice in your accounting system, or dismiss it with a reason such as contract coverage. Whichever is chosen is recorded.

Job recordCustomer linkInvoice searchRule version

Illustrative example. Not customer data.

Resolution

From finding to invoice

  1. Connect

    Read-only access to your job and accounting systems.

  2. Reconcile

    Jobs, customers and invoices become canonical records.

  3. Detect

    Completed jobs checked for a qualifying invoice.

  4. Review

    Evidence and candidate invoices shown side by side.

  5. Resolve

    Attach, bill or dismiss with a reason. The decision persists.

If your systems are ServiceM8 and Xero, the connector-specific detail is on ServiceM8 Xero reconciliation. For Simpro and Xero, see Simpro Xero reconciliation. The broader problem is covered on contractor revenue leakage.

Check every completed job against your accounts

Connect one accounting system and one job-management system. RegentOps reads the data, reconciles what each system knows and shows you which completed jobs have no qualifying matching invoice.
  • Free for up to 90 days

    Connect one accounting system and one job-management system.

  • Exposure and findings

    Total commercial exposure identified, the finding count, and the three strongest findings in full.

  • Read-only

    RegentOps reads your data. Nothing in your connected systems is changed.

Completed but not invoiced: common questions

Why do completed jobs get missed at invoicing?
Because completion and invoicing happen in different systems, at different times, usually by different people. A job closed on a phone at 5pm on a Friday depends on someone else noticing it in a billing run days later. Nothing in either system reports the omission.
Can RegentOps tell whether a completed job has been invoiced?
It checks whether a qualifying invoice exists for the resolved customer within the expected window, ignoring void and deleted records. Where a match is found the job is cleared. Where none is found the job is raised as potentially unbilled, with the search shown.
What if the job is included in a service contract?
Contract-covered work often has no one-to-one invoice. Findings like these can be resolved with a reason, and that resolution is recorded so the same job is not raised repeatedly.
Does RegentOps create invoices automatically?
No. It is read-only in your connected systems. It identifies the gap and shows the evidence; raising the invoice happens in your accounting software, by your team.
Does RegentOps need cost data to identify unbilled jobs?
No. Job cost data is not required to identify a completed job with no qualifying matching invoice. Supplier costs are never treated as money at risk in their own right.
What about jobs invoiced together on one consolidated invoice?
One invoice can cover several jobs. Where an invoice is linked to a job by your team, that link is kept and applied to future reconciliation runs.

Related reading