What we fix
Six places an FM contract quietly leaks margin.
None of them show up as a line on a budget, because none of them are a line on a budget. They are people, time and work that quietly does not happen. We work with the systems you already have: API where there is one, controlled automation where there is not.
Terri working a queue and showing its reasoning on every job. Demonstration data, October 2026.
01Work orders and intake
97 of 100
test calls became dispatchable jobs
A desk operator that works inside whatever system your client already runs.
Terri answers the phone, asks the questions that contract requires, matches the site, sets the trade and the priority, raises the work order in your client’s own system and dispatches it. What it hands over is a job, not a transcript for somebody to type up.
It belongs to no CAFM vendor. Terri operates the systems you already run, the way somebody on your desk would: your own job management system, your client’s CAFM, or both at once. Neither you nor your client changes anything, and win a client running something different and Terri is set up to work that too.
Everything downstream is decided in that first minute. A wrong priority is a missed SLA. A wrong trade is a second visit. A wrong site is both, plus an argument about who pays.
The 97 of 100 is a bench run against a copy of a live system, not a demo we built ourselves: phone call to dispatched work order, end to end, in UAT.
What we built
ProofSync moving completed jobs into the client’s system and reading each one back to prove it landed. The one job that needs a person is held, not guessed. Demonstration data, November 2026. The £228,000 beside it is worked off that contractor’s real volume of 3,000 jobs a month.
02Client portals
£228,000
a year, in one contractor's staff time
You are paying twice for the same job.
That is what one FM contractor was spending to re-key jobs between their own system and their client's. By hand, every day, in both directions. Three thousand jobs a month is their own figure. Twenty minutes a job and £19 an hour is our working, and we show it.
If you work for a client who runs their own CAFM, your people are the integration. They read a job on one screen and type it into another, then do it again when it closes.
What we built
Automatic triggers, as configured
The six that decide whether an alert becomes work. Five chase money. One would chase the job.
| An invoice is 1 to 30 days overdue | Invoice: 1-30 days overdue | On |
| An invoice is 31 to 60 days overdue | Invoice: 31-60 days overdue | On |
| An invoice is 61 to 90 days overdue | Invoice: 61-90 days overdue | On |
| An invoice is 91+ days overdue | Invoice: 91+ days overdue | On |
| A quote passes its due date | Quote: overdue to be sent | On |
| A job goes past due, a response time is missed, a job is finished but never signed off | left unconfigured | Off |
A trigger turns an alert into a status. A status can be filtered, coloured, reported on and handed to somebody. An alert on its own cannot.
Client review Anonymised, 2026. The counts are real. Client, brand and contractor names are removed.
03SLAs and exceptions
34 of 64
automatic triggers switched on
You automate chasing money. You do not automate chasing work.
One contractor had 34 of their system's 64 triggers configured. Every one of them chases an invoice.
A job going past due, a response time missed, a job finished but never signed off: left unconfigured. The alert is still raised, which is why the list exists. It never becomes a status anyone can filter, colour, report on or hand to somebody.
Of 784 open jobs, overdue by
One contract base, read in full. Pending and Progress were read row by row rather than counted.
Only one open job has no due date at all, so this is not missing data.
Client review Anonymised, 2026. The counts are real. Client, brand and contractor names are removed.
04Contractor chasing
617 of 784
open jobs overdue, on one contract base
Overdue is not a reporting problem. It is contract exposure.
784 jobs open, 617 past due, the oldest 477 days past due and still on hold. 830 alerts never opened. 154 jobs finished and never invoiced.
Chasing is the job nobody is given and everybody is blamed for. It is also the one piece of work a system can genuinely do on its own, if somebody configures it to.
Fields populated, by brand
Darker is more complete. Every brand is a full count of its own active sites, so nothing here is sampled.
| All 1,410 active sites | Fin code | Phone | Region | Area mgr | Reg FM | Snr mnt | Mnt mgr | Hours |
|---|---|---|---|---|---|---|---|---|
| Brand Aall 58 | 58 | 56 | 57 | 58 | 58 | 57 | 57 | 54 |
| Brand Ball 44 | 44 | 41 | 43 | 44 | 44 | 43 | 43 | 39 |
| Brand Call 38 | 38 | 35 | 37 | 38 | 38 | 37 | 37 | 35 |
| Brand Dall 27 | 27 | 26 | 27 | 27 | 27 | 27 | 27 | 27 |
| Brand Eall 17 | 17 | 14 | 17 | 17 | 17 | 17 | 17 | 1 |
| Brand Fall 16 | 16 | 15 | 16 | 16 | 16 | 14 | 14 | 2 |
| Vacantall 38 | 38 | 29 | 29 | 38 | 36 | 29 | 29 | 28 |
| Distributionall 4 | 4 | 2 | 4 | 4 | 4 | 3 | 3 | 0 |
| Brand Gall 571 | 571 | 522 | 539 | 571 | 569 | 537 | 538 | 504 |
| Brand Hall 594 | 593 | 545 | 547 | 593 | 592 | 547 | 547 | 510 |
Fin code, Phone, Region, Area mgr, Reg FM, Snr mnt, Mnt mgr, Hours. Two of those columns read as populated on 1,312 sites and name an actual person on one.
Client review Anonymised, 2026. The counts are real. Client, brand and contractor names are removed.
05Mobilisation
3,093
records read field by field, read only
Starting a contract on data nobody has checked.
One review read 1,410 active sites and 1,683 inactive, field by field, with nothing created, edited or saved.
The records were mostly filled in. The structure was not. What identifies a site living inside its name instead of in a field. A finance code holding four conventions in one box. Two maintenance manager columns that look complete on 1,312 sites and name a real person on exactly one. Mobilise on that and you inherit all of it.
Open work orders, by contractor
The five largest holders, out of 84 contractors carrying live work across 35 trades and 843 sites.
Five hold 57 per cent of all open work. Ten hold 70 per cent.
Client review Anonymised, 2026. The counts are real. Client, brand and contractor names are removed.
06Contractor intelligence
57%
of open work held by five contractors
Know who is actually carrying your contract.
1,968 open work orders, 84 contractors, 35 trades, 843 sites with something open. Five contractors held 57 per cent of it. Ten held 70.
That may be exactly the model you intended, or more dependency than anyone has looked at. We draw no conclusion from it. The point is that it was one export rather than a project, and it was answerable the same day.
The part that matters
Not tied to one CAFM.
A platform vendor's agent works inside that vendor's product, and the moment you are on it they set the price, the roadmap and the terms. We are the side of that trade you can take without replacing what you already run.
We work with the systems you already have: API where there is one, controlled automation where there isn't.
Next
Bring us one process that's getting in the way.
Thirty minutes. We'll tell you whether we can take it out, and roughly what it would cost. If we can't, we'll say so.