Notes/Jun 2026
Jun 2026·9 min·Colby

A commercial cleaning company runs thirty buildings a night with crews that start at 6 p.m. and finish past midnight. The schedule lives in a supervisor's head and a group text. When a cleaner does not show, the first signal is usually the client emailing at 8 a.m. asking why the lobby still has yesterday's coffee cups.

How the night actually runs

A supervisor assigns crews to buildings the way a dispatcher works a board, except the board is a group text and three years of knowing who is reliable. Each cleaner gets a site or a short route, a start time, and the access details: a lockbox code, an alarm sequence, which door actually opens after 9 p.m. Clock-in, where it exists, is a punch app, a text that says “on site,” or nothing at all.

Most of this holds most nights on the supervisor's memory. The cracks show on the nights the supervisor is off, the week a steady cleaner quits with no notice, or the Monday a new building gets added and the route math changes for everyone downstream.

Where coverage breaks

A cleaner does not show. There is no rule for what happens next, so the supervisor finds out when they happen to check the thread, or when they do not. With no record of who was scheduled where, a skipped site stays invisible until the client emails the next morning about the lobby nobody touched.

Filling the gap is its own scramble. The supervisor runs a mental list of who is off tonight and who is already near that part of town, then whether any of them is cleared for that building. By the time someone covers it, the shift is half gone, and reconstructing what happened for payroll or for the client takes a morning of phone calls.

The proof gap

Commercial contracts increasingly want proof the work happened, not just an invoice. The cleaner signed a paper checklist taped inside a supply closet, or texted a photo that lives on one phone, or did neither. When a client disputes whether the third-floor restrooms were serviced on the 12th, there is no timestamped record to answer with, so the company eats the credit to keep the account.

This is the same gap that costs renewals. A facilities manager deciding whether to keep a vendor wants a clean record of attendance and completion. A shoebox of texts is not that.

What an operations layer changes

An operations build for night cleaning starts with the schedule as data: every site, shift, assigned cleaner, and access detail in one place instead of a supervisor's head. Clock-in is tied to the site, by a code or location, so a shift that does not start throws an alert at 6:15 instead of an email from the client at 8. Proof of service, a timestamp and a photo against the site's checklist, is captured by the cleaner on the way out and attached to that account.

The supervisor works a board that shows the night filling in, spots the one site that has not started, and covers it from a ranked backup list before the client knows there was a question. The owner gets a record that answers disputes and holds renewals. We have built this dispatch-and-proof shape for a facilities operator running fifteen properties, and the moving parts are the same for a cleaning company running thirty.

Before you build it

This pays off only when the routes are real. A company with recurring sites, regular crews, and a supervisor who can name the schedule has something to systematize. A company whose work is one-off deep cleans booked ad hoc does not yet, and software there would just add overhead to chaos.

Map one week first. List every site and shift, who is assigned, how a no-show surfaces today, and how long it takes to fill. That afternoon tells you whether the real gap is scheduling, coverage, or proof, and which one to build against. Often it is proof that costs the most, because it is the one the client sees.

More notes
Jun 2026·9 min
How facilities management companies win new maintenance contracts
A facilities company keeps fifteen buildings running and still cannot reliably add the sixteenth, because the people who deliver the service are not the ones chasing the next portfolio. Here is where facilities business development leaks.
Read →
Jun 2026·8 min
Field service quoting: the estimate that leaves days after the tech does
A tech diagnoses the repair on-site, then the quote waits days while someone prices it, and the urgent customer calls the next company. Here is where field service quoting leaks.
Read →
Jun 2026·8 min
The staffing agency that grew on referrals and then stopped growing
An agency fills every req its clients send and still cannot add a new logo, because the people who could sell are buried in the people they place. Here is where staffing business development leaks.
Read →
Jun 2026·8 min
Why commercial cleaning accounts churn in month four
An account that paid on time and never escalated cancels in one email. The misses were small and nobody tracked them, so the first warning was the last one. Here is where janitorial retention leaks.
Read →
Jun 2026·9 min
The staffing margin: set once in the bid, eroded all year
An agency wins a placement on a bill rate set by gut, then watches the spread shrink through overtime, missed rate increases, and hours that never get billed. Here is where staffing margin leaks.
Read →
Jun 2026·9 min
Proving the clean: commercial cleaning QA before the client complains
Clients judge a cleaning vendor on the one thing they notice, not the forty things that went right. Here is where quality control breaks down and what a system catches before the client does.
Read →
Jun 2026·9 min
The commercial cleaning pipeline: where new accounts leak before the bid
Most janitorial owners prospect in the gaps between running the business, so the pipeline leaks at follow-up. Here is where the accounts go and what holds them.
Read →
Jun 2026·8 min
Why commercial landscaping companies lose track of job costs, and what it takes to see margin per contract
Crew hours sit in the timesheet app. Material costs sit in the bookkeeping ledger. Equipment hours sit on a log in the truck. None of them connect to the contract number, so the margin story is always three months old.
Read →
Jun 2026·8 min
How staffing agencies close payroll when the client timesheet and the worker's record disagree
The worker's hours sit in one place. The client's signed timesheet sits in another. Until both agree, neither payroll nor the invoice can close.
Read →
Jun 2026·9 min
How to audit a commercial cleaning operation for workflow gaps
The quoting log, the payroll close, and the prospect pipeline each signal a different kind of operational drag. Here is what to look for in each.
Read →
Jun 2026·8 min
How janitorial operators price contracts (and where the number goes wrong)
The math closes in an afternoon. The inputs are the hard part. Here is where underbidding starts and how to make the pricing logic repeatable.
Read →
Jun 2026·8 min
Why the RFP response is already late before anyone starts writing
BD found the opportunity. The deadline is in ten days. Most of that window goes to locating the right answers and confirming they are still current, before a word gets written.
Read →
Jun 2026·8 min
Where field service hours disappear before payroll runs
Workers clocked in. The shift happened. By Friday the coordinator is cross-referencing three sources and calling supervisors because the numbers do not add up.
Read →
Jun 2026·9 min
The commercial cleaning bid: why it still takes three days
The walkthrough takes 45 minutes. Getting a number to the prospect takes three days. Here is where the time goes.
Read →
May 2026·11 min
How to audit a services business for automation
A practical way to find the workflow bottlenecks worth fixing before anyone starts building with AI.
Read →
Mar 2026·8 min
Why we ship two projects, not five
How we score 30 ideas down to the two that move revenue this quarter.
Read →
Feb 2026·12 min
What we hand off when we leave
A runbook your team uses without us. Here is what it covers and how we test it before we go.
Read →
Jan 2026·15 min
Six engagements, one pattern
Where $1M to $50M services businesses lose revenue, and the fix that held.
Read →