A cleaning business runs on five numbers, reviewed monthly: revenue per visit, labor hours per visit by job type, margin per job type, the billable share of the working week, and the share of new clients still active after 90 days. Together they show whether prices are right, which jobs make money, whether the schedule is tight or loose, and whether onboarding keeps clients. All five come from records you already keep.
This explainer defines each number, shows where it comes from, and says what to do when it moves. It draws on the pricing method, the crew scheduling guide, and the onboarding guide. It is business practice, not accounting or tax advice.
1. Revenue per visit
What it is. Total revenue from visits in the month divided by the number of visits, and the same figure by job type: recurring standard, first clean, deep clean, move-out.
Where it comes from. The payment records in your scheduling tool or payment processor, which the invoicing guide sets up.
What it tells you. Whether add-ons are being sold, whether first cleans are being priced as deep cleans, and whether the mix of jobs is drifting toward low-value visits. If revenue per recurring visit is falling, discounts are creeping in or add-ons have stopped; if first cleans are priced the same as recurring visits, the deep cleaning guide’s three-price rule is not being applied.
2. Labor hours per visit, by job type
What it is. Average labor hours (cleaner time on site, summed across the team) per visit, by job type and by home size.
Where it comes from. Clock in and out in the field app, which the time tracking comparison covers by tool, or the visit log in a solo cleaner’s notes file.
What it tells you. Whether the flat-rate grid is still right. The grid was built from these hours; if a 3-bed, 2-bath standard clean now takes 3.5 hours instead of 3, the price is wrong or the checklist has grown. It also flags the homes that consistently run long, which need repricing on their own, as the price increase guide describes.
3. Margin per job type
What it is. Price less labor cost less direct costs, per job type, as an amount and a percentage.
How to calculate it. Labor cost is labor hours multiplied by your fully loaded hourly labor cost: wages plus the employer costs that come with them for a crew, or your own target pay per hour if you are solo. Direct costs are supplies used and the card fee on the payment.
Worked example (illustrative). Suppose a recurring 3-bed, 2-bath standard clean is $150, takes 3 labor hours, loaded labor cost is $28 an hour, supplies are $6, and the card fee is $4.65. Margin is $150 less $84 less $6 less $4.65, about $55, or about 37%. Suppose a first clean of the same home is priced at $275 and takes 5.5 hours: $275 less $154 less $10 less $8.28, about $103, or about 37%. If that first clean had been sold at the recurring price of $150, the margin would be about negative $22. The figures show the arithmetic only; yours come from your own costs.
Where it comes from. For crews on Jobber Grow or Housecall Pro Basic and above, job costing reports do this per job; BookingKoala Growing and Maidily Grow have advanced reports for the revenue side. For everyone else, a spreadsheet with one row per visit and the four inputs takes ten minutes a week.
What it tells you. Which job types make money and which lose it. Move-out cleans and first cleans are where margins swing most, because they are the jobs priced from estimates.
4. Billable share of the week
What it is. Hours inside customers’ homes divided by total hours worked, per cleaner and for the business.
Where it comes from. Clock in and out for on-site hours, and the schedule or timesheet for total hours.
What it tells you. Whether the schedule is tight or loose. Driving, gaps between jobs, supply runs, and admin all reduce it. A falling billable share with a full calendar means routes are spread out or buffers are too generous; the crew scheduling guide covers neighborhood grouping and buffers. A rising share past the point where cleaners are rushed shows up next as complaints, which the complaints log will catch.
Measure your own rather than comparing with a figure from somewhere else; the trend is what matters.
5. 90-day retention of new clients
What it is. Of the new clients who had a first clean three months ago, the share still on the schedule today.
Where it comes from. The client records, with first-visit dates and status.
What it tells you. Whether onboarding works and whether the first clean sets the right expectation. A low number points at the intake call, the first-clean pricing and scope, or the same-evening follow-up in the onboarding guide. Tracked by source, as the source tracking guide describes, it also shows which marketing channel brings clients who stay.
The monthly review
One hour, the same day each month, five lines on a page:
| Number | This month | Last month | Action if it moved |
|---|---|---|---|
| Revenue per visit, by job type | Check add-ons and first-clean pricing | ||
| Labor hours per visit, by job type | Reprice the grid or specific homes; check the checklist | ||
| Margin per job type | Fix the job type that lost money | ||
| Billable share of the week | Tighten routes and buffers, or loosen a rushed schedule | ||
| 90-day retention | Fix onboarding; check the source |
Act on one thing a month. A business that fixes one number a month is in a different place after a year.
Where the numbers live, by tool
As of September 10, 2026: Jobber includes expense tracking on Connect and job costing on Grow, plus financial, client, and work reporting on all plans. Housecall Pro includes job costing on Basic and above. BookingKoala Growing includes advanced reports on revenue, bookings, and ratings. Maidily Grow includes advanced reports and time tracking. ZenMaid Pro includes reports and payroll reports. Zenbooker records conversion sources per booking. For every tool, time records and payment records are the inputs, and a spreadsheet with one row per visit fills any gap.
By business size
Solo cleaners should track hours per visit and revenue per visit in the notes file from the first client, because those two numbers are the price grid, and 90-day retention because it is the marketing decision. Margin for a solo cleaner is the hourly target from the pricing guide: if visits are hitting it, the business works.
Crews of 2 to 5 need all five, with clock in and out in the app and a spreadsheet or the tool’s job costing. Margin per job type is the number that changes decisions at this size, because wages make an under-priced job type a monthly loss rather than a slow afternoon.
Growing companies should add margin per cleaner and per route, review monthly with the office person, and feed the numbers into the annual price increase and the decision about where the next crew goes.
Key takeaways
- Five numbers, monthly: revenue per visit, labor hours per visit, margin per job type, billable share of the week, and 90-day retention.
- Hours per visit are the price grid; margin per job type shows where money is made and lost; billable share shows whether the schedule is tight or loose; retention shows whether onboarding works.
- Clock in and out and a card on file produce the inputs; job costing in Jobber Grow or Housecall Pro does the math for crews, and a spreadsheet does it for everyone else.
- Review for one hour on the same day each month and act on one number.
- Measure your own trends rather than borrowing benchmarks.
Frequently asked questions
What numbers should a cleaning business track?
Five, monthly: revenue per visit, labor hours per visit by job type, margin per job type (price less labor at your loaded hourly cost), the billable share of the working week, and the share of new clients still active after 90 days. Those five tell you whether prices are right, which jobs make money, whether the schedule is tight or loose, and whether onboarding works.
How do I calculate margin on a cleaning job?
Price of the visit less the labor hours it took multiplied by what an hour of labor costs you fully loaded (wages plus the employer costs that come with them, or your own target pay if solo), less any direct costs such as supplies or a card fee. Divide by the price for a percentage. Do it per job type, because a first clean, a recurring standard clean, and a move-out have different margins.
What is a good billable percentage for a cleaner?
There is no universal figure and this article does not invent one. Measure your own: hours inside customers' homes divided by hours worked. Track it monthly and watch the trend. Driving, gaps, admin, and supply runs are the usual reasons it falls, and the crew scheduling rules on routes and buffers are how it rises.
Which cleaning software does job costing?
As of September 10, 2026, Jobber includes job costing on its Grow plan and expense tracking on Connect; Housecall Pro includes job costing on all plans including Basic; BookingKoala includes advanced reports on Growing; Maidily includes advanced reports on Grow. Time records from any tool with clock in and out are the raw material, and a spreadsheet does the rest for a small crew.
How often should I review these numbers?
Monthly, on the same day, in under an hour. Weekly is too noisy for a small business and quarterly is too late to fix a bad price or a tight route. Put the review on the calendar next to the weekly scheduling session, and act on one thing each month.
Sources checked
Public vendor pages and documentation consulted for this article. We do not test software hands-on; see how we compare software.
- Jobber pricing page (accessed September 10, 2026)
- Housecall Pro pricing page (accessed September 10, 2026)
- BookingKoala pricing page (accessed September 10, 2026)