How to Price a Commercial Cleaning Contract

By StartBusinessByStatePublisher: Robert SmithResearch process

Operator guide · Commercial cleaning · Published September 18, 2026 (ET)

Price from scoped labor hours plus employer burden, supervision, supplies, equipment, travel and overhead — then add profit with a clear margin or markup rule. Square footage describes the facility; productive hours come from the scope. Use the employee-cost calculator and hiring cash calculator for labor and cash detail. For finding and winning accounts, see how to get commercial cleaning contracts. This is not a wage determination, legal advice, or a promise that the lowest price wins.

Define scope and price extra work.

Calculate your cleaning contract price

Enter the work and costs for one account. Compare your proposed quote with the price needed to reach your target margin, then check what happens if labor takes longer.

The starting values reproduce the example below; they are not market rates. Two cleaners working two hours each means four cleaner-hours. Include an allowance for your own cleaning work, even if you do not draw an hourly paycheck.

Employer add-on costs are your blended planning percentage, not a tax calculation. Use the same basis for cleaner and supervisor wages here. Include paid travel and other paid time only once; fuel dollars are separate. Avoid counting insurance or benefits again in overhead if included in your add-on percentage.

Cost = loaded cleaner labor + loaded supervisor labor + supplies + equipment + travel dollars + overhead. Target price = cost ÷ (1 − margin). Profit = your quote − cost. Results cover only entered costs and are before income tax; exclude sales tax collected from the quote. Add any applicable overtime premiums or other costs to your estimate; this tool does not calculate them automatically.

Check labor assumptions with the employee-cost calculator, then check whether you can fund the account until payment arrives with the hiring cash calculator. Your entries are calculated in your browser and are not submitted by this tool.

Direct answer

Build the bid bottom-up:

  1. Define the scope (areas, frequencies, exclusions, access, day vs night).
  2. Estimate productive hours per clean from a walk-through or time study — not from a copied $/sqft rule — then account for paid non-productive time (travel, training, leave) via utilization or explicit paid-hour fields.
  3. Apply wage + employer burden (FICA and other employer payroll, unemployment, workers’ compensation allocation, benefits you actually pay).
  4. Add non-labor: supervision/QC, supplies, equipment amortization, travel dollars (fuel/mileage), and a fair overhead allocation for this account.
  5. Choose profit math carefully: margin and markup are different (see below).
  6. Package the price as monthly and/or per-clean so the buyer can compare apples to apples.
No national $/sqft rate. Any $/sqft figure that falls out of a worked example is a residue of that example’s assumptions, not a market survey.

Step sequence for a commercial bid

1. Measure and define scope

Write the statement of work before the spreadsheet. Include restrooms, flooring, trash, glass, break rooms, high-dust, periodic work, and what is out of scope. Note whether the buyer is private commercial or a government customer (wage rules can differ). Square footage helps communicate building size; it does not replace hour estimates.

2. Estimate productive hours — and paid time

Convert the SOW into cleaner-hours per visit and visits per month. Separate:

  • Productive on-site hours (the work the buyer is buying)
  • Paid travel time (clock time to/from the site — separate from fuel/mileage dollars)
  • Other paid non-productive time (training, leave) — either enter hours explicitly or use a utilization % (productive ÷ total paid)
  • Supervision / QC hours (do not hide them twice inside “overhead”)

Load wages on total paid hours (or productive ÷ utilization), not productive hours alone — otherwise burdened labor is understated. For wage and burden detail by state benchmark, use the employee-cost calculator. For cash needed before the first invoice clears, use the hiring cash calculator.

3. Apply wage + employer burden

Loaded labor ≈ paid hours × wage × (1 + employer burden %). Burden is not optional: employer Social Security and Medicare, federal and state unemployment where applicable, workers’ compensation allocation, and benefits you actually provide. Replace placeholder percents with your tax notices and insurance quotes. Observed industry payroll shares (wages only) are context — see cleaning business payroll percentage — not a recommended bid margin.

4. Add non-labor costs for this account

  • Supplies and consumables
  • Equipment allocation (vacuums, autoscrubbers, carts — amortized share)
  • Travel / fuel dollars (mileage, fuel, parking) — paid travel time already belongs in labor hours above
  • Job overhead: admin, scheduling software, COI/insurance share, bad-debt/payment fees if you include them here

