Self-perform vs subcontract Division 08 — how GCs actually decide.
Most commercial general contractors do not self-perform Division 08 glazing work. The ones that do typically have one of three situations: they're a smaller GC with an in-house carpenter who can install a simple aluminum storefront; they're in a market with a shortage of qualified glazing subs; or they've had a bad experience with glazing subs and decided to bring it in-house.
In every other case, the GC hires a glazing subcontractor. Here's why — and the specific risk factors that make the decision clear.
What "self-perform glazing" actually requires
Glazing work under Division 08 is not finish carpentry. A commercial storefront or curtain wall installation requires:
- Manufacturer authorization: Most commercial glazing systems (ESWindows, Euro-Wall, TGP, PGT, and others) require authorized-installer status for warranty coverage. A GC self-performing without authorization voids the product warranty.
- Glass handling equipment: Commercial glazing requires vacuum lifts, glass dollies, and in some cases crane coordination for large curtain wall panels. This is not general tool-of-the-trade equipment for a GC's field crew.
- Code documentation: Florida requires Florida Product Approval (FPA) citations on permit applications for fenestration products. The GC's field supervisor must understand which FPA number applies to each product, how to cite it correctly, and what the installation requirements are per the NOA/FPA.
- HVHZ special inspections: Miami-Dade and Broward County require special inspector observation at anchor installation. A GC who doesn't do this routinely will miss the inspection sequence and face permit issues.
- Sealant specification management: The sealant used at glass-to-frame perimeters must match the product approval's specification exactly. A generic silicone that isn't listed in the NOA is a code deficiency regardless of whether it looks fine at inspection.
Risk Profile: Self-Perform vs Dedicated Sub
The risk calculus for a GC is straightforward when laid out clearly: