Skip to content
USUnited States

Commercial Cleaning Job Costing: Track Labor, Supplies, and Rework by Site

Build a site-level cost record that separates routine cleaning, approved extra work, and rework so you can see which commercial contracts make money.

Yes Foreman · October 7, 2026 · Running the work

A cleaner finishes the scheduled shift, then stays late to redo restrooms that failed inspection. Without commercial cleaning job costing, that extra labor disappears into payroll and the contract looks healthier than it is.

Treat each recurring site as a separate job. Build the cost baseline from the signed scope. Then record labor, supplies, equipment, travel, delays, extra work, and rework against the visit that caused them.

Start with the work promised at the site

Do not start with payroll totals or supplier invoices. Start with the signed cleaning scope.

Walk the building before you price it. List the areas, tasks, service frequencies, access windows, and inspection points. Record who supplies chemicals, liners, paper products, and other consumables.

A broad line such as general office cleaning is not enough. Break the building into areas the crew can recognize: reception, offices, restrooms, kitchen, stairs, meeting rooms, and loading areas.

For each area, write down:

  • The cleaning tasks
  • The service frequency
  • The expected access window
  • Any locked or restricted areas
  • The inspection or sign-off process
  • The consumables supplied by the client
  • Work specifically excluded from the price

This gives the supervisor something concrete to compare with the completed visit. If the client asks for an event room that is not in the scope, the difference is visible before the crew absorbs it.

Separate recurring, periodic, and requested work

Recurring work is the cleaning promised on the normal visit. Periodic work includes scheduled tasks such as floor care or high dusting. Requested work is added by the client outside the accepted scope.

Keep those categories separate. A profitable periodic service can hide a weak recurring contract if every charge and cost lands in one account total.

Write exclusions in plain language. If the price excludes post-construction dust, moving stored goods, or returning after failed access, put that in the signed scope. The supervisor should not have to remember a sales conversation from months ago.

Build a commercial cleaning job costing baseline

Use three connected records: site, visit, and billing period.

Give every visit its own identifier and link it to the site, scope version, work class, and billing period so costs are not overwritten or posted to the wrong month. The site record holds the accepted scope and overall contract result, the visit record shows what happened during a particular shift, and the billing-period record compares the accepted price with the costs incurred during the same period.

Set up a plain site ledger:

FieldWhat to record
SiteClient, address, contact, and access details
ScopeAccepted scope version and service schedule
VisitVisit identifier, date, scheduled tasks, and completed tasks
LaborWorker, start, finish, breaks, and site transfers
SuppliesProduct, quantity, cost basis, and reason for issue
EquipmentMachine use, rental, damage, or site-specific repair
TravelPaid travel time and allocated vehicle cost
Work classRoutine work, approved extra work, or rework
ApprovalChange order reference and client authorization
Billing periodAccepted price and charges for approved extras
ReviewActual cost, profit, cause, and next action

Keep the cost buckets plain. Direct labor, supplies, equipment, travel, subcontracted work, and rework are enough to expose most site problems. Add another bucket only when it changes a decision.

Turn the visit plan into planned cost

Start with the service schedule. Record the planned workers and planned time for each visit. Apply the labor-cost basis taken from your payroll and employer-cost records. Include the worker’s paid wages plus the employer-paid payroll costs and benefits shown in your own records.

For supplies, equipment, travel, and subcontracted work, record the planned quantity, unit cost, visit frequency, periodic-work date, and allocation rule. Put periodic costs against the billing period in which the work is scheduled.

This commercial cleaning job costing baseline is the planned cost of delivering the accepted scope. Preserve the original baseline, and create a new version with an effective date when the client approves a permanent scope change. Put actual costs beside the applicable version rather than overwriting it.

Add markup to planned cost to reach the price. Margin is measured later as profit divided by price. If those terms are getting mixed inside your quote, use the markup versus margin guide before approving the contract.

Keep the accepted price, cost, markup, and sales tax in separate fields. Tax collected from the customer is not cleaning site profit.

Record cleaning labor by worker, visit, and building

A business-wide payroll total cannot show which building consumed the labor. Cleaning labor costing needs a worker, site, date, and time record.

When a cleaner moves between buildings, close the first site entry and open the next one. Keep paid transfer time separate from cleaning time. Write whether transfer time and vehicle cost go to the destination site or are split across the affected sites, then use that route-allocation rule on every shift.

Assign the worker's recorded labor cost to the time spent at each site. Keep planned time beside actual time. The difference tells you where to inspect, but it does not tell you the cause by itself.

Capture labor that does not produce another clean room

Assign site-required training, access delays, site-specific supply runs, supervisor inspections, and return visits to the affected site. Put general onboarding, warehouse work, and ordinary administration in overhead instead.

Suppose the crew reaches a locked floor, waits for the contact, leaves, and returns later. Record the waiting time and return visit. Note who was contacted and what blocked access. The crew completed less area, but the site still consumed labor.

A missed visit needs a record too. Lower labor cost does not mean better performance when the contracted work was never completed.

When one shift hands unfinished work to another, use a commercial cleaning shift handover and issue log. Link the open task, hazard, or failed inspection to the original visit so the next crew does not create an unexplained labor overrun.

Assign supplies and equipment where crews use them

A supplier invoice shows what the business bought. It does not show which building used it.

