FLOORING: THE WET SLAB
Moisture in the concrete substrate is the dominant commercial flooring failure mode. Adhesives break down under slab alkalinity (water-based adhesives distress at pH 10+), floors bubble and delaminate, and the replacement bill runs into six and seven figures.
This page covers one problem. The full picture for this trade, including the other places margin leaks, is on the flooring operating system page.
WHERE THE MONEY GOES.
Moisture in the concrete substrate is the dominant commercial flooring failure mode. Adhesives break down under slab alkalinity (water-based adhesives distress at pH 10+), floors bubble and delaminate, and the replacement bill runs into six and seven figures. Industry-wide, moisture failures have cost hundreds of millions of dollars in flooring replacements.
THE COST, SOURCED.
Navigators v. Moorefield. On a Best Buy build, the GC knew from tests the slab was emitting moisture above the spec threshold, proceeded anyway, and handed the flooring sub a liability waiver. The floor failed, the settlement hit $1.3 million, and the court held the deliberate installation wasn't a covered "occurrence" under the CGL policy. The lesson cuts both ways: the sub's waiver saved it; a sub who installs on a known-wet slab without one owns the failure.
"Curing and drying aren't the same thing." Concrete reaches strength at 28 days and can still be far too wet to floor; older uncovered slabs often have no vapor retarder at all. (Spartan Surfaces)
THE NUMBER TO MEASURE IT AGAINST.
Flooring contractors run about % net profit at $1M to $5M, rising to roughly 8% at $5M to $10M. The CFOS target at $1M to $5M is10%, set at 10 percent before taxes or 3.5 points better than your trade's average at your revenue, whichever is higher. A problem like this one lives in the distance between those two figures rather than in a loss on any single job.
Gross margin over the same bands runs % to 21%, against a CFOS target of 10%.
THE SYSTEM THAT FIXES THIS.
Cost codes built against the estimate, so a job can be read while it runs.
