If you're pricing jobs by checking what competitors charge or picking a number that "feels right," you're not running a pricing strategy — you're guessing. Guessing works fine right up until you look at your bank account after a busy month and wonder where the money went. This happens constantly in cleaning businesses because revenue feels good, but revenue isn't profit. Job costing is the tool that closes that gap.

This article walks through how to actually cost a cleaning job, what margin you should be targeting, and how to build pricing that survives real-world chaos like no-shows, extra time on dirty houses, and rising supply costs. For the bigger financial picture — cash flow, taxes, and separating business from personal money — see our pillar guide on small business finance basics for service companies.

Why "busy" and "profitable" are not the same thing

A cleaning company can run five jobs a day, every day, and still lose money. This happens when the price per job doesn't cover the full cost of delivering it — not just cleaning supplies, but labor, drive time, insurance, equipment wear, and your own overhead. Job costing forces you to see the true cost of a job before you set the price, instead of finding out after the invoice is paid.

What actually goes into the cost of a job

Most owners only count the obvious stuff: hourly wage and maybe supplies. That's a fraction of the real cost. Here's a fuller breakdown for a standard 3-hour residential clean with one cleaner.

Cost itemUS exampleUK example
Cleaner wages (3 hrs @ hourly rate)$54.00£33.00
Payroll burden (taxes, workers' comp, ~18–22%)$10.80£6.60
Drive time & mileage$8.00£5.00
Supplies & equipment wear$6.00£4.00
Insurance allocation$3.50£2.00
Overhead allocation (software, admin, marketing)$9.00£5.50
Total job cost$91.30£56.10

If you're charging $120 for that job, your gross margin is about 24%. That might sound fine until you remember this number doesn't yet include your own owner pay, taxes on business profit, or a cushion for slow weeks. Many cleaning businesses target 35–45% gross margin on labor-heavy jobs specifically because so much can go wrong: a client's house takes longer than quoted, a cleaner calls in sick and you pay overtime to cover, or a client cancels last minute after you've already scheduled staff.

Payroll burden is the number owners most often forget

In the US, payroll burden includes employer-side Social Security and Medicare (7.65%), federal and state unemployment insurance, and workers' compensation premiums, which for cleaning businesses often run higher than office-based industries because of injury risk. Add these up and a $18/hour cleaner can actually cost you $21–23/hour once burden is included. If your pricing model uses the $18 figure, you're underpricing every single job.

In the UK, the equivalent is employer National Insurance contributions (currently 13.8% above the secondary threshold), pension auto-enrolment contributions, and employer's liability insurance, which is a legal requirement for any business with employees.

Building a job costing model that's actually usable

You don't need a finance degree — you need a repeatable formula you use every time you quote. A workable structure:

  1. Estimate labor hours based on square footage, room count, or service type (standard clean vs. deep clean vs. move-out).
  2. Multiply by fully burdened hourly cost — wage plus payroll taxes, insurance, and benefits, not just the wage rate.
  3. Add direct costs — supplies, mileage, equipment depreciation for that job type.
  4. Add an overhead allocation — a flat percentage or per-job dollar amount covering software, admin time, marketing, and office costs.
  5. Apply your target margin — divide total cost by (1 − target margin %) to get your price. If cost is $91.30 and you want 40% margin: $91.30 ÷ 0.60 = $152.17.

Once you have this formula, apply it consistently across every quote — recurring cleans, one-time deep cleans, and add-on services like carpet or window cleaning. Different service types often carry different margins because the labor-to-supply ratio changes; a one-time deep clean has more variable risk than a recurring weekly client, so it should carry a slightly higher margin cushion.

Pricing recurring clients vs. one-time jobs

Recurring clients are more predictable — you know the home, the time it takes, and the schedule — so they can run on tighter margins, often 30–35%, because the acquisition cost is spread across many visits. One-time and first-time jobs carry more unknowns (unexpected mess, access issues, first-clean deep work) and deserve a higher margin, typically 40%+, to absorb that risk. A common mistake is quoting a first clean at the same rate as ongoing service, then losing money on the deep-clean-level work required to get a new home to "maintenance standard."

Where job costing breaks down in real operations

  • Underestimating drive time between jobs, especially in spread-out suburban routes.
  • Ignoring no-shows and cancellations — if 10% of scheduled jobs cancel with no fee, that cost needs to be built into everyone else's pricing or covered by a cancellation policy.
  • Flat-rate pricing on variable homes — a "$120 standard clean" that doesn't account for a 1,200 sq ft condo versus a 2,800 sq ft house with three bathrooms.
  • Not repricing after cost increases — supply costs, minimum wage changes, and insurance premiums rise regularly; pricing set two years ago rarely still hits your margin target today.

Sales tax and margin: don't confuse the two

In many US states, cleaning services are subject to sales tax, and rules vary significantly by state and even by service type (residential vs. commercial, recurring vs. one-time). Sales tax you collect isn't your revenue — it passes through to the state — so it should never be counted in your margin math. Keep it clearly separated in your invoicing and bookkeeping so you're not accidentally treating tax collections as profit. UK businesses registered for VAT face a similar separation: VAT collected on invoices is not business income and must be tracked separately from job revenue.

Turning job costing into daily pricing decisions

The real value of job costing isn't a one-time spreadsheet — it's having the numbers on hand every time you quote a job, add a service, or decide whether a client's custom request is worth accepting. When quoting and scheduling happen in the same system where you track job details and payment, it's much easier to see actual time spent per job versus estimated time, which is exactly the data you need to refine your costing model over time.

This is where having your booking, scheduling, and invoicing connected pays off — instead of guessing at drive time and job length from memory, you can see it from completed job records and adjust pricing with real data instead of gut feel.

A simple monthly margin check

Once a month, pull your total revenue and total direct job costs (labor, supplies, mileage) for that period. Divide gross profit (revenue minus direct costs) by revenue to get your gross margin percentage. If it's trending below your target — say, dropping from 38% to 31% over a few months — that's an early signal that either costs have crept up, jobs are taking longer than quoted, or pricing hasn't kept pace with wage or supply increases. Catching this quarterly, rather than at year-end tax time, gives you room to adjust before it becomes a cash flow problem. For more on connecting this to your broader financial routine, revisit the finance basics guide.

Get pricing and operations working together

Good margins start with good numbers, but they hold up when your booking, scheduling, invoicing, and reminders all run smoothly so you're not losing money to missed follow-ups or scheduling gaps. CleanWhale handles online booking, scheduling, invoicing, and automated reminders in one place, so you can price with confidence and actually collect what you've quoted. Check out plans & pricing or explore what CleanWhale can do for your business.