Commercial buyers often require certificates of insurance before award. Review coverage types and buyer COI habits on cleaning business insurance before you bid thin.

5. Allocate overhead, then choose profit math

Overhead allocation should be intentional and not double-count items already inside burden. Then pick either a target margin on price or a markup on cost — and label which one you used.

6. Package monthly vs per-clean

Many commercial accounts are billed monthly for a fixed schedule; others want a per-visit rate. Convert consistently: monthly ÷ cleans per month. State what’s included (supplies? day porter? periodic floor work?) so a lower number isn’t an incomplete scope.

Margin versus markup (define both)

Margin = profit ÷ price. If you want a 20% margin on included costs, price = cost ÷ (1 − 0.20) = cost ÷ 0.80.

Markup = profit ÷ cost. A 20% markup means price = cost × 1.20.

Same “20%” label, different dollars. Our employee-cost tool uses the margin formula when you enter a target margin — do not mix the two mid-bid.

price_at_margin = total_cost ÷ (1 − margin)
price_at_markup = total_cost × (1 + markup)
At 20%: margin price is higher than markup price on the same cost base.

Illustrative worked example

Illustrative assumptions only — not a wage determination and not SCA advice. Private commercial office example. Replace every number with your walk-through, wage offer, tax notice and insurance quote.
Assumptions for one example private-commercial office account
AssumptionValueWhy it is labeled
FacilityClass B office, private commercialNot a government site
Size (descriptor only)15,000 rentable sq ftDescribes the building — not a $/sqft price input
Frequency5 nights/week ≈ 21 cleans/monthUse the real contract calendar
Productive cleaner hours / clean4.0 hoursFrom walk-through estimate (e.g., 2 cleaners × 2 hours)
Monthly productive cleaner hours844.0 × 21
Monthly paid travel hours4.0Clock time to/from site — separate from fuel $
Monthly paid training / leave share6.0Non-productive paid time allocated here
Monthly total paid cleaner hours9484 + 4 + 6 → utilization ≈ 89%
Supervisor / QC hours / month10.50.5 hour × 21 cleans
Cleaner wage$18.00 / hourOffer wage for this example — not BLS advice
Supervisor wage$22.00 / hourExample assumption
Employer burden22% of wagesPlaceholder for FICA + unemployment + WC allocation + other — replace with yours
Supplies$0.80 / productive cleaner-hourExample consumables
Equipment allocation$120 / monthAmortized share for this account
Travel fuel / mileage $$80 / monthDollars only — travel time is in paid hours above
Job overhead allocation$250 / monthAdmin / software / GL share — don’t double-count WC
Target “20%”Shown as both margin and markupPlanning target only — not a typical or guaranteed profit
Cost build and two profit rules (same cost base)
LineMonthly $
Loaded cleaner labor (94 paid × $18 × 1.22)2064.24
Loaded supervisor labor (10.5 × $22 × 1.22)281.82
Supplies (84 × $0.80)67.20
Equipment allocation120.00
Travel fuel / mileage $80.00
Job overhead allocation250.00
Total included cost2863.26
Price at 20% margin (cost ÷ 0.80)3579.08
Price at 20% markup (cost × 1.20)3435.91
Per-clean at 20% margin (÷ 21)170.43
Per-clean at 20% markup (÷ 21)163.61
Residue only: $3,579.08 ÷ 15,000 sq ft ≈ $0.239 / sq ft / month under these assumptions. Not a national rate and not a number to copy onto the next building without re-scoping hours.

Before you staff the account, pressure-test cash timing with the hiring cash calculator. Revenue context (not a price list) is on cleaning business revenue.

Cleaning scope and extra-work planner

Put the included work in writing, then price requests that fall outside it. Separate recurring additions from one-time jobs so an occasional extra does not quietly become part of every visit.

Example tasks, costs and margins below are invented for illustration. Replace them with the actual account scope and your cost estimates.

1. Define the current scope

2. Price the extra work

