Margin erosion is the gap between the margin you priced a job at and the margin you actually kept. In construction it often comes not from one big mistake but from many small leaks between the estimate and the invoice: an extra that never got billed, a return trip, a price that went up after you quoted, an hour of rework. Each one looks too small to matter. Together they can take several points off every job.
This lesson shows where those leaks happen at each stage of a job, a worked example that adds them up, how to find the biggest leaks across your recent jobs, and how to treat rework as a cost you can measure.
Why small leaks matter more as you grow
When the owner runs every job, a lot of leaks get caught by memory: “Remember to bill for that outlet.” With three or four crews, nobody has the whole picture. The crew lead does the extra, the office doesn’t hear about it, the estimator never learns the job ran long, and the invoice goes out at the original price.
The same small leak on every job adds up faster with more jobs. And because each job still makes some money, nobody notices until the year-end margin is lower than the one you bid.
Example: where one kitchen’s margin went
A $48,000 kitchen remodel, bid at a 35% gross margin, so $16,800 of gross profit. All numbers are made up to show the method; labor is at an assumed burdened cost of $45 an hour.
| Leak | What happened | Profit lost |
|---|---|---|
| Unbilled extras | Customer asked for an extra outlet and under-cabinet lights; the crew did it, nobody wrote a change order | $260 of labor and materials, never invoiced |
| Rework | A cabinet door measured wrong, reordered and reinstalled | $410 materials + 6 h = $680 |
| Waiting | The countertop template was two days late; the crew left and came back, losing set-up and drive time | 10 h = $450 |
| Extra supply runs | Missing fittings and trim, three separate trips | 8 h = $360 |
| Price increase | Cabinet hardware and two appliances went up between the quote and the order | $540 |
| Punch list return visits | Two extra visits for small items that could have been caught at the walkthrough | 8 h = $360 |
| Small purchases not estimated | Caulk, blades, fasteners, shims | $190 |
| Total | $2,840 |
The job finished with $13,960 of gross profit: a 29.1% margin instead of 35%. Nobody would call it a bad job. The customer was happy, the invoice was paid. But almost six points of margin leaked out in seven places, and not one of them showed up as “a problem” while it was happening.
Where margin leaks, stage by stage
Use this as your margin leakage checklist. Each leak sits at a stage of the job, and so does its fix.
| Stage | Common leaks | Question to ask |
|---|---|---|
| Estimate | Labor hours guessed rather than taken from past jobs; missing items; no waste factor; old material prices | Did similar jobs run over on the same line? |
| Sale | Discounts to win the job; vague scope that turns into “I thought that was included” | Was the scope written clearly enough to say no to an extra? |
| Readiness | Wrong or late materials; permits or inspections not lined up; schedule gaps | Did the crew lose time on day one? |
| Work | Rework; extras done without a change order; waiting on other trades, deliveries or decisions; supply-house runs | How many hours on this job didn’t move it forward? |
| Closeout | Receipts not on the job; time not recorded; approved changes not on the invoice; return trips for the punch list | Is every approved change and every cost on the final invoice? |
| Payment | Late payment; disputes over undocumented extras; write-offs | Did we collect the full invoice, on time? |
Many leaks can happen at the work and closeout stages, where the information has to cross from the field to the office. That’s why a clear change order process and a closeout check before the invoice matter for profit, not just for organization.
Rework: the leak you can measure
Rework is any work done twice: a measurement error, a failed inspection, a callback, a fix to something another crew installed. It can be one of the bigger leaks, and it’s easy to miss, because it gets logged as ordinary labor on the job.
Make it visible:
- Give rework its own code on timesheets and receipts: “rework” or “callback,” on the job it belongs to.
- Record a reason in one line: measured wrong, wrong material ordered, failed inspection, damage, unclear instructions.
- Total it monthly: rework hours as a share of all labor hours, and rework cost in dollars.
After two or three months, the reasons will likely start to repeat. Measuring errors point to a measuring and checking step. Wrong materials point to the handoff between estimate and order. Unclear instructions point to what the crew gets before the job. Fix the most common reason first.
Find your biggest leaks
You don’t need to analyze every job. Do this once:
- List your last 10 closed jobs with the gross margin you bid and the gross margin you got. The budget vs. actual lesson shows how to get the actual numbers.
- Take the three with the biggest gap and go through them with the crew lead and whoever invoiced them. For each, ask: where did the money go? Use the table above as the list of places to look.
- Put a dollar amount on each leak, even a rough one.
- Tally the leaks across the three jobs by type. Often two or three types account for most of the money.
Fix the top two, not all of them
Each common leak has a known fix. Pick the two that cost you the most:
| Leak | The fix |
|---|---|
| Unbilled extras | No work outside the scope without a change order, with a limit the crew lead can approve on site. See change order management |
| Rework | A rework code, a reason, and a fix for the most common reason |
| Waiting and supply runs | A readiness check before the crew is scheduled: materials confirmed, decisions made, other trades booked |
| Price increases | Quotes valid for a set period; prices on long-lead items confirmed before the order |
| Missed costs at closeout | A closeout check before the invoice: time, receipts and every approved change on the job |
| Punch list return visits | A walkthrough with the customer before the crew leaves. See closing out a job with a punch list |
| Estimating gaps | Estimates built from your own past jobs, not memory. See ballpark estimates |
For materials specifically, material waste control and handling material price swings go deeper.
Your next action
- List your last 10 closed jobs with bid and actual gross margin.
- Walk through the three with the biggest gap and put a dollar amount on each leak.
- Pick the two leak types that cost the most and write one fix for each, with an owner.
- Start coding rework on timesheets and receipts this week.
Free template: a change order template, so changes are signed and priced before the work, is in the contractor templates library.
What to review:
- The gap between bid and actual gross margin, job by job and as a monthly average
- Rework hours as a share of labor hours
- Approved changes not yet invoiced at closeout
Next lesson: plan cash 13 weeks ahead before you add a crew or take on bigger work.
Where MotionOps helps
In MotionOps, several of these leaks can be handled inside the work order:
- Change Order Requests: field technicians and account managers manage change orders inside the work order, so the full cost gets collected.
- Field Expense Tracking and AI Receipt Capture: purchases, returns, tools and rentals are recorded on the job, so receipts don’t get lost before the invoice.
- Cost Plus Automated Tracking: on cost-plus jobs, a photo of the materials receipt adds the cost to the project invoice.
- Close Work Order: close the job once it’s really done, after checking that the full approved amount is invoiced and the timesheets, expenses and approvals are attached.
- Job Costing: compares each job’s revenue with its actual labor and material costs.
See plans and pricing, or book a MotionOps demo.
Contractor Scaler Hub: Grow Profit, Not Just Revenue, lesson 3 of 5
- Previous lesson: Budget vs. Actual: Compare Estimated and Actual Job Costs, Line by Line
- Next lesson: 13-Week Cash Flow Forecast for Contractors: Plan Cash Before You Add a Crew
- Course toolkit: Grow Profit, Not Just Revenue toolkit (PDF)
- All courses and lessons: Contractor Scaler Hub



