Proof
A worked example. The client is not named and is not identifiable.
A contractor delivering utilities and civils work across the South East. Around fifteen direct staff, a subcontractor base of over fifty, and a vehicle fleet in the dozens.
The finance function had three problems, and they compounded each other.
The system was wrong for the business. It ran on a mid-market accounting platform heavier and more expensive than a company of that size needed, and beyond the practical reach of the people expected to operate it. The gap between what the system could theoretically do and what the business actually got out of it was total.
There was no control over subcontractor billing. Invoices went to whichever manager the subcontractor happened to deal with. Amounts varied for the same work. Documents were glanced at and passed to accounts for payment. There was no approval process and no central register, so duplicate and incorrect invoices were not detectable by anyone — not through carelessness, but because no individual can hold fifty subcontractors’ billing history in their head. On the civils side, the charging template required two people to complete it for a two-man team, which produced mismatches as a matter of routine.
Nothing was costed at job level. With no way of knowing what any individual job made, the business had no basis on which to decline one. So it took every job it was offered.
Migrated to a platform proportionate to the business and usable by the people who had to use it, configured so that costs and income are allocated to the projects and contracts that generated them. That configuration is what made job-level reporting and a genuine month-end possible.
Sales invoicing runs on templates we built, including self-billing arrangements, with chaser sequences and a payment tracker showing what is due, when, and how much. Purchase invoices are tracked against projects and run to payment plans, which put the business in a position to hold proper credit terms rather than paying reactively.
The civils costing system now generates a single charge per job covering both members of a two-man team, replacing the template that required duplicate entry. Everything outside that system runs through a multi-tier approval process with rule-based routing and a full audit trail from receipt to payment. Errors are now attributable and correctable instead of disputed.
It takes standard and specialist rates, material costs, estimated permit costs and other job-specific inputs, and prices them against estimated time to complete — including a subcontractor allocation layer that models expected duration by subcontractor, so a job is priced on the basis of who would actually do it rather than an average.
The output is a decision, taken before the work is accepted: what the job is worth, what it will cost, and whether it is worth taking.
Before: took everything — no basis to decline.
Now: priced before acceptance. Eleven declined in the first weeks.
Before: no pay run without duplicates or wrong amounts.
Now: the whole civils operation on one system.
Before: never done.
Now: done.
Before: loose estimates against unstable variables.
Now: estimates track what is actually paid.
Before: undetectable by any individual.
Now: cannot reach payment without clearing multi-tier approval, with a full audit trail.
Before: payments arrived when they arrived.
Now: expected amounts and dates, in advance.
A contractor that took every job because it couldn’t tell them apart now prices work before accepting it — and has stopped paying for the same work twice.
It was costing thousands a year. But the records from before the controls went in don’t support a number we’d be willing to stand behind — so we don’t give one. What we can show is the process that stopped it.