Cleaning Business KPIs for a One- or Two-Person Crew
By Mark Fulton · 2026-08-18 · 15 min read

At one or two people, four numbers cover it: revenue per booked hour with drive time counted in the denominator, recurring share of your book (recurring revenue ÷ total revenue over a fixed window), cancellation rate (cancelled or skipped visits ÷ scheduled visits), and supply cost per job (supply spend in a period ÷ jobs completed in that period). Every one of them comes off a calendar and a pile of receipts. None of them needs a time clock, a crew, or a field-service platform, because none of them measures a crew. They measure the only two things that actually constrain a small residential cleaning business: how many useful hours are in your week, and how much of each one you get paid for.
The KPI lists published for cleaning businesses are almost all written for commercial janitorial contractors. That is not a small mismatch. A janitorial firm's math problem is allocating labor across sites under a contract. Yours is fitting houses into a week without spending a quarter of it in the car.
You can see the mismatch in the metric names. Efficiency rating. Utilization rate. Payroll to revenue. Revenue per technician per day. Absentee rate. Technician turnover. Days sales outstanding. Every one of those either divides by a headcount you do not have or requires a system logging clock-in times you do not run. Ask a solo cleaner for her absentee rate and the honest answer is that she went, because if she does not go, nobody does.
The benchmarks attached to those lists are worth a second of scepticism too. You will see an efficiency rating target of 95% or above, payroll at 30 to 40% of revenue, monthly churn around 5%, collection rate above 95%, all laid out in tidy healthy-warning-critical tables. None of them carries a sample size, a survey, a year, or a source. They are house rules from software companies, presented in the typography of research. Comparing your business against an unsourced number is worse than comparing it against nothing, because it feels like information.
So here is the small version. Four numbers, the arithmetic for each, where the raw figures come from when you have no software, and a five-minute Monday check that puts them in order.
Why do commercial cleaning KPIs not fit a solo cleaner?
Because they nearly all presuppose an employee. Here is the translation table.
| Commercial KPI | What it presupposes | The one-crew substitute |
|---|---|---|
| Utilization rate | Staff whose paid hours differ from their billed hours | Revenue per booked hour, drive time included |
| Payroll to revenue | A payroll | Your own take-home per week against hours worked |
| Revenue per technician per day | More than one technician | Revenue per booked hour |
| Absentee rate, staff turnover | Staff | Nothing. Delete the row |
| Days sales outstanding | Invoiced clients on terms | Unpaid at end of week, counted, not averaged |
| Client churn rate | A book big enough for a percentage to be stable | Recurring share of the book, plus cancellations |
| Cost per square foot cleaned | Measured square footage per site | Supply cost per job |
The size point in that last-but-one row is real and it gets skipped. Churn expressed as a percentage needs a denominator large enough that one customer leaving does not swing it. With eighteen recurring clients, losing one is a 5.6% churn month, and losing two in the same month is 11%. Nothing about your business changed by a factor of two. You just have a small denominator. At this scale you count customers, you do not rate them.
It is worth being clear about what public wage data does and does not tell you here, because cleaning content leans on it a lot. The Bureau of Labor Statistics Occupational Employment and Wage Statistics program put employment for maids and housekeeping cleaners (SOC 37-2012) at 860,670 in its May 2025 national estimates, with a median hourly wage of $17.07. That figure is collected from employers about people on a payroll. It is a wage, not a billing rate, and a self-employed cleaner is not in it. Any page that quotes it as "what cleaners charge" has mixed up two different numbers.
What is revenue per booked hour and why does drive time belong in it?
Revenue per booked hour is the day's revenue divided by every hour the day consumed: cleaning time, driving between houses, and the supply stop.
Revenue per booked hour = day's revenue ÷ (cleaning hours + drive hours + errand hours)
Most published versions of this metric use billable hours in the denominator, which is the version that flatters you. Here is what the difference looks like on a real Tuesday.
Three houses. $135, $150, $110, so $395 for the day. On site you spent 2.5, 2.25 and 1.75 hours, which is 6.5 cleaning hours. Between them you drove 22 minutes, then 35 minutes, plus 25 minutes out to the first house and 30 minutes home, and you stopped for supplies for 15 minutes.
Billable-hours version: 395 ÷ 6.5 = $60.77 per hour
Booked-hours version: 395 ÷ 8.62 = $45.82 per hour
That is a 25% gap, and it is the gap that decides whether the week works. The second number is the one to track, because it is the one that moves when you accept a job on the wrong side of town.
Vehicle cost sits inside this too. For an internal costing placeholder you can use the IRS standard mileage rate for business use of a car, published at 72.5 cents per mile for January through June 2026 and 76 cents per mile from July 1, 2026. Two boundaries on that. It is a rate for tax purposes, and whether and how you can actually use it on a return is a question for a bookkeeper or accountant, not for a blog post. But as a rough stand-in for what a mile of driving costs your business, it is a defensible published figure rather than a guess. Fifty-two miles of driving on that Tuesday is about $40 at the current rate, against $395 collected.
Two decisions this number should trigger, and only two:
- Cluster before you fill. A booked hour rate that falls while your revenue holds steady almost always means the route got looser, not that pricing slipped. Look at next week's calendar geographically before you look at it chronologically.
- Run the far-house test. For any single job outside your normal cluster, compute that day's booked-hour rate with the job and without it. If the job pulls the day's rate down, it is not a job at that price. It might be a job at a different price, or on a day when you are out that way anyway.
You need the calendar for this, and only the calendar. Book next week's jobs in the appointments module, read the gaps as travel, and you have both inputs.
How much of your book should be recurring?
There is no sourced answer to that question, and you should be suspicious of the pages that give one. What you can do is compute your own figure and read its direction.
Recurring share = recurring revenue in a fixed window ÷ total revenue in that window
Use four weeks, and keep the window fixed once you pick it. Count a client as recurring when the next visit is already on the calendar, not when the client said she would probably keep going. Intention is not a booking.
Compute it two ways, because they disagree in a useful direction. Recurring share by revenue tells you how much of your income you can predict. Recurring share by visits tells you how much of your week is already committed. If the revenue share is much higher than the visit share, your recurring clients are your bigger jobs, and losing one hurts twice.
What to do with the trend:
- Rising recurring share, flat revenue means you are converting one-off customers into repeat customers without growing. That is usually good news for your week and neutral for your income.
- Falling recurring share, rising revenue means growth is coming from move-outs and deep cleans. Those pay well and end. It is real revenue, but it will not hold your calendar together in a slow month.
- Recurring share near 100% is not automatically the win it looks like. It means no slack for a well-paid one-off, and it means a handful of clients hold your entire income. Concentration is a risk that only shows up when it arrives.
The equivalent number in a different trade is rebooking rate, and if you also work in appointment-based services, the arithmetic and the same benchmark problem are laid out in the salon KPI post.
What does a rising cancellation rate tell you first?
Cancellation rate is cancelled or skipped visits divided by scheduled visits, on a four-week rolling window.
Cancellation rate = (cancelled + skipped visits) ÷ scheduled visits
Include late reschedules that cost you the slot. Exclude the ones you moved yourself, and exclude visits the client moved a week ahead with notice you could fill. What you are measuring is lost hours, not client politeness.
The first thing a rising rate tells you is almost never what owners assume. It is a scheduling and communication signal before it is a quality signal. Check the causes in this order, because they get progressively more expensive to be wrong about:
- Your reminder habit. Did anything change in when or whether you confirm? A confirmation two days out and a confirmation the night before produce different cancellation rates on the same book.
- The slot. Cancellations cluster by day and time far more than by client. Monday mornings and the last slot on Friday behave differently from midweek.
- The segment. New clients cancel more than established ones, everywhere. A cancellation rate that rose in the same month you took on six new clients has probably not told you anything about your existing book.
- A price change. If you raised rates, expect a lagged bump. Read it against the clients whose price actually changed, not against the whole book.
- Quality or fit. Last, not first. If the first four explain nothing, this is where to look.
Log one line of why at the moment of the cancellation. Not a category from a dropdown, just the actual reason in your own words. Twelve of those lines will answer the question that no rate ever will.
Cancellation is not the same as attrition, and mixing them is the most common error here. A client who cancels one visit and keeps the next is a scheduling problem. A client who stops booking is a customer problem. Track the first as a rate and the second as a list of names.
How do you track supply cost per job without a stock system?
You do not attribute supplies per job. That is a stock-control exercise, it takes longer than it saves at this size, and it produces a number nobody acts on. You divide instead.
Supply cost per job = supply spend in a period ÷ jobs completed in the same period
Four weeks, same window as everything else. Every receipt for cleaning product, cloths, bags, gloves, and consumables goes in a single pile or a single photo album on your phone, then into a money log once a week. Say the pile comes to $186 across four weeks in which you completed 46 jobs.
186 ÷ 46 = $4.04 per job
That is the number. It is imprecise on any single job and accurate enough across a month, which is the right trade at this scale.
Two things make it trustworthy. First, the receipts have to be complete, including the ones you paid cash for. The IRS publication on starting a business and keeping records lists what counts as a supporting document (sales slips, paid bills, invoices, receipts, deposit slips, and cancelled checks) and it is a reasonable standard to hold your own pile to even before tax season is the reason. Second, buy in a rhythm. If you bulk-buy every eight weeks, a four-week window will swing wildly. Either lengthen the window to match your buying cycle, or spread a bulk purchase across the weeks it covers.
Then watch the ratio, not the absolute figure. Supply cost per job against your average job value is the reading that matters, and the only benchmark worth using is your own three months ago. A rising per-job supply cost with a flat job mix means either prices moved or product is walking out of the van. A rising per-job cost alongside more deep cleans means nothing at all. The logging habit that makes this cheap is covered in the post on tracking expenses without accounting software.
What's the smallest set worth reviewing weekly?
Five lines, in this order, once a week. It takes about five minutes when the week's entries are already in. Here is each line with what fine looks like, so you are reading against something.
| # | Read this | From | Fine looks like |
|---|---|---|---|
| 1 | Money in last week, next to the four weeks before it | Money log | Inside your normal band, and any drop has a name attached (holiday, illness, a client on pause) |
| 2 | Revenue per booked hour for last week | Money log plus calendar | Flat or up against your own four-week average. A fall of more than about a tenth gets the route looked at |
| 3 | The next seven days of calendar | Appointments | No empty weekday morning inside your service area, and no isolated job stranded on the far side of town |
| 4 | Cancellations in the last four weeks | Appointments | Flat, and every one has a reason line written at the time |
| 5 | Supply receipts since the last check | Receipts pile | All entered, and the per-job figure inside your own recent band |
The rule that makes this work is that lines 1 and 2 are read together and nothing else changes until they are both explained. Revenue up with booked-hour rate down means you bought that revenue with your own unpaid time, and it is the single most common way a small cleaning business gets busier without getting better. If both lines are fine, the other three are maintenance.
Everything in that table comes out of a calendar and a money log, which is why SMBDashboard exists in the shape it does: money, customers, tasks, and appointments on one screen, no account to create, and your data stays in your browser unless you turn on Pro sync. The free tier holds 25 customers, 200 money entries, and unlimited tasks, which is a real book for a solo cleaner rather than a demo. Pro removes the caps and adds CSV export, recurring entries, and your own branding on the printed report, at $48 every six months (about $8 a month) or $149 once. If you want the five lines above on paper, the weekly business report prints them.
If you run a second seasonal service alongside the cleaning, the quote-driven version of this arithmetic is in the landscaping KPI post, and the two lists share more than they differ.
Common questions about cleaning business KPIs
What should a house cleaner charge per hour?
Nobody can answer that for you, and anyone who publishes a single national number is guessing. What you can do is work out your own floor, then price above it against your local market.
Start from the take-home you need per week. Add your weekly costs (supplies, mileage, insurance, phone, software, and anything you set aside for taxes, which is a bookkeeper's question rather than a blog's). Divide the total by the hours you can actually book, which is not 40. At two houses a day, five days, with drive time, most solo cleaners are booking somewhere in the twenties of hours per week. That quotient is your floor per booked hour, and note it is per booked hour, so it already carries the drive time.
For context and nothing more, the BLS Occupational Employment and Wage Statistics May 2025 national estimates for maids and housekeeping cleaners (SOC 37-2012) show hourly wages of $13.29 at the 10th percentile, $17.07 at the median, and $23.35 at the 90th percentile. Those are wages paid to employed cleaners, reported by employers. A self-employed cleaner's rate has to cover supplies, vehicle, insurance, unpaid admin and unpaid drive time that an employer covers separately, so a billing rate and a wage are not comparable figures. Use the local market and your own floor.
How do I calculate profit per cleaning job?
Job revenue, minus supply cost per job, minus the mileage cost of getting there and back, minus the value of your own time at whatever you decided your floor is. That last subtraction is the one people skip, and it is the one that turns a busy month into a disappointing one.
Job profit = price − supply cost per job − (miles × your per-mile rate) − (booked hours × your floor rate)
If that comes out near zero, the job is paying you your floor and nothing else. That is not a failure, but it should be a deliberate choice rather than a discovery.
What percentage of clients should be recurring?
There is no published figure for this with a sample behind it, so the honest answer is that the right level is the one that keeps your calendar full without putting too much of your income in too few houses. Compute your own recurring share monthly and read the direction. A book moving from a quarter recurring to half is a business getting more predictable. A book that is already almost entirely recurring has a concentration problem worth naming rather than a score worth celebrating.
Do I need software to track a cleaning business?
At one or two people, no. All four numbers here come from a calendar and a receipts pile, and a spreadsheet handles them fine. What software buys you is not the arithmetic, it is not having to redo it every week and not losing the reason line you wrote in March. That is a convenience question, not a capability question, and it is worth answering honestly before paying a monthly fee for a platform built for a company with fifteen technicians.
The point at which it changes is your first employee. Once somebody else's hours are being paid for, the utilization and payroll questions become real, and the commercial KPI lists start applying to you.
Book next week's jobs so the calendar carries your drive time, then read the profit line on Monday. Open the dashboard and set the week up now.