Labour percentage settles the year before anything else does
Wages are the largest cost in a cleaning company by a wide margin, so the ratio of labour to revenue decides profit before rent, insurance or supplies get a vote. The honest version of that ratio is loaded labour: the hourly wage plus vacation pay, the employer share of CPP and EI, WSIB premiums and paid travel between sites. The pay stub understates what an hour of cleaning really costs, and growing revenue does not fix a bad ratio; it scales it.
We build the chart of accounts so the number computes itself: direct cleaning wages, supervision, travel time and payroll burdens on separate lines, each read against revenue on the first page of the monthly statements. When the percentage creeps, you see it the month it moves, not the following April when the T2 gets prepared.
A blended statement hides the losing contract
One company-wide profit line can look healthy while an anchor building quietly loses money every week. The cure is job costing per contract: hours clocked at each site against the hours the bid assumed, supplies drawn for that site, and the travel needed to reach it, rolled into a margin figure per building per month.
The classic leak is overservicing. A site quoted at twenty crew-hours a week drifts to twenty-six after a tenant complaint, an added floor or a supervisor who keeps sending help, and nobody re-prices the work. The same drift hides in extras: strip-and-wax visits, carpet extraction and window work performed on goodwill but never invoiced. Extras also spike in the spring and fall floor seasons, which is exactly when invoicing them matters most. Monthly per-contract margin catches all of it while renegotiation is still possible, instead of at renewal when the year is already spent.
What the per-contract scorecard tracks
Five measurements, produced monthly from data the crews already generate, cover most of what goes wrong in cleaning economics.
| What we measure | Why it moves profit |
|---|---|
| Hours clocked vs hours in the bid | Overservicing is the silent margin leak in cleaning |
| Loaded labour cost per site | Wage plus CPP, EI, WSIB and travel, not the raw pay rate |
| Supplies drawn per site | Consumable drift and dilution problems surface here first |
| Extras performed vs extras invoiced | Work done free is margin given away in silence |
| Margin by contract, monthly | Turns renew, re-price or release into an evidence call |
Site hours in, clean payroll out
Job costing only works when hours are captured where the work happens, not reconstructed on payday. Scheduling tools like Jobber and janitorial platforms like Swept record clock-ins against specific sites; we map those hours into QuickBooks Online so labour cost lands on the contract that consumed it, and run supplier bills from the janitorial supply house through Dext, coded to sites where the amounts justify it.
Payroll itself is delivered inside End-to-End Accounting: bookkeeping, payroll, financial reporting and tax filing under one roof. In cleaning that means biweekly runs across constant turnover, vacation pay accrued rather than forgotten, ROEs issued promptly when crew move on, and T4s that agree with the ledger at year-end without a December scramble. Statutory holiday pay across part-time schedules gets calculated rather than guessed, and the same payroll data feeds WSIB insurable-earnings reporting without a separate spreadsheet.
HST on every invoice, and a close you can act on
Cleaning is taxable at 13% in Ontario whether the client is a property manager or a homeowner, so every invoice carries HST and the return has to tie back to billed revenue rather than to bank deposits. The books also have to respect how cleaning gets paid: residential clients settle at the door while commercial accounts run net-30 or slower, so we invoice on a fixed schedule, age the commercial receivables and keep the growing HST liability visible instead of letting it surprise the bank balance at filing time. The deeper invoicing discipline, and the subcontractor question that follows cleaning companies around, sit on the tax side of the practice.
Month-end closes on a set rhythm for the cleaning companies we work with across Mississauga and the GTA: labour percentage, margin by contract, receivables and the tax accounts, on time every month. A solo residential cleaner who does not need monthly service yet can keep a CPA on call with CPA Quick Support at $99 a month; everything larger is scoped and quoted in writing after a free 15-minute discovery call.