Record chemicals, liners, and client consumables when they are issued to a site. For a van serving several buildings, record each site issue during the route, including the product, quantity, cost basis, date, site, and person making the entry. Reconcile those issues to the beginning and ending van counts. Put unexplained differences in a separate stock-variance record instead of spreading them across the sites.

If the client supplies paper products but the crew starts using company stock, record that switch immediately. Do not bury it in general supplies. The contract now carries a cost that was excluded from the price.

Label normal use, waste, and client requests

Separate normal consumption from spills, damaged stock, unusual waste, and products requested by the client. All of those items have a cost, but they lead to different actions.

Normal use belongs in the recurring site cost. Waste calls for a handling or storage fix. A client-requested product may require a scope change and a new price.

Do the same for equipment. Charge a site-specific rental to the site. For a shared machine, use one written allocation method based on your own use records. Do not send the entire purchase or repair cost to whichever site happened to use the machine last.

Separate routine work, approved extras, and rework

Every added minute needs one of three labels:

  • Routine work covered by the accepted scope
  • Extra work approved through a change order
  • Rework caused by missed or unacceptable work

A late finish means little until you know which label applies.

If the client asks the evening supervisor to clean an event room outside the recurring scope, stop and compare the request with the signed scope. Describe the added area, tasks, service date, labor, supplies, equipment, and access needs.

Write a change order. Record who approved it and when. Attach the crew time and supplies to that same change order.

If the crew has to redo restrooms because the first clean failed inspection, record the return labor as rework. Do not call it an extra. The customer did not change the scope.

If the customer has changed the expected standard, document the new expectation before treating the added work as routine. Otherwise rework and scope growth become permanent unpaid labor.

Worked example: keep the documents separate

The Oak Street house example is electrical work, but the document discipline applies to a cleaning contract.

R. Chen at 14 Oak Street accepted quote Q-1847 for a bathroom exhaust fan and four LED downlights. The quote was 1,105 sample currency units. The ceiling was lined, and chasing was excluded.

Extra cable and chasing became an approved 160 change order. Invoice INV-1847 was therefore 1,265.

The recorded job cost against the original quote was 850. Profit against that quote was 1,105 minus 850, which equals 255. Margin was 255 divided by 1,105, or about 23%. Markup was 255 divided by 850, or 30%.

Do not calculate profit from the 1,265 invoice. The cost of the approved change order is not supplied. Combining the invoice total with the original job cost would produce a false result. These figures are a worked example in sample currency units, not a cleaning rate card.

Use the same discipline at a cleaning site. Keep the recurring baseline, approved extra price, extra cost, invoice, and rework cost as separate records.

Compare cleaning contract costs with the accepted price

Review the site by billing period. Start with delivery, not dollars.

Compare planned visits with completed visits. Check whether the scheduled areas and periodic tasks were finished. A low-cost period caused by a missed shift is not a good result.

Next, compare planned labor with actual labor. Open the visit records before blaming crew pace. Look for access delays, supervisor visits, training, supply runs, added rooms, return visits, and rework.

Then compare planned and actual supplies, equipment, travel, and subcontracted work. Keep the original allowance visible. The gap matters because it points to the next site decision.

When the listed actual costs contain only direct site costs, calculate site contribution before overhead:

Site contribution = accepted price for the work − direct site cost of that work

Do not call that result final site profit. To calculate cleaning site profit after overhead, choose one allocation rule for business overhead such as office costs, administration, and insurance. Apply that rule to every site and keep allocated overhead in a separate field.

Use your own labor hours, visits, or another documented cost driver to allocate overhead. Do not change the method because one contract looks weak. If you need to check the resulting margin, use the profit margin calculator.

Do not include an approved extra in revenue while leaving its labor and supplies inside routine cost. Record both sides before judging its result.

Record a cost when the site consumes the labor, stock, equipment, or travel. Invoice timing does not move that cost. Link the cost to the billing period covering the same work, even if the customer's processing delays the invoice.

Keep U.S. sales tax and chemical-safety records straight

Exclude customer sales tax from the accepted price used as site revenue. Include sales tax paid on a purchase in that purchase’s recorded cost when required by your business’s state and local tax treatment. For shared equipment, put that tax into the equipment cost basis before applying the normal site-allocation rule. Confirm the treatment with the responsible state or local tax body before setting the rule in your ledger.

For workplace chemical controls, labels, and employee information, check OSHA's hazard communication page (opens in a new tab). Safety records support the work, but chemical training time and site-specific controls still need to land against the site when that site caused the cost.

Turn every site review into a crew action

Do not file the variance and move on. Change the next shift.

If the problem was access, update the key, alarm, contact, or service-window note. If it was stock, correct the site issue record and consumable responsibility. If it was missed work, update the handover and inspection instruction.

If your commercial cleaning job costing record shows that the client now expects work outside the signed scope, write a change order. If the site repeatedly needs more routine labor or supplies than the baseline allows, rebuild the cost plan before renewal or repricing.

When approved extras reach the billing period, use the commercial cleaning invoice process to keep recurring charges, approved work, and supporting records aligned.

Open one active contract now. Read the signed scope, create its site record, and post the next completed visit before another shift starts.

Put the next job in one place

Yes Foreman connects quotes, schedules, crews, timesheets and invoices for small field-service teams.