A cleaning company can send a well-researched quote and still lose much of the expected return when a job runs long. The missing step is often a cleaning job cost tracker that compares the estimate with what actually happened. It should distinguish revenue reductions, direct job costs, and overhead rather than rolling every difference into a vague profit number.
This guide uses a completely fictional service visit to show the numbers and the spreadsheet formulas. It is for US small cleaning businesses that want a practical estimate-versus-actual review after each job. All prices, hours, wages, and allowances are invented teaching assumptions, not industry averages.
Why job costing comes after the estimate
An estimate answers, "What do we expect this job to cost?" A completed-job review asks, "What resources did we actually use, what revenue can we retain, and what should change next time?" Those are separate decisions. Your initial pricing method can remain sound while the execution needs adjustment.
Review the agreed scope before interpreting a cost overrun. Extra work requested by the client may justify an authorized change order; inefficient work on the original scope may not. Keep the original quote and its assumptions rather than rewriting them after the visit. For a pre-job example, see VectoraWork's commercial cleaning estimate guide.
The Small Business Administration's break-even discussion distinguishes price, fixed costs, and variable costs. This article uses a narrower per-job contribution view. It is not a complete company profit-and-loss statement.
Fictional example: Harborlight Cleaning Co.
Harborlight Cleaning Co. and its office customer are fictional. They agree on $600 for one scheduled cleaning visit. The company estimates two workers at four paid hours each, with an assumed loaded labor cost of $25 per hour. "Loaded" here is the company's hypothetical planning figure, not a legal wage determination.
The original estimate is:
- Crew labor: 2 × 4 × $25 = $200.
- Consumables: $30.
- Travel and parking: $20.
- Equipment usage allowance: $10.
- Payment processing expense: $15.
- Estimated direct cost: $275.
- Estimated job contribution: $600 - $275 = $325.
- Estimated contribution rate: $325 / $600 = 54.17%.
Contribution is revenue minus the direct costs included in the model. It is not net profit: rent, insurance, administrative salaries, taxes, depreciation not included in the equipment allowance, and other overhead still have to be covered.
Enter actual costs without hiding the callback
The visit takes five paid hours per worker, or 10 paid crew-hours, instead of the estimated eight. Harborlight also records higher consumables and travel costs. A callback is required, and the customer receives an agreed $25 credit. In this fictional scenario, the $60 callback line is additional labor and material expenditure not already included in the other actual-cost lines.
The actual record is:
- Crew labor: 10 × $25 = $250.
- Consumables: $44.
- Travel and parking: $28.
- Equipment allowance: $10.
- Payment expense: $15.
- Additional callback cost: $60.
- Actual direct cost: $407.
- Customer credit: $25, reducing retained revenue to $575.
- Actual contribution: $575 - $407 = $168.
- Actual contribution rate: $168 / $575 = 29.22%.
The direct-cost overrun is $407 - $275 = $132. The contribution fell by $325 - $168 = $157: that is the $132 added cost plus the $25 customer credit. If you count the credit also as an expense, you double-count its impact.
In percentage terms, the modeled contribution rate drops by about 24.95 percentage points, from 54.17% to 29.22%. That statement is not the same as saying the business's overall net-profit margin dropped by that amount.
Build an Excel estimate-versus-actual table
Make a sheet called Job Review. In A1:C1, enter Cost item, Estimate, Actual. Put the following items on separate rows: Service revenue (row 2), Customer credits (3), Paid crew-hours (4), Loaded labor cost per hour (5), Supplies (6), Travel (7), Equipment allowance (8), Payment fees (9), Additional callback cost (10), Net revenue (11), Direct cost (12), Contribution (13), Contribution rate (14), and Direct-cost variance (15).
Enter the fictional values in column B: revenue 600, credit 0, hours 8, rate 25, supplies 30, travel 20, equipment 10, payment fees 15, callback 0. Enter the actual values in C: 600, 25, 10, 25, 44, 28, 10, 15, 60. Then add these formulas in both the estimate and actual columns:
- B11 = B2-B3; copy to C11.
- *B12 = B4B5+SUM(B6:B10)**; copy to C12.
- B13 = B11-B12; copy to C13.
- B14 = IF(B11>0,B13/B11,""); copy to C14.
- In C15, =C12-B12 to show the positive $132 cost overrun.
The workbook should display $325 estimated contribution and $168 actual contribution. Format row 14 as a percentage and all money as USD currency. For a reusable file, use input validation so negative hours or an implausible credit cannot slip through unnoticed. Do not rely on formatting alone to prevent incorrect entries.
Separate scope changes from execution differences
A good review makes managers ask why actual costs changed, not merely whether they changed. Use a short variance reason field with options such as site condition, approved additional scope, travel delay, supplies, staffing, equipment fault, or callback. Preserve free-form notes and the supporting work order.
Suppose a client authorizes extra floor work at a separately agreed price. Keep that extra revenue and the related labor on distinct lines, with a reference to the approved change. In contrast, an unapproved quality callback should not be described as a billable extra. The VectoraWork service work order guide explains a simple scope-change approval record. The cleaning inspection checklist addresses quality review after work is completed.
Check overhead without counting it twice
If Harborlight allocates another fictional $85 of overhead to this job, the amount remaining after modeled direct costs and allocated overhead would be $168 - $85 = $83. That figure still should not be labeled net profit without reconciling every company expense and accounting treatment.
Choose an overhead allocation method and apply it consistently. A fixed monthly office cost could be spread over estimated service visits or another defensible driver. But if your loaded labor rate already includes supervision and administrative overhead, adding those same costs again inflates the job-cost total. Document what your rate includes.
Use the result to improve the next quote
One visit cannot establish a reliable production benchmark. Keep a consistent record across similar jobs and compare paid crew-hours per completed scope, not just hours per square foot. Conditions, access restrictions, restroom counts, travel, and initial cleaning can change the workload. A multi-visit contract needs a review of the full billing period as well as individual visits.
For the fictional visit, the two-hour labor overrun is an immediate reason to check the original walkthrough, staffing plan, and service scope. It is not proof that the workers performed poorly. A management review should examine evidence and avoid inventing blame from a spreadsheet.
Store the signed quote, any change orders, time records, invoices, and related receipts. The IRS small-business recordkeeping guidance explains why supporting documents matter. An estimate-versus-actual worksheet can help analyze operations, but it does not replace accounting records or payroll systems.
Frequently asked questions
Is contribution margin the same as profit margin?
No. The example's contribution deducts specified direct costs, not every business expense. Make the basis of any margin number explicit and avoid comparing two companies with different definitions.
Should a customer credit be recorded as a job expense?
In this model, a credit reduces retained revenue. Do not subtract the same $25 again as a separate cost. Your accounting system may have more detailed classifications, so reconcile the worksheet to the underlying books.
How often should cleaning contractors review actual costs?
After the first visit of a new job, after significant callbacks or approved scope changes, and periodically for recurring work are practical decision points. The right cadence depends on job volume and materiality.
Can I use the same labor rate for every employee?
A standard planning rate can simplify an estimate, but actual costing may require role-specific rates and accurate recorded hours. Confirm the costs included in each rate rather than assuming a generic figure measures payroll exactly.
Practical takeaway
Use estimated versus actual revenue, crew-hours, consumables, travel, and callbacks to explain the difference between a quote and the result. In this fictional $600 visit, $132 of extra direct costs and a $25 customer credit reduce the modeled contribution from $325 to $168. Review that difference, preserve evidence, and improve the next estimate without calling a contribution figure net profit.
Editorial disclosure: Harborlight Cleaning Co., the customer, and every financial amount in this article are fictional educational examples. No price is a US market-rate claim. This is general operational information, not tax or accounting advice.
Practical takeaway
Reconcile estimate and actual job revenue, direct costs, and callbacks; treat customer credits as revenue reductions and never equate contribution with net profit.
Sources and further reading
External references relevant to this guide. We encourage you to check current primary documentation.
Published by VectoraWork Editorial Team. This is general educational information, not individualized legal, tax, financial, employment or security advice. Request a correction.