1. Walk the site before you price it

Measure cleanable areas and record the details that change labor time: floor types, restroom and breakroom count, occupancy, soil level, security requirements, storage, waste handling, and access windows. Ask what is excluded and write it down while you are on site.

2. Estimate hours from the scope

Use a production rate that matches the specific area and task, then calculate each area separately. A lobby, open office, restroom, and breakroom do not move at the same pace.

Core calculation: labor hours per visit = cleanable area ÷ your production rate. Add task time that does not fit a square-foot model, such as restrooms, fixtures, or detail work.

3. Build your operating cost

Cost layerWhat belongs there
LaborHours per visit × loaded hourly labor cost × visits per month.
Supplies and equipmentRecurring chemicals, consumables, equipment allocation, and site-specific materials.
OverheadInsurance, supervision, vehicles, admin, and the portion of fixed operating cost the account must carry.

4. Set the bid from cost and margin

After you calculate the monthly operating cost, set a deliberate gross margin. The formula is:

Monthly price = monthly operating cost ÷ (1 − target gross margin).

A margin is not an extra percentage added to cost. It is the share of the final price remaining after operating cost. That distinction saves an unpleasant amount of math later.

5. Check the bid against the written scope

Review the proposal line by line. Confirm that cleaning frequency, floor care, consumables, initial work, client responsibilities, and excluded services match the labor model. If the scope changes, the bid changes.

Need the editable model?

Build the bid from your actual inputs.

The CleanOps Bid Fieldbook includes the editable eight-input workbook, walkthrough system, assumptions audit, and buyer guide.

View Fieldbook pricing

Sources