How to Bid Cleaning Contracts Accurately Using Time Data
Most cleaning bids are based on walkthroughs and gut feeling. Learn how to use actual time data from your existing jobs to price new contracts accurately and protect your margins.

That $1,800/Month Contract Is Costing You $2,100
You estimated three hours per visit. Six months in, your crew’s spending four and a half. More restrooms than you remembered. A break room the client added to the scope. You’re literally paying to clean this building.
Here’s why walkthroughs fail as a bidding method: square footage doesn’t predict complexity, daytime walkthroughs look way easier than the nighttime reality, non-cleaning time (setup, hauling supplies, security access) never makes it into the estimate, and most owners bid based on their best cleaner on a good night — not the average.
Stop Estimating. Start Using Your Own Data.
If you’ve been tracking hours by client location, you already have everything you need to bid accurately. Your time records show exactly how long each type of building takes — averaged over months of actual visits.
Hours per visit by building type. Your 8,000-sq-ft medical offices average 3.2 hours. Your 12,000-sq-ft corporate offices: 4.1. Retail spaces at 5,000 sq ft: 2.0. These aren’t industry benchmarks — they’re your crews, your market, your standards.
Complexity adjustments. A medical office with a lab takes ~40% more time than one without. That’s not a guess — it’s a number straight from your data.
Real travel and setup time. When your crews clock in and out at each site, the gaps show you actual travel time. A building fifteen minutes from your nearest route costs more than one that’s two minutes away. Now you can quantify that.
Crew size isn’t linear. Two cleaners don’t finish in half the time of one — there’s coordination overhead, shared equipment, tasks that can’t be parallelized. Your per-site data shows the real relationship.
Building the Bid: Six Steps
1. Find your comparables. Prospect wants a bid on a 10,000-sq-ft office with eight restrooms? Pull your time data for similar buildings. You want three to five close matches.
2. Use the average, not the best case. If your comparables show 3.0, 3.4, and 3.7 hours per visit, your baseline is 3.4 — not 3.0. Don’t kid yourself.
3. Adjust for known differences. More restrooms? Add time based on what your data says each one costs. Farther from your other sites? Add the travel differential. Scope includes stripping and waxing? Add those hours separately.
4. Use fully loaded labor cost. Not just wages — wages plus payroll taxes, workers’ comp, insurance, supplies, and overhead. If your cleaners earn $16/hour but the fully loaded cost is $24, the $24 is the number that matters.
5. Add your target margin. Cost is $1,600/month, target margin is 20% → bid is $2,000. If the market won’t support that, you know before submitting — not six months into a losing contract.
6. Buffer for scope creep. It almost always happens. The client adds a room, the building gets busier, “light clean” becomes full clean. Build in 5–10% on your hours estimate. If scope stays flat, you earn a higher margin. If it creeps, you’re covered.
The Adverse Selection Trap
When you bid from estimates, you tend to win the contracts you underbid and lose the ones you price correctly. Think about that for a second — the jobs you win are precisely the ones that’ll cost more than you expected.
Over time, your portfolio fills with underwater contracts. Revenue grows, but labor costs grow faster. You hire more people, work harder, and wonder why margins keep shrinking. The root cause isn’t operations. It’s pricing.
The cleaning businesses that grow profitably know their numbers at the contract level. They walk away from bids that don’t hit margin. They renegotiate when scope expands. They win on accuracy, not on being cheapest.
Don’t Have Data Yet? Start Here.
Track your next ten jobs carefully. Exact start and end times at every location for a month. Not estimated — actual. That gives you a baseline for your most common building types.
Calculate effective hourly rate on existing contracts. Monthly revenue ÷ actual monthly labor hours. If any contract falls below your fully loaded cost, you’ve found something to renegotiate.
Log the variables that affect time. Restrooms, floors, carpet vs. hard floors, kitchen — yes or no. Once you have enough data points, these become the inputs that make your next bid accurate instead of optimistic.
The sooner you start tracking, the sooner your bids stop being guesses. If you’re evaluating time tracking tools, our comparison of the best software for cleaning businesses covers what to look for. For a product overview, see the janitorial time tracking page.
Frequently Asked Questions
How do you calculate a bid for a cleaning contract?
Start with actual labor hours from comparable jobs you already service — not estimates from a walkthrough. Multiply by your fully loaded labor cost (wages + taxes + insurance + overhead), add your target profit margin, and build in a 5–10% buffer for scope creep. This gives you a bid grounded in real costs.
Why do cleaning companies underbid contracts?
Almost always because they underestimate the hours. Walkthrough estimates are optimistic — they don’t account for complexity, non-cleaning time (setup, security access, hauling supplies), or the fact that average nights are slower than best-case nights. Without data from comparable jobs, bids default to best-case scenarios.
How does time tracking help with cleaning contract pricing?
It gives you actual hours per site, per visit, by building type — averaged over months of real work. When you bid on a new 10,000-sq-ft medical office, you look at your data for similar buildings and know it typically takes 3.5 hours. Your bids are based on reality instead of guesses.
What’s a good profit margin for a cleaning contract?
Typically 10–28% for commercial cleaning, depending on the work type, competition, and market. The key is knowing your actual labor cost per site. Without that, many businesses think they’re hitting 20% but are actually closer to 5–10% on their worst contracts.





