Notes/Jun 2026
Jun 2026·8 min·Colby

Most janitorial operators can win profitable work on building types they have bid before. The trouble starts with the building type they have not bid, or with the rep who prices off the same assumptions the owner would use. The owner has twenty years of calibration. The rep has twelve months.

The inputs that actually drive price

A janitorial contract's cost structure is no mystery. Labor dominates, usually 55 to 65 percent of contract cost. After that comes supplies at five to eight percent, plus equipment depreciation, insurance, overhead, and margin. The whole thing closes in a spreadsheet in an afternoon. Arithmetic is never where the bid breaks.

Getting the inputs right for one specific building is the hard part. An operator who has bid Class B offices for years carries an accurate gut feel for those numbers, and the same goes for a light industrial facility or a school. That feel collapses when the building type changes, or when the estimator knows less than the owner does. Picture a new rep pricing a medical clinic at office rates. Or an owner who drops warehouse production assumptions onto a high-density retail strip. The bid goes wrong before anyone opens the spreadsheet.

An explicit cost model will not remove the judgment. It pulls the judgment to the surface, where someone other than the original estimator can check it, calibrate it, and use it on the next bid.

Production rates: where underbidding starts

Production rates are square feet cleaned per labor hour per service type. They are the most variable input and the one operators are least likely to write down. The reference ranges run wide. General office with low-density restrooms falls between 2,000 and 3,500 square feet per hour, depending on furniture density and service detail. High-touch environments like medical run 1,000 to 1,500. Restroom service clocks at 15 to 25 fixtures per hour.

The common error is one building-wide production rate stretched across a mixed-use scope. Take a 50,000 square foot office with 30 restrooms, a gym, a commercial kitchen, and a server room. That is a different labor problem than 50,000 square feet of open-plan workspace with a small break room and two restrooms. A price per square foot that holds on the second building bleeds money on the first.

When an operator cannot say where their production rates came from, whether measured against actual labor hours on current contracts or inherited from a prior owner's model, that is usually the opening for a repricing conversation. What was the labor overage on the last contract that went negative? Which building type was it, and how far off was the assumed rate from the hours the crew actually logged?

What the scope form misses

Square footage is a surface area, not a scope. Two 20,000 square foot buildings at the same service frequency can demand very different labor hours once you account for restroom count, fixture density, entry door and glass count, kitchen configuration, and how the crew gets in.

A paper walkthrough form that records square footage, service type, and frequency spits out a number. It spits out the same number for a 20,000 square foot distribution warehouse with two restrooms and a 20,000 square foot financial services office with eight restrooms, a lobby wrapped in floor-to-ceiling glass, a full commercial kitchen, and after-hours access that needs a badge-in before the cleaning window even opens.

Fixture counts, detail areas, access constraints, special-handling zones: these are the items that separate a bid that holds margin from one that looks cheap because it left out the hard parts. A new rep is also the least likely person to capture them on a first walkthrough, not without a form field that asks the question outright.

When the math is right but the number still does not go out

Even with accurate production rates and a full scope, plenty of janitorial operations hit one pricing bottleneck: the owner approval step. Any job above a set scope or dollar threshold goes back to the owner before the quote ships. The check is legitimate. For most small to mid-size operators, the owner's review is the only margin control mechanism they have. Each round trip still adds a day or two to a mid-size job.

That delay costs money the cost model never sees. A prospect who got a call from a second bidder while your quote sat in review may already be leaning the other way. And a rep who has learned that quotes wait starts working differently: she books fewer walkthroughs in a week, clusters them so reviews batch together, and brings less urgency to the building.

The fix keeps the owner's judgment in the process. Codify the pricing logic so standard-scope jobs price to a number without the approval step, and aim the owner's time at the exceptions: non-standard scopes, unfamiliar building types, anything that falls outside the model's calibrated range. Reviewing the edge cases is a different job than reading every quote one at a time.

Before you build a pricing tool

Three things have to be on paper before a quoting tool is worth building. First, production rates calibrated against actual labor hours from at least the last two quarters of contracted work, broken out by building type and service category. No industry benchmark and no estimate. Actual hours from current accounts. Second, overhead allocation written out as an itemized list that adds up and has been checked against last year's P&L, not 'about 20 percent.' Third, a margin floor by job type and size tier: the minimum you will accept on a standard office bid, on a medical account, on a high-frequency industrial job.

Skip those three and a quoting tool just automates the guesswork. The application is only as good as the pricing model it encodes. If the model is not written down and verified, the tool only speeds up the trip to the wrong number.

The discovery conversation for any quoting build starts with the rate table and the scope form, well before software. Where do your current production rates come from? When did you last check them against what labor actually costs on a live contract? What does your rep see on a walkthrough that never reaches the price? Those questions usually surface more upside than the technology discussion does.

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
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·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
The facilities maintenance bid: priced on the schedule, bled by the call-outs
A property maintenance company bids the preventive schedule cleanly, then drowns in reactive calls nobody priced. Here is where the margin leaks before the contract is signed.
Read →
Jun 2026·9 min
Night coverage: how commercial cleaners lose a site before anyone notices
Crews clean thirty buildings a night across a city. When one cleaner no-shows, the gap is invisible until the client emails at 8 a.m. Here is where coverage breaks and what holds it.
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·8 min
How facilities teams track open work orders across properties (and where jobs go quiet)
The request came in. The vendor got dispatched. Then nothing. Where work order tracking breaks down at ten properties, and what it takes to fix it.
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 →
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 →