£3,480
- Completed 11 June, billing window elapsed.
- Four customer invoices examined, none qualifying.
- No job reference and no amount match within tolerance.
Evidence
Operational gap
Read-only. RegentOps does not change data in your connected systems.
Source systems
Job #3390 · Completed 11 Jun · £3,480
4 invoices for this customer since 1 Jun
None qualify against this job
Reconciliation engine
6 checks£3,480
Evidence
The pattern
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
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
Emergency attendance, pump replacement. Completed 11 Jun.
Customer resolved. Four invoices raised in the period.
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.
Illustrative example. Not customer data.
Resolution
Connect
Read-only access to your job and accounting systems.
Reconcile
Jobs, customers and invoices become canonical records.
Detect
Completed jobs checked for a qualifying invoice.
Review
Evidence and candidate invoices shown side by side.
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.
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.
The wider category, including drafts and value disagreements.
Reconciling completed ServiceM8 jobs with Xero records.
Reconciling Simpro jobs and projects with Xero records.