You sold the job at a 38% margin. The owner's happy, the customer signed, everyone moves on. Then the job closes out and somehow you're sitting at 24%. Nobody stole anything. No single thing went wrong. The money just leaked out a little at a time between the handshake and the final walkthrough.
If you've run flooring jobs for any length of time, you've felt this. The bid looks great. The install doesn't. And by the time you notice, the job's already done and the next three are waiting.
Here's where it actually goes.
The bid was optimistic, not wrong
Most "lost" margin was never really there. It got assumed away on the estimate.
The classic one is waste. You bid LVP at a clean square-footage number and ordered to the same number, then the install had three rooms running diagonal and a stair landing nobody measured for. Now you're a carton and a half short, you're paying a rush freight charge, and the installer sat for half a day waiting. That's not a field problem. That's a takeoff that didn't account for pattern direction and cut waste.
Same story with transitions, trim, and prep. They're easy to leave off a quick bid and expensive to eat later. If your estimating process doesn't force those line items every time, they'll quietly come out of your margin instead.
The schedule slipped and the crew ate the gap
Here's a number most owners never track: installer idle time. Material shows up late, the GC isn't ready, the previous trade isn't out — and your crew is standing in a driveway getting paid.
A half-day of idle time on a two-man crew can wipe out a point or two of margin by itself. Do it across a month and it's real money. The fix isn't yelling at anybody. It's scheduling that actually reflects material lead times instead of optimistic guesses.
The change order got "handled" instead of charged
This one's the quiet killer. The homeowner asks for an extra closet, or the subfloor's worse than anyone thought and needs leveling. Your installer, being a decent human, just does it. Maybe mentions it to the PM, maybe not.
That work has a real cost — labor, material, time — and if it never turns into a billed change order, you absorbed it. I've seen shops eat thousands a month this way and never see it, because it never shows up as a line anywhere. It just shows up as a thinner job.
If you want the full breakdown on this, I wrote a whole post on how to price a change order so you stop absorbing field costs.
The go-back nobody counted
You finished the job. Two weeks later there's a hollow spot, or a seam lifted, or the customer's unhappy with a transition. Somebody drives back out, spends two hours, uses a little material, and fixes it.
Nobody logs it as a cost against that job. But it is one. A go-back is unbilled labor, unbilled material, and unbilled windshield time — and it almost always comes straight off a job you already thought was closed and profitable. (More on what that actually costs you here.)
So what do you actually do about it
You don't need a finance degree. You need to make the leaks visible:
- Bid the real scope. Force waste, prep, trim, and transitions onto every estimate, every time — not when you remember.
- Track idle time as a cost. If a crew sat, write it down. You can't fix what you don't see.
- Charge every change. Build a habit (and a tool) where extra field work becomes a billed change order before it becomes free labor.
- Log every go-back against its job. Even a 30-minute return is a cost. Tie it back to the original job so you know your real margin, not your bid margin.
The difference between the job you sold and the job you produced is where flooring shops live or die. Most owners only see the sold number. The ones who make money watch both.
If you want sold margin and produced margin sitting side by side instead of living in your head, that's exactly what FloorStrategy is built to do — free until July 22.
FAQ
Why does my bid margin never match my final margin? Because the bid is a forecast and the install is reality. Waste, idle crew time, uncharged change orders, and go-backs all hit after the bid is locked. The gap between the two is normal — the goal is to make it small and visible.
Isn't some margin loss just unavoidable? Some, yes. Subfloors surprise you and weather happens. But most of the loss is from things you could charge for or plan for and simply didn't. That part is recoverable.
How do I know which jobs are losing money? Track produced margin per job, not just sold margin. When you can see the two next to each other, the problem jobs stop hiding in your monthly average.
