Cleaning KPIs That Show Which Sites Lose Money
Cleaning contracts are won on price and lost on hours. A contract priced at a certain number of hours per site per week makes money for precisely as long as that assumption holds, and the most common way to lose money in this industry is for it to stop holding somewhere nobody is looking.
Running this manually today?
See how Fieldproxy handles it — a walkthrough on your own workflow, not a canned demo.
Book demoThe numbers that actually matter
- Hours delivered against hours budgeted, per site rather than per contract
- Cover cost, and which sites consume the most of it
- Audit scores against the contract specification over time
- Attendance exceptions — late starts, short shifts, missed visits
- Periodic and additional works as a share of contract value
- Staff turnover by site, which usually precedes a quality problem
- Per-site profitability, which is the number a contract review turns on
Why per-contract reporting hides the problem
A contract with eleven sites can be comfortably profitable in total while two of those sites lose money every week. Reported at contract level, that is invisible, and it stays invisible until the contract comes up for renewal and somebody works out that the price cannot be held.
Reporting per site is not a nicety. It is the only level at which the operational decision — retrain, re-spec, renegotiate or resign — can actually be made.
Reporting on your structure
Because the model holds contracts, sites, shifts and audits as real objects, these are things that can be reported on directly rather than approximated from job records.
Two approaches to the same problem
| Contract-level reporting | Site-level reporting | |
|---|---|---|
| Loss-making sites | Hidden in the average | Visible weekly |
| Hours variance | Discovered at month end | Visible as it drifts |
| Cover cost | Aggregated | Attributed to the site that caused it |
| Renewal conversations | Reactive | Based on evidence |
What you can report on
- Hours against budget, per site and per contract
- Cover cost attribution
- Audit scores and trends against the specification
- Attendance exceptions
- Per-site and per-contract profitability
- Client-facing packs built to each client's requirements
Common questions
What cleaning KPIs actually matter?
Hours delivered against hours budgeted per site is the one that decides profitability. Audit scores, cover cost and attendance exceptions are the leading indicators that explain why it is drifting.
Why report per site rather than per contract?
Because a healthy contract can contain loss-making sites, and site is the level at which anything can actually be done about it.
Can clients get their own reporting?
Yes, built to what each client asked for. In commercial cleaning the reporting pack is frequently what gets scrutinised at retender.
How is cover cost tracked?
Attributed to the site that required it, so the sites quietly consuming overtime are visible rather than absorbed into an overall figure.
See which of your sites lose money
Bring one contract with its site list and budgeted hours. The answer usually arrives quickly.
Book a walkthrough