Older guest bathroom in Grapevine. Failed grout around the tub, dated trim, settling-crack drywall around the door frame, and a paint job that hadn't been touched in 12 years. The clients wanted it back to "looks new" without a full demo. Three-day multi-trade visit, multiple surprises, final invoice within $80 of estimate.
Guest bath in a 1990s Grapevine home, north of FM 1709. The clients had renovated the kitchen the year before and pushed the bath off the list. By the time they called, the grout in the tub surround was failing in two corners, the drywall above the door frame had a stair-step crack from settling, the trim was the original builder-grade colonial-style profile (out of style and beat up), and the paint was a yellowed warm white that nobody calls "warm white" anymore.
Their original ask was "can you just paint it?" The walkthrough caught the rest. Failing grout in a wet area means water was getting behind tile, which we needed to address before it became a much larger drywall replacement project. The settling crack was cosmetic but visible. The trim — they hadn't planned to touch, but the colonial profile was clashing with what they'd done in the kitchen.
Walked them through the scope expansion. They agreed: do it once, do it right.
Pulled old trim, repaired drywall crack, applied first coat of mud, masked the tub surround for the next day's grout work. Confirmed the substrate behind the failing grout was still solid (no cement-board damage) — this is where the project could have gone sideways and we caught it early.
Removed all old grout in the tub surround, re-grouted with color-matched sanded grout, replaced silicone caulk in corners. Second mud coat on the drywall crack. Sanded smooth at end of day. Caught a small additional drywall hairline above the towel bar that hadn't been visible day 1 — added to the patch list, no separate charge.
Installed new modern profile baseboard and door casing (poplar, paint-grade). Caulked all seams. Primed drywall patches and new trim. Two coats of paint on walls, ceiling, and trim. Vacuumed and wiped down.
Client walkthrough caught one missed touch-up where the new trim met the existing closet door (small caulk gap). Fixed on the spot. Took 20 minutes. Final invoice issued.
Two things didn't go to estimate. We're flagging them because they're the kind of thing that could turn into "scope creep" with a less-honest crew, and we want clients to see how we handle them.
Day 2 we noticed a small hairline crack above the towel bar that wasn't visible during the walkthrough (different lighting). Total of about 8 extra inches of crack to repair. We added it to the patch list, didn't charge for it. Took maybe 15 extra minutes.
Why we didn't charge: we should have caught it on the walkthrough. Our miss, our cost.
Trim materials estimate was $80. Actual cost at the lumber yard came in $42 higher because the casing profile they had in stock was 8-foot lengths (we'd estimated based on 12-foot which is more efficient with this profile). We absorbed $42 — small enough to not be worth a change order.
Why we absorbed: changes under $50 we don't bring back to the client. Estimate vs. invoice transparency matters more than the dollar amount.
Final invoice matched the estimate to the dollar. We absorbed about $80 of unplanned labor and materials (the extra hairline crack, the casing-length casing-cost overrun, the closet-door touch-up) but didn't pass it through because none of it crossed our internal threshold for a change order. The clients knew none of this until they read this case study — for them, the estimate they signed off on was the invoice they paid.
Photos help — even rough phone snaps. Multi-trade rooms (bath, kitchen, mudroom) usually need a walkthrough.
Replies within one business day.