WATERPROOFING JOBS PRICED BY SF BUT TRACKED BY GUESS
Waterproofing contractors bid by the square foot. Hot-applied rubberized asphalt at $X/SF. Sheet membrane at $Y/SF. Liquid-applied at $Z/SF. But when the job runs, costs get tracked at the job level, not the SF level. You finish the project and you don’t know your real cost per SF by membrane type. The next bid uses last year’s gut number. SF unit cost tracking fixes this — labor hours per SF, material per SF, equipment per SF, by membrane category, so the next bid is built on real numbers.
You sell by the square foot. You should know your cost by the square foot. Most waterproofing subs we walk into don’t.
BID UNIT ≠ COST UNIT
Waterproofing pricing is unit-based. You quote a GC on 24,000 SF of hot-applied membrane at $4.85/SF. The bid math is clean — SF times rate equals bid. The cost math is messy. Labor, material, equipment, and crew time get charged to the job number. Nobody breaks it back out into cost per SF by membrane type. So when the next RFP comes in for 18,000 SF of similar work, the estimator uses a gut-number bid rate based on what felt right last time.
The result: some membrane types are getting bid too high (you’re losing bids you’d win at the real rate) and some are getting bid too low (you’re winning bids that lose money). You don’t know which is which because cost-per-SF by membrane type is invisible in the books.
You can’t price what you don’t measure. Bid units must match cost units.
THREE STRUCTURAL BREAKDOWNS
COST CODES DON’T SPLIT BY MEMBRANE TYPE
Most waterproofing job cost structures have one labor line, one material line, one equipment line per project. A job with both hot-applied below-grade and sheet membrane on the deck gets coded to the same labor bucket. By the time costs hit the books, you can’t separate what hot-applied labor cost from what sheet membrane labor cost. The data is gone. The fix is splitting cost codes by membrane category from day one of the job.
LABOR HOURS AREN’T LOGGED BY SF COMPLETED
Crews report hours to a job number. They don’t report SF completed by the day. So even with split cost codes, you have hours by membrane type but no production rate. You can’t answer “how many SF of hot-applied per labor hour did we hit on the bank job” because the daily SF wasn’t tracked. Production rates are the bridge between labor cost and SF unit cost. Without them, the math doesn’t close.
MATERIAL WASTE FACTORS ARE GUESSED
Sheet membrane has waste. Hot-applied has waste. Detail work around penetrations has waste. The waste factor differs by membrane, by detail count, by crew, by weather. Most estimators use a flat 8% or 10% across the board. Real waste runs 5% on simple flat slabs and 18% on penetration-heavy decks. Bidding 10% on a 18%-waste job loses the difference. Tracking actual waste by job type fixes the next bid.
BUILD SF UNIT COST TRACKING
SPLIT COST CODES BY MEMBRANE CATEGORY
One labor code per membrane type. Hot-applied labor separate from sheet membrane labor separate from liquid-applied labor separate from detail work. Same on material. Same on equipment if equipment differs (hot-applied needs a kettle; sheet membrane doesn’t). The code structure is the foundation — do it once, use it on every job.
LOG DAILY SF COMPLETED BY MEMBRANE TYPE
Foreman reports daily SF completed per membrane category at end of shift. Five minutes of data entry. The phone or tablet works. This is the production rate signal — SF completed divided by labor hours equals SF per hour. Track it by membrane, by crew, by job complexity. After three to four jobs you have real production rates the estimator can use.
SEPARATE DETAIL WORK FROM FIELD AREA
Penetrations, terminations, transitions, and patches run 4–6x the labor per linear foot vs. flat field area. If detail and field get coded together, the average rate hides both signals. Tracking detail labor in its own line lets you price detail-heavy decks at the actual cost — instead of subsidizing them with flat-field margin.
MEASURE ACTUAL WASTE FACTOR BY JOB TYPE
Material delivered minus material installed equals waste. Track it. Compare it to the bid assumption. If you bid 10% waste and the actual was 16%, the next similar job needs 16% in the bid (or a tighter detail plan). Waste is one of the most repeatable cost categories across jobs of similar geometry, which makes it one of the most fixable bid errors.
BUILD A BID-BACK RATE LIBRARY
After every job closes, the actual SF unit cost by membrane type goes into a rate library. Hot-applied labor: $X.XX/SF. Sheet membrane labor: $Y.YY/SF. Material with waste: $Z.ZZ/SF. The next bid uses the library, not a gut number. Within 6–12 months the library is dense enough to bid with confidence on any project type you’ve done before.
THE FINANCIAL CONTROL LAYER
SF unit cost tracking is operationally simple but financially structural. The PM and the estimator have to be reading the same data, in the same units, on the same cadence. If the books are tracking labor by job total and the estimator is bidding by SF, the two systems never converge. The estimator stays on gut, the books stay on job total, and the gap stays invisible.
The CFOS Job Profitability module ties production rates and SF unit costs back to the financial system. When labor hits the books, it’s already coded to membrane type and SF. The system computes cost-per-SF automatically and updates the rate library. The estimator pulls from a live data source instead of a stale spreadsheet. Same business, completely different bidding accuracy.
You don’t need more bids. You need bids built on numbers you can defend.