# §150.0(o): Duct sealing and leakage testing
What it requires
Every duct joint on a California residential HVAC system must be sealed at installation, then verified by a §110.7 leakage test:
- Sealing materials — mastic, mastic-and-mesh, or AHJ-approved foil tape (UL 181A/B listed). Standard cloth-backed duct tape does not qualify.
- All joints sealed — supply ducts, return ducts, plenum connections, register boots, AHU cabinet seams.
- Leakage test — a CHEERS ECC Rater pressurizes the duct system to 25 Pa and measures total leakage. Newly constructed: ≤ 5% total leakage. Alterations replacing < 40 linear feet of duct: a less stringent threshold or a smoke-test alternative.
§150.0(o) is the partner to §150.0(m) (duct insulation R-values) — together they define what "code-compliant ducts" means on a Title 24 project. The field-verification side lives in §110.7.
When it applies
- Newly constructed residential, every duct system.
- HVAC replacements in alteration scope where ≥ 40 linear feet of duct is replaced — the new metal must be sealed and tested.
- Additions adding new HVAC capacity with new ducts.
- HVAC alterations under 40 linear feet — sealing required, leakage testing scope depends on AHJ.
How we use it
The CF1R lists the duct leakage test type that applies (total leakage at 25 Pa, or leakage-to-outside) and the threshold the test must clear. The test is run by our ECC Rater credential as part of project close-out. The result lands on a CF3R Installation Certificate filed at CHEERS.
The designer-CF1R checklist surfaces duct location (attic vs conditioned space vs garage) before submission — the location drives which test variant applies and what the leakage threshold looks like.
Common gotchas
- Flex-duct fittings sealed only at the outer jacket — the inner liner is the air barrier and needs the mastic.
- Plenum boxes built site-by-the-tinner with un-sealed seams that pass smoke-test but fail the 25 Pa total-leakage threshold.
- Alteration projects that replace 35 linear feet of duct (just under the §150.2(b) trigger) and then add 10 more later — the cumulative replacement crosses the threshold retroactively and the AHJ wants the leakage test.