Skip to content

Answers · Commercial cleaning

How Do You Bid a Commercial Cleaning Job So It Makes Money?

A commercial cleaning job makes money when the bid starts from the hours the company’s own crews will need in that building, prices each hour at what it really costs the company, adds supervision, supplies, overhead and profit, and is then checked against payroll in the first 90 days. A price per square foot is a handy way to compare bids, but it carries none of what drives the hours: fixtures, floor type, trash, density, the cleaning window. This guide covers what the walkthrough records, how rates timed on the company’s own crews turn square feet into hours, what an hour of labor costs with taxes and insurance on top, the arithmetic to a monthly price, why per-square-foot pricing loses money on some buildings, and the weekly check that catches a thin bid in time.

By , founder of Lumina Business Advisory · Updated · Sources checked · Editorial standards

What the janitorial walkthrough has to capture

Free self-check · two taps · no email

Hand-off 1 of 6 · Inquiry → Quote

When a new inquiry comes in, is the time of your first reply recorded anywhere?

Choose the answer that sounds like your business.

Answer it in the Self-Audit

The walkthrough is the only time the estimator sees the building before the price is fixed, so everything the hours depend on has to be written down there, not remembered later. Ask the buyer for the floor plans and the cleaning spec before the visit, walk every area the spec covers, and photograph each area type. One sheet per building, filled in on site, holds:

  • Cleanable square feet by area type and floor type: open office, private offices and conference rooms, lobby and corridors, break rooms, restrooms; carpet, VCT, tile or sealed concrete. Gross building area is not cleanable area, so leave out mechanical rooms, suites the tenant cleans itself and anything the spec excludes.
  • Restrooms by fixture: toilets, urinals, sinks and showers, room by room, and who furnishes paper, soap and liners.
  • Trash: the number of receptacles and recycling streams, and the route to the dumpster or compactor, with its distance, stairs or elevator, and any dock that locks at a set hour.
  • The frequency for each area: nightly, three times a week, weekly; the days per week; the holidays the building closes.
  • The cleaning window and access: start and end times, alarm codes or badges, elevator access, and whether tenants are still working when the crew arrives.
  • Density: headcount, workstations, visitor traffic, and rooms that take more time than their square footage suggests, such as a fitness room or a staff kitchen.
  • Periodic work, such as carpet extraction, strip and refinish, high dusting and windows, and whether each one is in the monthly price at a stated frequency or quoted when requested.
  • Why the building is out to bid, what the buyer checks first, when the decision will be made, and when the current contract ends.

The dumpster route and the cleaning window are fixed costs every night, and neither one shows up in square footage. A sheet with those two lines blank turns the bid into a guess at exactly the points where a guess costs the most. The last line feeds the proposal log, not the price; the guide on janitorial proposal follow-up covers that side.

From square feet to labor hours with your own production rates

A production rate is how much of one kind of area one cleaner finishes in an hour, at the frequency and standard the spec sets: square feet per hour for offices and floors, minutes per fixture for restrooms, minutes per receptacle or per run for trash. Rate tables found online were measured on someone else’s crews, equipment and buildings, so a bid built on them prices another company’s labor. The rates that predict this company’s payroll are its own, timed over two weeks or so on buildings it already cleans.

  • Pick three to five current buildings that look like the work being bid, and time a normal crew on normal nights, not the fastest cleaner on a good night.
  • For each area type, the supervisor records the cleanable square feet and the minutes it took, with a phone timer or with task codes in the timekeeping app.
  • Restrooms are timed per fixture and trash per receptacle; the dumpster run, closet setup, lock-up and alarm are timed as fixed minutes per night.
  • Divide square feet by hours for each area type, and minutes by fixtures for restrooms. Write the results into one dated rate table, with the buildings each rate came from.
  • Check the table against payroll: the hours it predicts for each timed building should come close to the hours payroll paid there last quarter. If they do not, the timing missed something, and that is cheaper to learn now than on a new account.

