Price a commercial cleaning job from hours: list each task, divide its area or count by your production rate, multiply by visits per week, then cost the hours at your loaded labour rate, add supplies and overhead, and divide by one minus your target margin. AI can build that calculator; the production rates must be your own timings.
Per-square-foot price guides are written for buyers, so they give a range and a warning that every building differs. For the contractor the square-foot figure is an output, not an input: you reach it by costing the hours. A washroom-heavy 8,000 square feet is not the same job as 8,000 square feet of open plan, and the calculator shows why.
Why the per-square-foot figure comes last
Cleaning time for a task is the area divided by the production rate, times 60 to get minutes. That is the formula in ISSA's article on calculating cleaning times, which works through mopping 1,000 square feet at 5,355 square feet an hour (11.2 minutes) and a ten-fixture washroom at three minutes a fixture (30 minutes). Everything in a commercial quote is a variation on those two sums: area over rate for floors, count times minutes for fixtures and bins.
ISSA is clear about what its published times are. The article calls them benchmarks and bidding guides, says they are not a time-motion study, and notes that organisations get better results from their own studies. That is the right way to use any published figure, including the illustrative ones below. Borrow a number to see whether yours is plausible, then time your crews and use your own.
It also explains why a flat rate per square foot misleads. Two 8,000 square foot buildings can need very different hours, because washrooms, kitchens and hard floors take longer per square foot than open carpet. If you price both at the same rate, one contract subsidises the other and you will not see which.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowThe task sheet: quantity, rate and visits per week
The core of the calculator is a table with one row per task. For each row you record how much there is (square feet, fixtures or bins), how fast your crew works, how long one occurrence takes, and how many times a week it happens. Visits per week are not the same as task frequency. In the example below the crew visits five nights a week, but the carpet is vacuumed three times and the desks are wiped once, which is how real contracts are written.
Here is a single-floor office of 8,500 square feet (illustrative): 6,000 square feet of carpet, 1,500 of hard floor, two washrooms with 12 fixtures in total, a kitchenette, 46 bins, 30 workstations and some interior glass.
| Task | Quantity | Rate | Minutes each time | Times a week | Minutes a week |
|---|---|---|---|---|---|
| Empty and reline bins | 46 bins | 100 an hour | 27.6 | 5 | 138.0 |
| Vacuum carpet | 6,000 sq ft | 4,000 sq ft an hour | 90.0 | 3 | 270.0 |
| Mop hard floors | 1,500 sq ft | 4,000 sq ft an hour | 22.5 | 5 | 112.5 |
| Clean washrooms | 12 fixtures | 3.5 minutes each | 42.0 | 5 | 210.0 |
| Kitchenette | 1 | 12 minutes | 12.0 | 5 | 60.0 |
| Dust and wipe workstations | 30 desks | 1.2 minutes each | 36.0 | 1 | 36.0 |
| Spot-clean interior glass | 1 | 20 minutes | 20.0 | 1 | 20.0 |
| Total | 846.5 |
The 4,000 square feet an hour for mopping is slower than ISSA's 5,355 example because this crew works round desks and corners. That is the point of timing your own people: the published figure tells you the ballpark and the stopwatch tells you the truth. Add a 10% allowance on top of the task minutes for set-up, collecting supplies, locking up and walking between floors, which brings the week to 931 minutes, or 15.5 hours.
If you add robotic floor equipment, only the hard-floor and carpet rates change, which is why the sheet keeps rates in their own column. Leasing or buying a floor cleaning robot looks at the numbers behind that decision.
Loaded labour, supplies and overhead
Hours turn into money through four costs. Each is an input you can point to in your books.
| Cost | Illustrative input | Where it comes from |
|---|---|---|
| Loaded labour | $20.88 an hour | $18.00 wage × 1.16 payroll burden |
| Overhead | 20% of loaded labour | Company overhead divided by total direct labour cost across all contracts |
| Supplies and equipment | $5.00 a visit | Chemicals, liners, mop heads, vacuum bags and equipment wear |
| Weeks per month | 4.33 | 52 ÷ 12 |
Loaded means the wage plus what employing someone adds, such as payroll costs, insurance and holiday accrual; your payroll provider or accountant has the real percentage. Overhead covers the supervisor who inspects, the vehicle, insurance, software, recruitment and the office. Paper products and soap are better billed at cost plus handling, or left to the client, than buried in the monthly price.
The weeks-per-month line catches a surprisingly common slip. Multiplying weekly hours by 4 instead of 4.33 undercounts the month by about 8%. For this office that is 62.1 hours instead of 67.3, and a price of $1,957 instead of $2,110. Over a year that is a loss of about $1,830 on a single contract, and no line in the quote looks wrong.
Margin first, then the price that follows
Decide the profit you need after overhead and express it as a share of the price. The price is then cost divided by one minus that share. Markup works differently and gives a lower margin than people expect:
| Margin on price | Equivalent markup on cost |
|---|---|
| 10% | 11.1% |
| 15% | 17.6% |
| 20% | 25.0% |
| 25% | 33.3% |
| 30% | 42.9% |
Now the office. With a 15% target margin on price, the sums run as follows. Monthly hours are 15.52 × 4.333 = 67.25. Labour is 67.25 × $20.88 = $1,404. Overhead at 20% is $281. Supplies are 21.7 visits × $5 = $108. Cost is $1,793. Price is $1,793 ÷ 0.85 = $2,110 a month.
Had you added a 15% markup instead, the price would be $2,062. That looks close, but the margin is 13.0% and you give away $47 a month, about $570 a year, on one contract. Multiply that by every contract you hold.
Read the result from several angles. It is $97.38 a visit, about $0.25 a square foot a month, and $31.38 of revenue for every labour hour. Those four figures are what you compare with other quotes and with what the client pays now.
Quote sanity checks before it goes out
A calculator can produce a tidy wrong answer, so check the result against the world before you send it. Six checks cost two minutes:
| Check | Office result | What it catches |
|---|---|---|
| Revenue per labour hour against the floor of loaded labour × (1 + overhead) ÷ (1 − margin) | $31.38 against a floor of $29.48 | A price that fails to cover the cost stack |
| Hours per visit | 15.52 ÷ 5 = 3.1 hours | A crew size that cannot fit the building's access window |
| Overall speed | 8,500 ÷ 3.1 = about 2,740 sq ft per labour hour | A speed far outside your own range for similar sites |
| Price per square foot a month | $0.25 | A figure out of line with your other offices |
| Washroom share of task time | 210 of 846 minutes, 25% | A fixture-heavy site priced like open plan |
| Margin if the crew runs 15% slow | 15.0% falls to 3.0% | A cushion too thin to survive a bad month |
The 3.1 hours matters in practice. If the building is open to cleaners only from 6 to 8 p.m., a 3.1-hour visit needs two cleaners for about 1.55 hours each, and your price must reflect two people travelling and two sets of keys. The calculator's hours are the same, but the rota is not.
Three nights or five: frequency does not scale evenly
Clients often ask for a discount "because we only need you three times a week". Run it through the sheet. Bins, washrooms, kitchen and hard floors drop to three times a week, vacuuming stays at three, and the weekly desk and glass jobs stay at one:
| Five visits a week | Three visits a week | |
|---|---|---|
| Task minutes a week | 846.5 | 638.3 |
| Hours a month, with allowance | 67.25 | 50.71 |
| Cost | $1,793 | $1,336 |
| Price at a 15% margin | $2,110 | $1,570 |
| Price per visit | $97.38 | $120.87 |
Three visits is three-fifths of the visits but 75% of the hours, so the price falls by about 26%, not 40%. The tasks that do not depend on visit count stay, and each visit carries its own supplies. Someone asking for 40% off is asking you to cut the price by more than your hours fall. Show the client this table, or the two lines of it that matter, and offer the 26% reduction as your honest number.
When the client's budget is below your price
Sooner or later a client says the number is too high. The wrong answer is a discount, because a discount takes margin and leaves the scope untouched. The right answer is a scope menu, with each option priced from the sheet. Taking tasks out of the monthly figure one at a time gives you:
| Scope change | Minutes saved a week | Price falls by (a month) |
|---|---|---|
| Vacuum twice a week instead of three times | 90 | $211 |
| Mop hard floors three times instead of five | 45 | $105 |
| Clean the kitchenette three times instead of five | 24 | $56 |
| Wipe workstations fortnightly instead of weekly | 18 | $42 |
| Spot-clean interior glass fortnightly | 10 | $23 |
Take the first two and the price drops by $316 to $1,794, a 15% cut. Now compare that with simply cutting the price by 15% and keeping the scope. Your margin was 15%, so the new price would equal your cost and the profit would be zero. A price cut of any size leaves a much thinner margin than the percentage suggests: a 10% cut turns a 15% margin into 5.6%. Offer the menu, let the client choose, and keep every task you drop in writing so the cleaners and the client both know what has changed.
A 2,000 square foot unit and the minimum visit
Small sites break the arithmetic from the other direction. Take a retail unit of 2,000 square feet, cleaned twice a week: eight bins, 1,600 square feet of carpet, 400 of hard floor, a washroom with three fixtures, a staff area and glass doors. The task minutes total 56.3 a visit, which is 61.9 with the allowance, barely an hour.
Priced straight from the formula, that is $315 a month, or $0.157 a square foot. But nobody should drive to a site, park, let themselves in, clean for an hour and lock up for one hour's pay. Set a minimum paid visit of 1.5 hours, which is a rule you choose from your own travel and set-up, and the sheet takes the larger of the formula's hours and the minimum. The price becomes $434 a month ($0.217 a square foot), 38% more than the formula.
That looks high on a per-square-foot basis and is correct. Every small site contributes the same unavoidable 1.5 hours, so a small site always costs more per square foot than a large one.
A 9,000 square foot building with 28 fixtures
Here is how a gut figure goes wrong. You priced the 8,500 square foot office at about $0.25 and it went well, so you quote the next building, 9,000 square feet, at $0.30 a square foot for a margin of safety, which is $2,700 a month. Then you build the task sheet. The building has four washrooms and 28 fixtures, a larger kitchen, 36 desks and 50 bins.
The sheet says 22.9 hours a week, or 99.2 a month. Labour is $2,071, overhead $414, supplies $108 and cost $2,593. At the quoted $2,700 the margin is 4.0%, not 15%. To hit the target you need $3,051, or about $0.34 a square foot. The 16 extra fixtures, the bigger kitchen and the extra desks are the difference, and nothing in a per-square-foot rule would have told you so.
The fix is to build the task sheet before you name a price, every time. A short walk-through collects what the sheet needs: areas by floor type, fixtures, bins, desks, glass, access hours and anything unusual such as a canteen or shower block.
Periodic work belongs on its own lines
Do not bury carpet extraction, strip and wax, high dusting or window cleaning in the monthly price. They occur a few times a year, take large blocks of time and may be done by a different crew. Quote each as a priced occurrence with its own hours, so the client can say yes or no to each.
For example, extracting the 6,000 square feet of carpet at 700 square feet an hour plus an hour of set-up is 9.6 hours. At the same loaded labour and overhead, plus $120 of chemicals and $60 of machine wear, the cost is $420 and the price at 15% margin is $494, which you would quote as $495 a clean. Twice a year is $990, or $82.50 a month if the client prefers it spread across the invoices. A start-up clean is another one-off line: if a new building needs about two and a half times a normal visit's hours, that is 7.8 hours, a cost of $214 with $20 of supplies and a price of $252, quoted as $250. Say in the quote what the monthly price assumes about the building's starting condition. For the window lines of a contract, pricing commercial window cleaning per pane works the same way from pane counts.
The walk-through: what to capture and how AI can tidy the notes
A quote is only as good as the quantities that go into it, and those come from the visit. Collect these before you leave:
- Floor areas by type: carpet, hard floor, entrance matting. Measure or take them from a plan; never estimate by eye in a building you have not walked.
- Fixtures (toilets, urinals, basins, showers), bins, kitchen equipment and shared appliances.
- Workstations, meeting rooms and glass partitions.
- Access: opening hours, key and alarm arrangements, lifts, floors, loading limits.
- Who supplies paper, soap and liners, and what the client expects the finish to be, in their own words.
Notes dictated on the move are messy, and an assistant can sort them into task rows if you fence it in. The fence is to leave the rates and minutes to you:
Turn these walk-through notes into rows for my task sheet: task, quantity, unit,
visits per week (if stated). Do not add production rates or minutes; I supply
those. If a quantity is approximate or missing, keep my words and add [CHECK].
List anything the notes imply but do not state as questions at the end.
Notes: front office carpet approx 6k, reception tile, two washrooms (3 WC + 3
basins each), kitchen w dishwasher, bins everywhere, 30ish desks, glass wall to
boardroom, open 6-9pm only, alarm code from manager, client wants daily.
A good reply (illustrative) keeps the doubt visible:
| Task | Quantity | Visits a week | Flag |
|---|---|---|---|
| Vacuum carpet | "approx 6k" sq ft | not stated | [CHECK: measure it] |
| Mop reception tile | area not given | not stated | [CHECK: area] |
| Clean washrooms | 12 fixtures (2 washrooms × 3 toilets and 3 basins) | "daily" | [CHECK: five or seven nights?] |
| Kitchen | 1 kitchen with dishwasher | not stated | [CHECK: is the dishwasher in scope?] |
| Bins | "everywhere" | not stated | [CHECK: count them] |
| Workstations | "30ish" desks | not stated | [CHECK: count] |
The failure to watch for is a reply that quietly turns "approx 6k" into 6,000, "30ish" into 30 and "daily" into seven nights, because that is the tidy version. The last one is worth money. Run the office with daily meaning seven visits and the price rises from $2,110 to about $2,648, an extra $539 a month or 25%. Nobody should discover that difference after signing. Ask the client which nights they mean, in writing, before the sheet takes the number.
One prompt for the margin workbook, one to audit the quote
Any assistant that can produce spreadsheet formulas will do: ChatGPT, Claude, Gemini or Copilot, depending on your plan. Give it the structure and the inputs, and keep the production rates as your own. This prompt asks for the whole workbook:
Build a commercial cleaning margin calculator for Excel or Google Sheets.
Tabs: Inputs, Tasks, Quote. Plain formulas only; no AI functions inside cells.
Inputs: wage 18.00; payroll burden 16%; allowance for set-up, supplies and
locking up 10%; overhead 20% of loaded labour; supplies and equipment per
visit 5.00; weeks per month = 52/12; minimum paid visit 1.5 hours; target
profit margin 15% (profit divided by price, NOT markup on cost).
Tasks: one row per task with quantity, production rate (or minutes per unit for
fixtures and bins), minutes per occurrence, occurrences per week, weekly minutes.
Quote: visits per week (input); weekly hours = task minutes plus allowance, but
never less than visits x minimum visit; monthly hours; labour; overhead;
supplies; cost; price at target margin rounded to the nearest 5; price per
visit; revenue per labour hour; a cell saying LOW if revenue per labour hour
is under loaded labour x (1 + overhead) / (1 - margin).
Add a stress cell: margin if task time is 15% longer.
List every formula. Then give me two test buildings with answers worked out
step by step so I can check them by hand.
A first reply (illustrative) usually looks right. These are the lines to read closely:
Inputs!B9 Loaded labour per hour =B2*(1+B3)
Tasks!D5 Minutes (area task) =B5/C5*60
Tasks!D9 Minutes (count task) =B9*C9
Tasks!F5 Weekly minutes =D5*E5
Quote!B3 Weekly hours =MAX(SUM(Tasks!F5:F30)*(1+Inputs!B4)/60,B2*Inputs!B8)
Quote!B4 Monthly hours =B3*Inputs!B7
Quote!B5 Labour cost =B4*Inputs!B9
Quote!B6 Overhead =B5*Inputs!B5
Quote!B7 Supplies and equipment =B2*Inputs!B7*Inputs!B6
Quote!B8 Cost =B5+B6+B7
Quote!B9 Price per month =MROUND(B8/(1-Inputs!B10),5)
Quote!B10 Revenue per labour hour =B9/B4
Quote!B11 Check =IF(B10<Inputs!B9*(1+Inputs!B5)/(1-Inputs!B10),"LOW","OK")
Five mistakes recur in first drafts. Weekly hours are multiplied by 4 instead of the weeks-per-month cell. The price formula adds the margin to cost as a percentage, which is markup by another name. Overhead is applied to supplies as well as labour, or left out altogether. The MAX for the minimum visit is missing, so the retail unit prices at $315. And a fixture row uses the area formula, which divides a count by a rate it does not have. Enter both test buildings and compare each result with the assistant's hand-worked figure and your own sum. Do not paste client names or contract details into a consumer chat; using Claude with Excel and Google Sheets safely covers what to leave out.
A second prompt turns the assistant into a reviewer. Paste the task table and the cost summary, without names, and ask it to find problems rather than rewrite anything:
Review this commercial cleaning quote for errors and weak assumptions. Do not
rewrite it. List each problem with the line it affects and why it matters.
[paste task table, cost stack and price]
A reply on the office quote might say that weekly hours are multiplied by four, that vacuuming has no allowance for furniture, that the washroom time assumes no deep clean, and that no minimum visit is stated. Treat the first point as a spreadsheet error to fix and the others as questions to answer from the site. The assistant cannot see the building. It checks the logic, and the rates stay yours. If you want the document that carries the price, drafting a commercial cleaning proposal comes next, and ChatGPT prompts for quotes, rotas and complaints has more prompts for the same business.
Commercial cleaning pricing questions
Should I quote commercial cleaning per square foot?
Quote the building from hours, then express the result per square foot if the client asks. A flat rate per square foot ignores washrooms, frequency and floor types, which drive most of the labour. Use the figure only as a sanity check against your own range for similar buildings, never as the starting point.
What margin should a commercial cleaning contract carry?
That depends on your overheads and how steady the contract is, so work it out from your own accounts rather than copying a number. Decide the profit you need after overhead, express it as a share of price, and divide your cost by one minus that share. Review it at each renewal.
Where do I get production rates for the task sheet?
Time your own crews on real tasks, then cross-check against published benchmarks such as ISSA's cleaning times, which ISSA itself describes as bidding guides rather than time-motion studies. Do not take a rate from an AI chat reply, because it will sound confident and have no source behind it.
How do I price a first deep clean separately?
Treat it as a one-off line with its own hours, not as part of the monthly price. Estimate the extra time against the maintenance sheet, cost it with the same loaded labour and overhead, and add the same margin. Say in the quote what the monthly price assumes about the building's starting condition.
Further reads
- Cleaning Business SOP: Write Procedures and Checklists With AI — Write the task lists and checklists that sit behind your hours.
- Cleaning Company Price Increase Letter: Draft and Segment With AI — Raise prices on existing contracts without losing clients.
- Commercial Window Cleaning Contract: Proposal, Access and Safety With AI — Proposal, access and safety wording for the window lines.
- Price Carpet Cleaning Jobs: Build a Per-Room Calculator With AI — The same cost model applied to carpet extraction jobs.
- Price House Cleaning Jobs: Build a Calculator With ChatGPT — Hourly, per-room and flat-rate pricing for domestic work.
- How to Build a Job Costing Sheet in Excel With AI Help — Track actual hours against quote so the next one is sharper.
- Cleaning Business Management Software: Scheduling, Timesheets and AI — Scheduling, timesheets, recurring invoices and AI mapped across five tools for cleaning firms, with list prices for five-person and ten-person teams.
- Cleaning Invoice Template: Itemise Visits and Chase Payment With AI — A filled-in visit-by-visit cleaning invoice, plus a reminder ladder and polite final notice that AI can word and your invoicing software can send.
- House Cleaning Estimate Template: Quote by Home Size With AI — A filled-in house cleaning estimate, the home-size and condition pricing behind it, and an AI prompt that turns intake answers into a checked quote.
- How to Price Pressure Washing Jobs With an AI-Built Rate Card — A rate card built from your hourly cost and timed production rates, with worked driveway, deck and house prices, modifiers and a margin check.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: ISSA article 'How to Calculate Cleaning Times' (June 2022), for the cleaning-time formula, its worked examples and its guidance on benchmarks and time studies.