Product/To manage the money/Job costing
Know which jobs make money, and which only feel busy
Every job is costed when it's done: your crew's real hours from check-in to check-out at their pay rate, the supplies, the travel and the card fees, against what the customer paid. You see the profit and margin for each job, each type of clean and each customer.
What changes
Prices you can defend
Prices set by guesswork
Profit and margin per job
Busy weeks that somehow made nothing
Margins by service type and customer
No idea which service is worth selling
Labour from real crew hours
How it works
The real cost of every job
Nothing to add up after the job. The hours come from the cleaner app, and the costs land on the job.
Each cleaner's time comes from their check-in and check-out, costed at their own pay rate. Marcus at $22 and Aisha at $21, 4.6 hours each, is $197.80. If the clean ran 40 minutes long, those 40 minutes are in it.
The costs that don't show on the quote come off too. Card fees are counted charge by charge, on the deposit and the balance, because they're charged on the total with HST and add up faster than you'd guess.
Sort the week by margin and the problem jobs float to the bottom. Two standard cleans kept 47% or more. A move-out with three cleaners for five and a half hours lost $55.24.
KnoxThe one at the bottom is the one to reprice. I sorted it for you.
See how each service does over the month, with its revenue next to it. Standard cleans kept 34% in October. Move-outs kept 12%. Now you know which one to sell harder and which one to reprice.
The same numbers, customer by customer. A dental office three times a week can quietly be your best account, and a one-off move-out your worst. Price the next booking on what the last one actually cost.
What's included
Everything in job costing
- Profit and margin per job
- Margins by service type
- Margins by customer
- Labour from crew hours
- Card fees included
- Monthly revenue reports
One move-out, start to finish
30 Elm St: a 2-bedroom move-out at $340
Same crew, same hours, same oven cleaner. The only thing that changed was knowing what the job cost.
- Monday, 3 PM.A tenant books a 2-bedroom move-out at 30 Elm St online for Friday, at $340. The deposit comes in with the booking.
- Friday, 8:30 AM.Marcus, Aisha and Leo check in. The balcony door track hasn't been cleaned since the building went up, and every cupboard needs wiping inside.
- Friday, 2:00 PM.All three check out. 5.5 hours each, 16.5 crew hours. The balance goes on the card, and the job is paid.
- Friday, 2:05 PM.The job is costed: $346.50 of labour, $28 of supplies, $9 of travel, $11.74 of card fees. $395.24 against $340. It lost $55.24.
- Saturday.You sort October by type of clean. Standard cleans are keeping 34%. Move-outs are keeping 12%, and this one is a big reason why.
- Sunday.You work the price from the cost: $383.50 of labour, supplies and travel, two card charges, a 30% target. It comes to about $575. You set 2-bedroom move-outs at $560 and accept a hair under 30%.
- Two weeks later.The next 2-bedroom move-out takes the same 16.5 crew hours. At $560, it costs $402.46 and keeps $157.54, 28.1%.