For the building being bid, the arithmetic is one line per area: square feet divided by the rate, fixtures times minutes, plus the fixed minutes, gives hours per cleaning night. Five nights a week is 5 × 52 ÷ 12, about 21.67 nights a month. Illustrative example: a 30,000-square-foot office cleaned five nights a week has 17,000 square feet of open carpeted office, 6,500 of private offices and conference rooms, 5,000 of hard-floor lobby, corridors and break rooms, and 1,500 of restrooms with 24 fixtures. The company’s rate table, in this example, says 3,400 square feet an hour for open office, 2,600 for private offices, 2,500 for hard floor, 3 minutes a fixture, and 48 minutes a night for trash consolidation, the dumpster run and lock-up. That is 5.0 + 2.5 + 2.0 + 1.2 + 0.8 hours: 11.5 hours a night, about 249 hours a month. Every rate here is invented for the example, and none of them is a standard.

What one hour of cleaning labor costs the company

The hours are multiplied by what an hour costs the company, not by the wage. The wage input is the rate the crew on this building will actually be paid, from the payroll register. For context only, the Bureau of Labor Statistics puts the median hourly wage for janitors and building cleaners at $17.71 in May 2025, and at $17.21 in services to buildings and dwellings, the industry group that includes janitorial contractors. The lowest 10 percent earned less than $13.77 and the highest 10 percent more than $24.17. Those are national figures, not this company’s rate.

The wage also has to hold for the whole term. The Florida Department of Commerce states that the Florida minimum wage became $15.00 an hour on September 30, 2026, effective through December 31, 2027; a contract running past that date needs the state’s next rate. The U.S. Department of Labor’s state table, updated July 1, 2026, says the Michigan minimum wage “is scheduled to increase on January 1, 2027 to $15.00 per hour.” A multi-year bid priced on this year’s wage carries each later wage step as a loss unless the price moves with it, which is what an escalation clause is for; its wording is a question for the company’s attorney. On top of the wage sit the costs of employing the person who earns it:

  • Social Security and Medicare: the IRS gives the employer’s share as 6.2 percent and 1.45 percent of wages.
  • Federal unemployment: the IRS gives a FUTA rate of 6.0 percent on the first $7,000 paid to each employee in a year, or 0.6 percent for an employer entitled to the maximum 5.4 percent credit for state unemployment taxes. The state rate comes from the company’s own notice.
  • Workers’ compensation, at the rate on the company’s own policy for its cleaning class, per $100 of payroll.
  • Paid leave, holidays and any health or retirement contribution, converted to a cost per hour worked.
  • Overtime: under the Fair Labor Standards Act, covered employees who are not exempt “must receive overtime pay for hours worked over 40 in a workweek at a rate not less than time and one-half their regular rates of pay.” A cleaner who already works 35 hours a week on other buildings and picks up 10 on this one is a cost the bid should see.
  • Federal work: the Service Contract Act requires contractors on prime contracts over $2,500 to pay service employees no less than the wage rates and fringe benefits found prevailing in the locality, and the Department of Labor’s wage determination for the contract is incorporated into it. On those bids, that wage determination is the wage input.

These are plain summaries of what each agency page says, not legal or tax advice; the payroll provider and the company’s attorney confirm how each one applies. For a sense of scale, the Bureau of Labor Statistics reports that in June 2026 employer costs for private-industry workers in service occupations averaged $18.26 an hour worked in wages and salaries and $5.47 in benefits, $2.08 of it legally required benefits. That is about 30 cents of benefits for every wage dollar, by our arithmetic, averaged across every service occupation, not cleaning alone. Illustrative example, continued: the crew earns $16.00 an hour. Social Security and Medicare add $1.22, unemployment taxes $0.30 on this company’s notices, workers’ compensation $0.48 and paid leave $0.80. The loaded rate is $18.80 an hour, before supervision.

From labor hours to a monthly janitorial price