Include wages, employer costs and paid travel/setup in your assumptions. Hours are per crew member; two people working two hours means four worker-hours. Non-labor cost per occurrence should include supplies, equipment, disposal and any extra overhead. Count each cost once. Use actual monthly occurrences; a weekly task is not always four visits per calendar month. Set occurrences to zero to omit an extra.

Extra 1
Extra 2
Extra 3

Worker-hours = occurrences × crew members × paid hours per person. Cost adds labor and non-labor spending. Each proposed line price = cost ÷ (1 − target margin), rounded to cents; totals sum the rounded lines. Margin is not markup. These additions exclude sales tax, unentered costs and changes to the existing base price. Check overtime, access constraints and equipment needs before using your estimate.

The change-order download includes internal cost and margin estimates. Review it before sharing. It is a planning draft, not approval to perform work or a signed contract. Confirm the final scope, price, timing and terms with the customer separately.

Use the cleaning bid calculator for the base contract. Your entries are calculated locally and are not submitted by this tool. Download before leaving; entries are not saved automatically. Keep customer private information and access codes out of these drafts.

Downloadable bid worksheet

Blank inputs plus the example column, including utilization / paid-time fields and separate paid travel hours vs fuel dollars. This is a worksheet, not a clone of the live employee-cost or hiring-cash calculators.

Suggested citation: StartBusinessByState.com — How to Price a Commercial Cleaning Contract. https://startbusinessbystate.com/how-to-price-a-commercial-cleaning-contract/. Please credit and link to this page when using our compilation or analysis, and retain the original-source credits and applicable reuse terms.

Cost and cash tools

Private commercial vs government wages

Private commercial bids usually follow your offer wages, local competition and the cost build above.

Federal and District of Columbia service contracts covered by the McNamara-O’Hara Service Contract Act (SCA) can require paying wage determination (WD) rates and fringe — not your private-market guess. See DOL Fact Sheet #67 (SCA) and the Service Contract Act overview. Look up wage determinations on SAM.gov wage determinations — do not invent WD rates on this page.

State and local governments (and some private projects under state law) may have separate minimum wage, living wage or prevailing-wage rules that are not the federal SCA. Check the solicitation and the relevant state/local agency; those rules are not interchangeable with a federal WD.

This guide does not list SCA or prevailing rates by city or occupation. If the solicitation is government, read the wage terms attached to the bid package and price from compliance — then still add supervision, supplies, equipment, travel, overhead and profit.

Price is not the same as cash float. Before you accept the account, use how much cash before taking a commercial contract (checklist + link to the hiring cash calculator).

Read the packet before you lock a unit price: how to read a service contract before you bid.

FAQ

Isn’t commercial cleaning priced per square foot?

Buyers and incumbents often talk in $/sqft because it is easy to compare buildings. Operators who survive price from hours and burden, then may reverse-engineer a $/sqft for the proposal cover sheet. Copying someone else’s $/sqft without matching scope, wage, burden and utilization is how bids go underwater.

What is the difference between margin and markup?

Margin is profit divided by price; markup is profit divided by cost. A 20% margin and a 20% markup are not the same price. See the worked example: $2,863.26 of cost becomes $3,579.08 at 20% margin vs $3,435.91 at 20% markup.

When does the Service Contract Act apply?

At a high level, SCA can apply to covered service contracts with the federal government and the District of Columbia. It is not a private-office default, and it is separate from state/local wage rules. Check the solicitation and DOL Fact Sheet #67; look up the wage determination on SAM.gov. This page is not legal advice and does not publish WD rates.

What should I confirm before I submit a commercial bid?

Insurance COIs the buyer will accept, cash to cover payroll until payment lands, a written SOW, utilization-aware labor hours, and profit math you can explain. Lowest price does not always win — incomplete scope and missing certificates lose after the number looks “good.”

Can I use BLS median wages as my bid wage?

BLS occupational medians are useful benchmarks inside the employee-cost tool. Your bid needs the wage you will actually pay (or the SCA WD if required), plus your real burden and non-labor costs.

Not advice. Educational operator guide only. Not legal, tax, insurance or employment advice. Not a guarantee of contract award, profit or payment timing. Assumptions in the example are example.