The cancellation email is never really about the night it arrived. It shows up eleven months into a contract, about three weeks after the facility manager who hired you took a job across town, and on a 42,000 sq ft account billing $4,200 a month it removes $50,400 of annual revenue from your books in one paragraph.
The frustrating part is that the account was salvageable for most of those eleven months. Nobody was watching the right signals, so nobody acted.
Improving cleaning client retention is a sequence, not a mood: measure churn account by account, code why past clients left, put every new account through a structured first 30 days, score all active accounts monthly on quality and relationship signals, and run a documented save plan on anything that slips.
What follows is that sequence, stage by stage, with the input each stage needs and the output it has to produce before you move to the next one.
Step 1: How do you calculate a cleaning client retention rate?
You cannot manage churn you have never counted. Most operators know they "lost a few accounts last year" and have no idea whether that is a good year or a bad one.
Input: a list of every active account on January 1 of last year, the monthly recurring value of each, and every start and stop date since.
Pull three numbers, not one. Logo retention tells you how many relationships you kept. Gross revenue retention tells you what the losses cost. Net revenue retention tells you whether add-on work is covering the leak.
| Metric | Formula | What it tells you |
|---|---|---|
| Logo retention rate | (Accounts at end of period minus new accounts won) / Accounts at start x 100 | How many client relationships survived |
| Gross revenue retention | (Starting MRR minus lost and reduced MRR) / Starting MRR x 100 | The dollar size of the leak, ignoring growth |
| Net revenue retention | (Starting MRR minus lost and reduced MRR plus added MRR from existing clients) / Starting MRR x 100 | Whether upsells to current clients offset losses |
| Approximate average tenure | 1 / annual churn rate | Roughly how many years an account lasts at your current churn |
Worked example, all figures illustrative. You start the year with 24 accounts and $86,000 in monthly recurring revenue. You win 5 accounts and finish with 26.
Retained accounts are 26 minus 5, so 21. Logo retention is 21 / 24, or 87.5%. Annual churn is 12.5%, which puts approximate average tenure at 1 / 0.125, about 8 years.
Now the money. You lost $9,500 of monthly recurring revenue and added $4,300 in expanded scope at existing sites. Gross revenue retention is ($86,000 minus $9,500) / $86,000, or 89.0%. Net revenue retention is 93.9%.
That gap between 87.5% logo and 89.0% gross tells you something useful: the accounts you lost were slightly smaller than average. If gross retention comes in well below logo retention, you are losing your best buildings, which is a very different problem.
Output: three percentages and a named list of every account lost in the last 12 months with its monthly value.
Move on when: you can say out loud what your gross revenue retention was last year and name every account on the loss list.
Step 2: Why did your last five clients actually leave?
"They went cheaper" is the reason operators write down. It is correct maybe a third of the time, and it is the only reason that lets everybody off the hook.
Input: the loss list from Step 1, and 30 minutes of your own time per account. Not a survey. A phone call from the owner.
Call the former decision maker. Say you are not trying to win the work back, you are trying to understand what happened, and ask three questions: when did you first start thinking about making a change, what specifically triggered it, and what would we have had to do differently in that month.
Code every answer into one of these buckets, because the fix is different for each:
- Quality drift: the work degraded slowly and nobody caught it before the client did.
- Unresolved complaint: a specific issue got reported more than once and was never closed out in writing.
- Contact turnover: your champion left the building and you never rebuilt the relationship.
- Price versus perceived value: your number was defensible but the client had no evidence of what they were buying.
- Scope mismatch: they expected work that was never in the contract, or you sold a scope your hours could not deliver.
- Ownership or portfolio change: building sold, management company changed, national contract absorbed the site.
Only the last bucket is genuinely outside your control. If contact turnover and unresolved complaints together account for more than half your losses, stop redesigning your pricing and go fix your communication cadence.
Output: a reason code next to every lost account, and the one bucket that accounts for the most lost dollars.
Move on when: you have called at least five former clients, or every loss from the last year if you had fewer than five.
Step 3: Put "clean" in writing so the scope is checkable
Retention arguments are almost never about whether the floor is clean. They are about whether the floor is as clean as the client assumed it would be, and assumptions are unfalsifiable.
Input: the signed contract, the walkthrough notes, and a current floor plan or space list for each account.
Build a site scope sheet per building that names, for each space type, the tasks, the frequency, and the standard. APPA's custodial staffing guidelines define five cleanliness levels, from Level 1 orderly spotlessness down to Level 5 unkempt neglect. Naming the level you are contracted to deliver in a lobby versus a back-of-house corridor turns a taste argument into a specification.
Then sanity check the hours. ISSA publishes task-level cleaning times that give production rates for common tasks. If the scope you sold requires more minutes than the shift you staffed, quality drift is not a supervision problem, it is arithmetic, and it will surface as churn in month seven.
Output: a one-page or two-page scope sheet per site, with frequencies and a named standard per space type, shared with the client.
Move on when: your inspection checklist for each site maps line by line to that scope sheet.
Step 4: What has to happen in the first 30 days of a new account
A common operational pattern in janitorial: the accounts that cancel inside a year usually got into trouble in the first six weeks, when the crew was still learning the building and the client was still deciding whether they made a good decision.
Input: the signed contract, the scope sheet from Step 3, the site-specific crew assignment, and the client's contact list.
New account first 30 days
- Day 0: joint walkthrough with the client, the account supervisor, and the lead cleaner who will actually work the site. Photograph pre-existing damage and problem areas.
- Day 0: collect three contacts, not one: the decision maker, the day-to-day contact, and whoever signs the invoice.
- Day 1 to 5: supervisor on site every night the crew works. No exceptions, even on a two-person account.
- Day 7: first formal inspection with photo evidence, sent to the client whether they asked for it or not.
- Day 14: fifteen-minute check-in call. Ask specifically what is bothering them, not whether they are happy.
- Day 21: second inspection, plus confirmation that supply levels and dispenser fits are right.
- Day 30: sit-down review. Walk the scope sheet, close out every open item in writing, and confirm the periodic schedule.
Every complaint raised in these 30 days gets a written close-out: what happened, what you changed, who verified it. That paper trail is what you hand a new facility manager two years later when they ask why they should keep you.
Output: two completed inspections, three named client contacts, and a written record of every issue raised and resolved.
Move on when: the day 30 review has happened and the client has seen an inspection report with photos.
Step 5: How often should you talk to a janitorial client, and to whom?
The single most preventable cause of churn is contact turnover. Your champion leaves, the replacement inherits a vendor they did not choose, and you find out when the RFP hits your inbox.
Input: the three named contacts per site from Step 4.
Set a cadence and hold it. A workable default for a mid-size recurring account:
| Touchpoint | Frequency | Who from your side | What it produces |
|---|---|---|---|
| Inspection report with photos | Monthly, weekly for the first month | Account supervisor | Scored report in the client's hands |
| Walkthrough with the client | Quarterly | Supervisor plus owner or ops manager | Punch list with dates |
| Business review | Annually, 90 days before renewal | Owner or account manager | Year of scores, periodics completed, next year's plan |
| Contact refresh | Any time a name changes | Owner | Re-walk within 14 days of the new contact starting |
The 14-day rule matters more than the rest of the table. When a new facility manager arrives, walk the building with them inside two weeks, hand them the scope sheet, and ask what their predecessor never fixed. You become the vendor who helped them look competent in their first month.
Output: a calendar with named dates per account, not a general intention.
Move on when: every account has a next scheduled client touchpoint on a real date.
Step 6: Score every account monthly and produce an at-risk list
This is the stage that changes outcomes, because it converts a vague feeling into a list you have to do something about.
Input: last three inspection scores per site, complaint log, invoice aging, crew schedule fill data, and your notes on contact changes.
Score each account on six signals, 0 to 2 points each, 12 points possible. The weights below are an illustrative model, so adjust them to what your Step 2 reason codes told you.
| Signal | 2 points | 1 point | 0 points |
|---|---|---|---|
| Inspection score trend | Flat or rising, above your threshold | Above threshold but falling | Below threshold, or no inspection in 60 days |
| Complaints, last 60 days | None | One, closed in writing | Two or more, or any unresolved |
| Contact depth | Three contacts, all reachable | Two contacts | One contact, or the contact just changed |
| Crew stability at the site | Same crew 90 days | One replacement | Two or more replacements, or frequent fill-ins |
| Payment behavior | Pays within terms | Occasionally 15 days late | Chronically past due or disputing invoices |
| Relationship events | None | Building sold, budget review mentioned | RFP mentioned, or a request for a bid comparison |
Nine to 12 is healthy. Six to 8 goes on the watch list. Five or below is at risk and triggers Step 7 this month, not next quarter.
Output: a one-page list, updated monthly, of every account scoring 8 or below, sorted by monthly revenue.
Move on when: the list exists and has an owner's name next to each account.
Step 7: Run a 30-day save play before the account goes out to bid
Input: one at-risk account, its inspection history, its complaint log, and the reason you believe it is slipping.
- Days 1 to 3: the owner or ops manager walks the building unannounced, off hours, and scores it honestly. Do not send the supervisor whose site it is.
- Days 3 to 5: call the decision maker and ask for 20 minutes. Open with what you found, not with a defense.
- Days 5 to 7: write a correction plan with three items maximum, each with a date and a name. Three real fixes beat a twelve-point apology.
- Days 7 to 14: execute the fixes. If the root cause is a burned-out crew or an understaffed shift, change the staffing. A pep talk does not add minutes.
- Day 14: inspection with photos of the corrected areas, emailed to all three contacts.
- Day 30: walk the building with the client, close the plan out in writing, and rescore the account.
If the score has not moved by day 30, the problem is structural: the price cannot fund the labor the scope requires, or the site needs a different crew. Decide which, and act on it before the client does.
Output: a closed-out correction plan and a rescored account.
Move on when: every at-risk account from the current month has either recovered or been escalated to a pricing or staffing decision.
Step 8: How to raise prices without losing the account
Wages move, and the increase has to be passed through eventually. Operators who lose accounts over price increases almost always deliver them the same way: an email, 30 days out, with a percentage and no context.
Input: the account's inspection scores for the past 12 months, the periodics you completed, your current labor cost per hour at that site, and the renewal date.
Run it 60 to 90 days before the anniversary, in person, in this order: show the year of scores and the periodics delivered, state the specific cost driver, present the new number, then offer options. Options might include a frequency change, moving day porter hours, or shifting a periodic to a different quarter.
Check your local wage reality before you set the number. The BLS Occupational Outlook Handbook publishes wage data for janitors and building cleaners by area, which is a defensible reference point when a client asks why labor cost moved.
Output: a signed renewal or a documented decision to let the account go at a price that does not cover loaded labor.
Move on when: you loop back to Step 1 and recalculate retention with the new year's data.
Questions cleaning operators ask about client retention
What is a good client retention rate for a commercial cleaning company?
There is no reliable published benchmark for janitorial contracts, so treat your own trend as the benchmark. Calculate gross revenue retention for three consecutive years and watch the direction. If you are losing more than one in five accounts annually, the problem is usually first-year onboarding, not pricing, because mature accounts rarely leave without a trigger event.
How long should a commercial cleaning contract term be?
A 12-month initial term with automatic annual renewal and a 30-day or 60-day cancellation clause is common in commercial janitorial. Longer terms look safer but rarely hold an unhappy client, because the cancellation clause is what actually governs. Spend your negotiating effort on the notice period and the annual price adjustment language instead of on term length.
What should I do when my main contact at the building leaves?
Treat it as a new account. Request a walkthrough with the new contact inside 14 days, bring the scope sheet and the last three inspection reports, and ask what they inherited that needs fixing. New facility managers are evaluating every vendor in their first 90 days. Being the one who showed up first is worth more than a discount.
Should I fire a client who is never satisfied?
Do the math before you decide. Add up the supervisor hours, callbacks and re-cleans the account consumes in a month, price them at your loaded labor rate, and subtract that from the account's gross margin. If the account is at or below break-even after that, either reprice it to fund the service level it demands or give notice and redeploy the crew.
How often should I inspect a janitorial account?
Weekly for the first month, then monthly for most recurring accounts, and more often for any site on your at-risk list. What matters more than frequency is that each inspection is scored against the same checklist and includes photos, so you can show a trend line rather than an opinion when a client questions quality.
Where CleanTrack360 fits in this sequence
Most of the work above fails for a boring reason: the evidence lives in text messages, a supervisor's memory and a notebook in a truck. CleanTrack360 keeps it in one place. Quality inspections use custom checklists with photo evidence and automatic scoring, which gives you the score trend that Step 6 depends on. Geofenced GPS clock-in and clock-out, running in the phone browser with a default 150 m radius that you can configure per location, tells you whether the site was actually staffed on the nights a client says the work slipped. Reports export to CSV, so you can build your retention math without retyping anything.
On the client side, the browser-based dashboard shows schedules, inspection reports and service requests, which turns your quarterly review into a shared record instead of a debate. Drag-and-drop scheduling with recurring shifts covers the crew stability signal, and the quoting calculator prices work on square footage, frequency, labor and supplies when a renewal conversation turns into a repricing. Plans start at $99 a month for Starter with up to 5 team members, $199 for Pro with up to 20, and $249 for Business with up to 50, with a 14-day free trial and no credit card required.