With the hours and the loaded rate, the price is four lines of arithmetic, and each line comes from a record the company already has.

  • Direct labor: monthly hours times the loaded rate.
  • Supervision: the area supervisor’s inspection time on this building, in hours a month, at the supervisor’s own loaded rate.
  • Supplies: liners, chemicals, pads and equipment wear for a building of this size and floor mix, from last year’s purchases on comparable buildings; paper and soap only if the contract has the company furnish them.
  • Overhead and profit: the office, insurance, vehicles, software and the owner’s salary as a share of revenue, from last year’s profit and loss statement, plus the profit the owner wants from the account.

Overhead and profit are shares of the price, so they come out of the price rather than being added to cost: divide direct cost by one minus the overhead share minus the profit share. Illustrative example, continued: 249 hours at $18.80 is about $4,680 of labor. Supervision is half an hour a night, about 11 hours a month at a loaded $24, or $260. Supplies come to $350, because the client furnishes paper. Direct cost is about $5,290. With overhead at 15 percent of revenue and a 10 percent profit target, the price is $5,290 ÷ 0.75, about $7,050 a month. Adding 25 percent to cost instead gives about $6,610, which leaves 20 percent of the price for overhead and profit, not 25. The figures are invented; the company’s own payroll, purchases and profit and loss statement replace every one of them. Keep the bid sheet with the hours per area behind the proposal: it becomes the building’s budget on the first night and the record any later price conversation points back to. Periodic work the spec leaves out is priced per job, and the guide on extras shows what happens to extra work done on a verbal yes.

Why per-square-foot janitorial bids lose money on some buildings

A price per square foot is a useful check and a poor source. Dividing an hours-based price by the cleanable square feet lets the owner see whether a bid sits far from the company’s own recent wins. The trouble starts when the rate comes first and the hours are never counted, because square footage carries none of what drives hours: fixtures, floor type, trash, density, the cleaning window and the dumpster route.

Illustrative example, continued: the first building comes to about $0.235 per square foot a month. A second building also has 30,000 cleanable square feet and is priced at the same rate, about $7,050 a month. It has 8,000 square feet of open office, 6,000 of private offices, 14,000 of hard floor and 2,000 of restrooms with 60 fixtures over two floors, and its dumpster sits across the parking lot, so the fixed tasks take 72 minutes a night. With the same rate table, it takes about 14.5 hours a night, roughly 313 hours a month. Labor comes to about $5,880, supervision $260 and supplies $450, so direct cost is about $6,595. That leaves about $455 a month against roughly $1,060 of overhead: the account loses about $600 a month before any profit, at a price that looked identical to a good one. Priced from its own hours, the same building comes to about $8,790 a month.

The opposite error loses bids instead of money. A building with open carpet, few fixtures and a dumpster at the back door, priced at the company’s average rate per square foot, comes in high against a competitor who counted its hours. Both errors have the same cause: a rate that belongs to other buildings.

Checking the bid against actual hours in the first 90 days

A bid is a forecast, and the first 90 days are when it can still be corrected cheaply. The check needs two numbers per week for each new building: the hours the bid assumed and the hours payroll paid.

  • Before the first night: the office creates a building code in timekeeping and enters the bid hours per night as the building’s budget. Every shift on the building, supervisor cover and floaters included, clocks in under that code.
  • Weeks one and two: startup hours, such as the initial deep clean, training a new crew and learning the alarm and the route, go under a separate startup code so they neither hide nor inflate the steady-state number.
  • Every Monday from week three: the office puts last week’s paid hours beside the bid hours, and the supervisor writes one line on any building over budget, naming what took longer and where.
  • Day 30: the owner reads the first month. For a building over budget by more than a tolerance the owner set before the start, check four causes: the walkthrough missed something, the crew is slower than the timed rate, the customer is asking for extras, or cleaners stretched across buildings are running into overtime.
  • Day 60: each cause has its own fix, applied by then: a re-walk with the property manager and a revised spec, training or a different route, a priced slip for each extra, a schedule that keeps cleaners under 40 hours.
  • Day 90: the owner decides to hold the price, take the scope conversation to the client, or keep a thinner account knowingly. The rate table is updated from what the building actually took, so the next bid starts from better numbers.

