Case study · Quality engineered into every step
The metric said growth. The leak was retention.
Growth metrics hid a $150K revenue leak until a gross-retention number told the truth. The fix was a new accountability role, filled by moving an operations manager into the growth seat he'd already earned, without adding headcount. Retention 65%→85%, quality 80%→95%, cash-flow-neutral.
Situation
Three years into running the business, I built a chart for an investment deck, to understand growth over time as much as to show it. Revenue climbing every year. New customers coming in. Existing customers buying more.
Then I added a second line, revenue lost from customers who'd left. It was climbing too, hidden in the shadow of the growth line right next to it. I'd been so focused on selling that I'd never once measured what was walking out the back door.
A single account loss, a corporate decision beyond my control, wiped out roughly $350K a year overnight. That, next to a slower, quieter bleed already running underneath the growth chart, forced a real look. I broke revenue into three buckets: new customers, growth from existing customers, and lost revenue. The first two looked good. The third was over $150K and climbing. The cause was quality.
The real number was Gross Retained Revenue, GRR, how much recurring revenue survives with no new sales counted. A healthy GRR in the janitorial industry runs 85% or higher. Mine was 65%. I'd been growing on top of a leak, and the growth had been hiding it.
One thing to be straight about, because it changes how you should read that number. The $350K account is not in the 65%. It left on a corporate decision made two levels above anyone I could call, and including it would have turned a metric about my own service quality into a metric about somebody else's restructuring. Keeping it out is the defensible call and it's also the flattering one, so you should know I made it.
Task
The leak needed a real fix, not a checklist. A quarterly audit stacked on top of the structure I already had would have looked like progress until the next quarter's numbers proved it wasn't. I needed a sustainable system that fixed the underlying quality issues actually driving the leak, and it had to run without adding headcount, using the team already in the building.
Action
Four steps, run in order, then repeated on a cadence.
1. Measure the problem. I split revenue tracking into two elements: gain, net new revenue beyond the existing base, and loss, revenue gone to reductions or cancellations. I measured both on a cadence tighter than quarterly, so a leading indicator shows up while there's still time to act on it, before the number craters. Underneath that sits the quality data itself. The program scores every check on a 3-point scale: immediate correction needed, adequate but needs improvement, meets or exceeds expectations. Every 1 and 2 requires a photo, and so does a hot spot on a 3, all stored in the customer's record. Every check rolls up into a percentage score. The database retains it, sliced by customer, date, route, and technician, then graphed by rolling quarter and rolling year.
2. Define the framework. I called it cradle-to-grave. One system tracks quality and customer engagement from the first touch to the last, the day a deal is signed through onboarding, through every regular service, to however the relationship eventually ends. A new account gets a scoped install, a scrub-and-sani, and a quality check before the first regular service ever runs. Established accounts get checked at least twice a quarter. And cancellation gets its own defined response: a same-cycle check-in, a quality check if one's still possible, and an attempt to save the account before it's gone, with every cancellation logged in the same quality data to surface patterns over time.
3. Determine program execution. Who ran the program determined whether it was real, and that decision broke into two separate judgment calls.
First, did this even need a dedicated role? Yes, but the constraint was real. I didn't have the cash flow to add a hire focused on nothing else, so the actual question became how to do it cash-flow-neutral.
That pointed straight at my operations manager. He had started underperforming. The business had grown past what that seat asked of him and his skills hadn't had a reason to grow with it, which is an explanation rather than an excuse. Stepping back, I looked at what the business actually needed next, and at what he could become in it: someone who could measure quality, build customer relationships, and eventually upsell. He hadn't proven he could sell, which was part of that function. But he understood operations well enough to measure quality, and he had the real people skills to build the relationships. A partial fit, with a real growth path if he grew into the rest of it.
The second judgment call was what to do about him. Fire him and hire twice, once for his old role and once for the new one, or move him into it. I moved him.
He was worried about the sales half and said so. He'd never sold anything and he knew it. What he came back with was that he was grateful someone had been thinking about where he could grow.
Finding a seat for the work already in the building is what funded the role. I split his old operations duties between my wife, who was our COO and took the scheduling and the higher-level functions, and my senior technician, who took field support and training. No backfill anywhere. The workload backed up the title. He ran 20 quality checks a week, more than any other role in the company, ops at 15 and sales at 10. But the checks themselves were only half the job. Sales, ops, and the technicians ran their own share of them too. He was the one accountable for the program actually working, chasing corrective action with a technician whenever a check failed. Every cancellation notice got a same-day response from him. He thrived in it. His role became the most important, most impactful role in the company.
4. Measure impact and adjust. We subscribed to a phone-based quality-audit app, so a check happened at the customer site, in the moment. Every check rolled up to pass, fail, or needs improvement; anything that failed generated a ticket, and we tracked it until we resolved it. A dashboard combined retention, revenue, and quality scores in one view, sliced per customer and per technician, so I could see what a change actually cost or saved, and where. We looked at the data three ways: by technician, by customer, and system-wide, so a problem that read as noise at the system level could still show up clearly against one tech or one account.
The first thing that mechanism caught wasn't a quality problem.
Two customers on the same route reported they hadn't been serviced. I pulled the data and her check-ins were all there. Every stop, clean timestamps. All of them logged from her apartment. When I put the specific records in front of her the first answer was thin, and then the real one came out. Her kids were home for the holiday, she couldn't get to the route in time, she was embarrassed, and she entered the check-ins from home because I had told her that data was important.
I had built a number that mattered and she optimized the number instead of the work. That's what people do when a number matters and the day has already gone wrong. Cleaning it up cost me a week. Every customer on that route called, three months of her records re-read, and a delivery run I drove myself.
She acknowledged it once the records were in front of her, and she understood what it had cost the customers on that route. Her work was good otherwise, so I kept her and used it to teach. The system caught her before a customer did, which is the only reason there was anything left to teach.
Architecture deep-dive optional, for the technically curious
The program, staged: quality touches every step, not just an audit
Routes, pricing, and notes reviewed; install scheduled inside a week.
On-site walk for complex installs, dispenser placement validated, scrub/sani performed, before-and-after photos saved to the account, sales QC and customer check-in before the first regular service runs.
Ops relays the new account to a tech a week out, scope confirmed, a QC performed after every regular service, not just the first one.
Every check scored, photographed per the rules below, logged.
Same-day check-in, a QC if one's still possible, an attempt to save the account, logged either way to find the pattern later.
Nothing here is a periodic audit bolted onto the business. Every stage of the actual customer lifecycle, closing the deal, installing the service, running the route, staying established, or leaving, has a defined quality touchpoint built into it.
The QC math
- needs immediate correction, at the customer location
- adequate, needs improvement
- meets or exceeds expectations
Photos aren't optional evidence. Every 1 and every 2 gets one, and so does any hot spot on a 3, all stored against the customer record.
Who actually runs it
- Sales 10
- Ops 15
- CSM 20 more than any other role in the company
Accountability made the Customer Success Manager role real. The CSM owned whether the program actually worked, chasing corrective action with a technician whenever a check failed. Sales, ops, and the technicians ran checks of their own too, so the volume above isn't a solo number.
Result
- GRR climbed from 65% to 85%, the industry-healthy threshold, without adding headcount or cutting price to buy loyalty back.
- Technician quality checks reached 95%, up from 80% when the program started.
- A canceled account came back, won using the program's own results. A six-location restaurant chain worth roughly $100K a year. The story is below.
- Done cash-flow-neutral. No new hire anywhere. His old operations role got absorbed across the existing team, and the CSM role got funded by finding the right seat already in the building.
Learning
The first thing I learned is that growth and retention are different questions, and a business can look like it's winning while it's bleeding out the back door if growth is the only number on the chart. GRR wasn't a flattering number, and that's exactly why it mattered. It would have told me the truth sooner, if I'd been tracking it from the start.
The second thing I learned is that a person struggling in a role isn't automatically a hiring problem. He was in the wrong seat for where the business had grown, and moving him into the new one solved it without a firing decision. Finding him the right seat took the same discipline as building the quality program itself, looking past what the org chart assumed to what was actually true.
The third thing I learned is that quality has to be built into the system itself, checked at every step instead of inspected after the fact. A periodic audit treats quality as a checkpoint, something checked only after the work is done, and that kind of afterthought is the first thing that gets skipped when the week gets slammed. Cradle-to-grave treats quality as a property of every step, from the day an account is signed to however the relationship ends, so skipping it was never an option. The check is already part of doing the job.
The one that came back
The loss that stung most wasn't the biggest one. A six-location restaurant chain, multiple services, roughly $100,000 a year.
One of my technicians was skipping steps. He'd check in, do the surface work, and leave the deep clean undone, which was the entire thing we sold. Bathrooms that should have been stripped were getting wiped. You could smell it walking in. It went on for months before I knew, because I had nothing in place that would have told me.
When I put the examples in front of him he acknowledged it and then explained it. Every instance had a reason. He never got to the part where it was his to fix, and nothing changed after that conversation, so I let him go.
We weren't ignoring them. That's the part that took me longest to understand. Emails came in about service issues and we reacted to every one, sent somebody out, fixed that location, closed the loop. Then it happened again. We were fixing instances of a problem while the thing producing them sat untouched, and from their side the only visible pattern was that it kept happening.
The cancellation was a phone call. "We will be canceling service effective at the end of next week. Service quality has not improved."
He was right. I'd trusted my operations manager to be watching, and he didn't have a system to watch with, because I'd never built him one. The technician was the immediate cause. The gap was mine.
That's the same operations manager I moved into the growth seat. I promoted the man who missed it. What he missed was a system I never built him, and nobody in the building had better reason than he did to make the new one work.
It took me a year to go back. A year of fixing the process, replacing people, and building the program above, because I had nothing to say until it was true. Then I sent an email with no pitch in it.
We had issues. We dropped the ball. Here's what we changed.
A month went by. Then one line came back.
Let's have a meeting.
We sat down face to face and I walked him through all of it: the new training, the checks at every stage, the scores the program was actually producing. He listened. Then he said two words.
Come on back.
That is the best outcome in this entire piece and it is not the part I think about. What I think about is how close I came to losing him for good, and how many others never gave me the second meeting, because they had no reason to and I hadn't earned one. The program is what made the email worth sending. It came a year too late for most of them.
All selected work