The full guide
Everything we'd tell an owner about job costing
What goes into the cost of a cleaning job, what an hour of a cleaner really costs in Ontario, how to price from cost, and a checklist for your next quote. About eleven minutes.
Read the full guide+
Why a busy week can make nothing
Every cleaning company has had the week. The calendar was full, the crews were out from 8 to 5, the phone didn't stop, and on Friday the bank account looked about the same as it did on Monday.
Read where it breaks+
It isn't bad luck. It's usually one of four things, and none of them show up on a quote:
- The job that ran long. You quoted a 3-bedroom deep clean at four hours. It took two cleaners five. Nobody charged for the extra hour, but everybody got paid for it.
- The move-out priced like a standard clean. Empty units show every mark. Three cleaners for five and a half hours on a $340 job loses money before anyone buys oven cleaner.
- The drive. A 9 AM in Etobicoke and an 11 AM in Scarborough means a paid hour on the 401 that no customer is paying for.
- The fees. Card fees, charged on the total with HST, twice per job when there's a deposit and a balance. Small each time. Not small by December.
Job costing is how you find these. It means working out what each job actually cost to deliver, and comparing it with what the customer paid. Do that for every job, and the patterns show up in a month: which services make money, which customers are worth keeping, and which prices need fixing before the next booking.
What goes into the cost of a cleaning job
A cleaning job has five costs you can pin to it. Everything else (insurance, software, your phone, marketing, your own time in the office) is overhead, and it gets paid from what the jobs leave behind.
- Labour. Each cleaner's hours on the job, times their pay rate. Real hours, from when they started to when they finished, not the hours you quoted.
- Labour burden. If your cleaners are employees, what you pay on top of the wage: your share of CPP and EI, WSIB, vacation pay and public holiday pay. More on that in the next section.
- Supplies. Chemicals, cloths, bags, the oven cleaner a move-out eats. Most owners work out an average per type of clean rather than counting spray bottles.
- Travel. Getting the crew and the kit there: gas, parking, and the paid time driving between jobs.
- Card fees. Whatever your payment processor takes on each charge.
Here's one real-looking job at a demo company, Your Cleaning Co.: Priya's deep clean at 21 Elm St. Quoted at $290, it ran 40 minutes long because the oven was worse than expected, and a $35 oven add-on went on the job. Marcus and Aisha checked in at 9:04 and out at 1:40.
| How it's worked out | Amount | |
|---|---|---|
| Paid, before HST | $290 quote + $35 oven | $325.00 |
| Labour, Marcus | 4.6 hours × $22 | $101.20 |
| Labour, Aisha | 4.6 hours × $21 | $96.60 |
| Supplies | Average for a deep clean | $14.00 |
| Travel | Gas and parking | $9.00 |
| Card fees | $3.17 on the deposit, $8.08 on the balance | $11.25 |
| Profit | $325.00 − $232.05 | $92.95 (28.6%) |
Notice what isn't in the price: HST. The $41.60 of HST on that job was never yours, so it doesn't count as revenue. Cost against the price before tax, always.
Labour burden: what a $21 hour really costs
If your cleaners are employees, the wage on the pay statement isn't the whole cost of an hour. In Ontario in 2026, these go on top:
| What | 2026 rate | On a $21 hour |
|---|---|---|
| Employer CPP | 5.95% of pay (above a $3,500 yearly exemption) | up to $1.25 |
| Employer EI | 1.4 × the 1.63% employee rate, so 2.282% | $0.48 |
| WSIB | Depends on your class and claims; class M averages $1.43 per $100 | about $0.30 |
| Vacation pay | At least 4% of wages (6% after five years) | $0.84 |
| Public holiday pay | Nine holidays a year; roughly 3.5% for a full-time cleaner | about $0.74 |
| Total | About 14% to 17% | about $3.60 |
So a $21 hour costs you closer to $24.60. On Priya's deep clean, adding 17% to the $197.80 of labour is another $33.63, and the job's profit drops from $92.95 to $59.32. Still a profit. A thinner one.
These rates are from the CRA, WSIB and the Ontario government's employment standards guide, checked October 23, 2026. Your WSIB rate depends on how your business is classified and your own claims history, and it's on your premium statement. Your accountant can give you the exact burden for your payroll in five minutes, and it's worth asking.
More Knocks costs labour at each cleaner's pay rate, from their real hours. It doesn't add the burden on top, so the margin you see is before it. The simple fix is to aim higher: if your burden is 17%, a job showing 28.6% is really nearer 18%, and you price with that in mind.
Drive time and card fees: the costs nobody invoices
Drive time
Under Ontario's Employment Standards Act, an employee's travel between work sites during the day is work time. The drive from home to the first job is usually commuting, and isn't. So when Marcus finishes at 25 Elm St at 12:15 and drives 35 minutes to his next job, you're paying for those 35 minutes, and no customer is.
Two ways to keep it under control:
- Count it. Put a travel cost on every job, even a rough one. A job across town from everything else that day should carry more of it than the job next door.
- Shrink it. Group jobs by area so the van spends its day on one side of town. A job ten minutes from the last one is worth more than the same job forty minutes away, at the same price.
If your cleaners use their own cars, the CRA's reasonable allowance for 2026 is 73 cents a kilometre for the first 5,000 km. It's a useful yardstick for what a kilometre of driving really costs, even if you pay mileage another way.
Card fees
Stripe's standard rate in Canada is 2.9% plus 30 cents per charge, and it's charged on what the customer pays, HST included. On a pre-tax price that works out to about 3.3%, plus 30 cents for each charge. A job paid as a deposit and a balance is two charges. Check your own processor's rate, because some cards and plans cost more.
On Priya's $325 clean, that's $11.25. On a $1,450 monthly office contract paid by card, it's $47.82. You can't avoid most of it, but you can make sure it's in the price.
What margin to aim for
Search for cleaning business profit margins and you'll get numbers all over the place: net margins of 10% to 28% in one industry dataset, 20% to 40% in another software company's guide, and labour anywhere from 30% to 60% of revenue. Almost all of it comes from companies selling software, including us, so treat any one figure with suspicion.
A more useful way to think about it is from your own overhead. Add up a month of the costs that aren't tied to any job: insurance, software, phone, marketing, the office, and a fair wage for the hours you spend running things. For a small company that's often 15% to 20% of revenue.
Every job has to cover its own costs, then its share of that overhead, then leave a profit. So if overhead is 18% of revenue and you want 10% profit at the end of the year, your jobs need to average about 28% after labour, supplies, travel and fees. If your crews are employees, add your labour burden on top of that.
Then look at the spread. A business where standard cleans keep 34% and move-outs keep 12% doesn't have a margin problem. It has a move-out price problem.
Pricing a cleaning job from its cost
Most owners price by looking at what competitors charge, then shaving a bit off. That tells you what the market will bear. It doesn't tell you whether the job makes money. Do both, and when they disagree, believe the cost.
The formula is short. Add up labour, supplies and travel for a typical job of that size. Add 30 cents for each card charge. Then divide by one, minus the margin you want, minus your card fees as a share of the price (about 0.033 at Stripe's standard rate in Ontario).
For a 3-bedroom deep clean like Priya's, with a 30% target:
| Step | Amount |
|---|---|
| Labour: 9.2 crew hours at $21.50 on average | $197.80 |
| Supplies and travel | $23.00 |
| Card charges: two at 30 cents | $0.60 |
| Costs to cover | $221.40 |
| Divide by 1 − 0.30 − 0.033 | ÷ 0.667 |
| Price for a 30% margin | about $332 |
Priya was quoted $290 for that home and paid $325 once the oven was added. A price of about $332 for a 3-bedroom deep clean that takes two cleaners 4.6 hours would have kept 30% without any surprises.
Use your real hours, not your hopeful ones. Take the last ten jobs of each type and size, and average the crew hours. If a 2-bedroom move-out takes three cleaners five and a half hours more often than not, that's the job you're pricing.
Job costing software that does the math for you
All of that works on a spreadsheet, if you have an evening every week. In More Knocks, every job is costed when it's done, with nothing to fill in.
Labour from real hours
Cleaners check in when they arrive and check out when they're done, in the cleaner app. Those hours are costed at each cleaner's pay rate. The 40 minutes the oven added are in there, because nobody had to remember them.
Supplies, travel and card fees
The costs that never make it onto the quote come off each job too, including the card fees on the deposit and the balance. The receipts you photograph go into your books through snap receipts.
Margin by job, type of clean and customer
Every job shows its profit and margin. Then the same numbers roll up by type of clean, so you can see standard cleans next to deep cleans next to move-outs, and by customer, so the dental office three times a week sits next to the one-off move-out. Monthly revenue reports show how it all adds up.
Fix the price before the next booking
The point of all this is the next quote. When move-outs keep 12% and standard cleans keep 34%, change the move-out price on your instant quote before Saturday's booking comes in. The month as a whole, after cleaner pay and card fees, is in accounting.
Before you quote your next job: a checklist
Run through this whenever you set or change a price, whatever you use to cost your jobs:
Does this price make money?
- You know the real crew hours for this type and size of job, from the last ten, not the best one
- Labour is costed at each cleaner's actual pay rate
- If your crew are employees, you know your labour burden and your target margin covers it
- Supplies are counted, with extra for move-outs and post-construction
- Travel is in the cost, and the job fits an area you're already in that day
- Card fees are counted on the total with HST, for every charge
- The price is compared before HST, never including it
- The job's margin covers its share of your overhead, plus a profit
- Extra time on the day gets added to the bill, not absorbed
- You've checked last month's margins by type of clean, and repriced the weakest
Questions
What owners ask about job costing
How do I calculate the profit on a cleaning job?
Take what the customer paid before HST. Subtract the labour (each cleaner's hours on the job times their pay rate), the supplies, the travel and the card fees. What's left is the job's profit, and profit divided by the price is the margin. A $325 deep clean with $197.80 of labour, $14 of supplies, $9 of travel and $11.25 of card fees made $92.95, a 28.6% margin.
What's a good profit margin for a cleaning company?
Published benchmarks vary a lot and most come from software vendors: net margins of 10% to 28% in one industry dataset, 20% to 40% in another vendor's guide. A more useful number is your own job margin, after labour, supplies, travel and card fees, compared across your types of clean. If insurance, software, phone and marketing take 15% to 20% of revenue, a job margin under 20% leaves you working for nothing.
How do I price a cleaning job from my costs?
Add up the labour, supplies and travel for a typical job of that size, plus 30 cents for each card charge, then divide by one minus the margin you want and minus your card fees as a share of the price. With $221.40 of costs, a 30% target and card fees of about 3.3%, the price comes to about $332.
Does job costing include payroll taxes and vacation pay?
More Knocks costs labour at each cleaner's pay rate, from their real hours. If your cleaners are employees, the employer's share of CPP and EI, WSIB premiums, vacation pay and public holiday pay add roughly 14% to 17% on top of the rate in Ontario in 2026. Your accountant can give you the exact figure, and it's worth aiming your margins high enough to cover it.
Do I have to pay cleaners for driving between jobs?
In Ontario, for employees, travel between work sites during the day counts as work time under the Employment Standards Act. The drive from home to the first job is usually commuting and doesn't. Drive time is a real cost of every job, which is why it belongs in your job costing. If your situation is unusual, ask the Employment Standards Information Centre or an employment lawyer.
Where do the hours come from?
From check-in and check-out in the cleaner app. When a cleaner taps in at 9:04 and out at 1:40, that's 4.6 hours on the job, costed at their pay rate. Nobody types a timesheet.
Do card fees really make a difference?
On a $340 job, yes. Stripe's standard Canadian rate is 2.9% plus 30 cents per charge, and it's charged on the total with HST, so it works out to about 3.3% of your price. On a job split into a deposit and a balance, that's two charges. More Knocks includes the card fees in every job's cost.
Job costing in practice
Guides that cover this
KnoxThe how-to, with the rules and real prices.
Job costing is one piece
More to manage the money
KnoxSame login, same customers, same numbers. Pick one, I'll wait.
See More Knocks run one of your own jobs
Book 20 minutes with one of the founders. We'll walk a real booking from quote to payment and tell you straight whether it fits your company.
Book your demo