Illustrative example, continued: the first building was bid at 11.5 hours a night, 57.5 hours a week. In week five, payroll shows 64. The supervisor’s line says the third-floor tenant now works until 9 p.m. and the crew cleans around them. That is a walkthrough question, not a speed problem, and it goes to the property manager in month two, not at the rebid. After the first 90 days, the same comparison continues monthly; the guide to janitorial job costing by building shows that version.

When this does not need outside help

A company that already times its crews, codes every payroll hour to a building and compares bid hours with paid hours each month does not need anyone to run this. The walkthrough sheet, the rate table and the Monday comparison are the whole method.

An outside review earns its fee when bidding is one leak among several and the records do not connect: bid sheets kept in email, payroll with no building codes, accounts won at prices that do not cover their hours, extras done on a hallway request and never billed. Our Revenue Review takes two weeks. It reads the company’s bid sheets, payroll hours by building, contracts and invoices, read-only, sets each account’s bid hours against its paid hours, and prices each gap as a monthly dollar figure where the records support one. It writes no bids, sets no prices, contacts no client and gives no legal, tax or wage-law advice. We do not run a cleaning company, and there are no client case studies on this site yet.

If it is unclear whether any of this is worth a fee, the next step is a free 20-minute call, where a company too small for the arithmetic is told so.

Before any next step

What should you do next?

Fix it yourselves.
If the cause is clear, it lives inside one process, and one person can own it — take the play from this page and run it. That outcome is fine with us; it is why the play is published in full.
Order one bounded build.
If the fix is known but needs configuration or integration inside your stack — a cadence wired into your own system, an alert, a handoff — scope that one build, with us or with anyone you trust. The six systems we build show what bounded looks like.
Start with the Review.
If the causes are debatable, the problem crosses departments or systems, or the economics are unclear — diagnose before anyone builds. The Revenue Review: $4,500 fixed, two weeks, computed from your own records. Read a sample finding before you decide — free, no email.

Asked right after

How do you bid a commercial cleaning job?
Start from hours, not a rate. Walk the building and record cleanable square feet by area and floor type, fixtures, trash, frequencies and the cleaning window; turn each area into hours with production rates timed on the company’s own crews; multiply by the loaded hourly labor cost; add supervision and supplies; then divide by one minus the overhead and profit shares.
How much should you charge for janitorial services?
Enough to cover the building’s own hours at the company’s loaded labor rate, plus supervision, supplies, overhead and profit; no national price per square foot can stand in for that count. For context, the Bureau of Labor Statistics puts the median wage for janitors and building cleaners at $17.71 an hour in May 2025, and payroll taxes, workers’ compensation and paid leave sit on top of every hour priced.
How do I price janitorial services by labor hours so each account is profitable?
Price each building from its own hours, then check them. Keep the bid sheet as the building’s budget, code every payroll hour to the building, and compare paid hours with bid hours weekly for the first 90 days. For a building running over, check four causes: a walkthrough miss, a slow crew, unbilled extras or overtime. Each one has a different fix.
Should a cleaning company price by the square foot?
Use the price per square foot as a check, not as the source. Two buildings of the same size can need very different hours because of fixtures, floor type, trash, density and the cleaning window. Divide the hours-based price by the cleanable square feet to compare it with the company’s own recent wins.
How many square feet can a cleaner clean in an hour?
The only figure worth bidding on is the company’s own, measured by area type, because it changes with the floor, the frequency and the crew. Time normal crews on three to five current buildings for about two weeks, area type by area type, and check the resulting rates against the hours payroll paid on those buildings.

Sources

The next step

Bring us the process that keeps getting stuck.

A 20-minute conversation about the workflow, the teams and the systems involved — and a straight answer on whether The Revenue Review is the right next step. If it is not, we say that on the call.

A real person answers or calls you back the same business day.

Free self-check · 2 taps