Chimney Height and Clearance Calculator

ANALife Services AuthorityNational Calculator Authority›Chimney Height and Clearance Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Chimney Height and Clearance Calculator

Calculate the minimum chimney height and clearance requirements based on the 3-2-10 rule and NFPA 211 standards. Ensure your chimney meets building code requirements for safe operation.

Roof Pitch (rise:12 run, e.g. 6 for 6:12)

Horizontal Distance from Chimney to Ridge (ft)

Height of Chimney Base Above Ground (ft)

Height of Roof at Chimney Penetration Above Ground (ft)

Height of Roof Ridge Above Ground (ft)

Calculate

function chiCalc() { var resultDiv = document.getElementById('chi-result');

var roofPitch = parseFloat(document.getElementById('chi-roof-pitch').value); var horizDist = parseFloat(document.getElementById('chi-horizontal-distance').value); var chimneyBaseHeight = parseFloat(document.getElementById('chi-chimney-base-height').value); var roofBaseHeight = parseFloat(document.getElementById('chi-roof-base-height').value); var ridgeHeight = parseFloat(document.getElementById('chi-ridge-height').value);

// Validation if (isNaN(roofPitch) || isNaN(horizDist) || isNaN(chimneyBaseHeight) || isNaN(roofBaseHeight) || isNaN(ridgeHeight)) { resultDiv.style.display = 'block'; resultDiv.className = 'calc-result calc-error'; resultDiv.innerHTML = '⚠ Please fill in all fields with valid numbers.'; return; } if (roofPitch 24) { resultDiv.style.display = 'block'; resultDiv.className = 'calc-result calc-error'; resultDiv.innerHTML = '⚠ Roof pitch must be between 0 and 24.'; return; } if (horizDist ridgeHeight) { resultDiv.style.display = 'block'; resultDiv.className = 'calc-result calc-error'; resultDiv.innerHTML = '⚠ Roof base height at chimney cannot exceed ridge height.'; return; } if (chimneyBaseHeight > roofBaseHeight) { resultDiv.style.display = 'block'; resultDiv.className = 'calc-result calc-error'; resultDiv.innerHTML = '⚠ Chimney base height cannot exceed roof height at penetration point.'; return; }

// ── Core Calculations (3-2-10 Rule, NFPA 211) ──────────────────────────────

// Rule 1: Chimney must extend at least 3 ft above the roof penetration point var minAboveRoof = 3.0; // ft

// Rule 2: Chimney must be at least 2 ft higher than any part of the roof // within 10 ft horizontally // Height of roof surface at the horizontal distance from chimney (using pitch) // pitch = rise / run => rise per foot = roofPitch / 12 var risePerFoot = roofPitch / 12.0;

// Roof height at 10 ft horizontal distance from chimney (toward ridge) var roofHeightAt10ft; if (horizDist >= 10) { // Chimney is more than 10 ft from ridge; roof height within 10 ft // rises from roofBaseHeight toward ridge roofHeightAt10ft = roofBaseHeight + (10.0 * risePerFoot); } else { // Chimney is within 10 ft of ridge; highest point within 10 ft is the ridge roofHeightAt10ft = ridgeHeight; }

// Also check the downslope side: roof drops away, so upslope is the concern // Highest roof point within 10 ft horizontal radius var highestRoofWithin10ft = Math.min(roofHeightAt10ft, ridgeHeight);

// Minimum chimney top height above ground from Rule 2 var minHeightRule2 = highestRoofWithin10ft + 2.0;

// Rule 3: Chimney must extend at least 3 ft above the roof at penetration var minHeightRule1 = roofBaseHeight + minAboveRoof;

// Rule 4: Minimum 10 ft total height above the appliance/fireplace opening // (approximated here as 10 ft above chimney base) var minHeightRule3 = chimneyBaseHeight + 10.0;

// The governing minimum chimney top height above ground var minChimneyTopHeight = Math.max(minHeightRule1, minHeightRule2, minHeightRule3);

// Minimum chimney height above the roof penetration point var minChimneyHeightAboveRoof = minChimneyTopHeight - roofBaseHeight;

// Clearance from chimney top to nearest obstruction within 10 ft var clearanceFromRidge = minChimneyTopHeight - ridgeHeight;

// Draft height: effective height of chimney above roof for draft purposes var effectiveDraftHeight = minChimneyTopHeight - chimneyBaseHeight;

// Determine which rule governs var governingRule = ''; if (minChimneyTopHeight === minHeightRule1 && minHeightRule1 >= minHeightRule2 && minHeightRule1 >= minHeightRule3) { governingRule = 'Rule 1 (3 ft above roof penetration)'; } else if (minChimneyTopHeight === minHeightRule2 && minHeightRule2 >= minHeightRule1 && minHeightRule2 >= minHeightRule3) { governingRule = 'Rule 2 (2 ft above highest roof within 10 ft)'; } else { governingRule = 'Rule 3 (10 ft minimum total chimney height)'; }

// Flashing clearance: minimum 2 in (0.167 ft) between chimney and roof deck var flashingClearance = 2.0; // inches

// ── Output ───────────────────────────────────────────────────────────────── resultDiv.style.display = 'block'; resultDiv.className = 'calc-result calc-success'; resultDiv.innerHTML = '### Chimney Height & Clearance Results ' + '' + 'ParameterValue' + 'Minimum Chimney Top Height (above ground)' + minChimneyTopHeight.toFixed(2) + ' ft' + 'Minimum Height Above Roof Penetration' + minChimneyHeightAboveRoof.toFixed(2) + ' ft' + 'Clearance Above Ridge (or highest point within 10 ft)' + clearanceFromRidge.toFixed(2) + ' ft' + 'Effective Draft Height (chimney base to top)' + effectiveDraftHeight.toFixed(2) + ' ft' + 'Minimum Flashing Clearance' + flashingClearance.toFixed(1) + ' in' + 'Governing Rule' + governingRule + '' + '' + 'ⓘ Always verify with local building codes and a certified chimney professional.

'; }

#### Formulas Used

3-2-10 Rule (NFPA 211 / IRC R1003.9):

Roof Height at Distance d (ft): H(d) = Roof Base Height + d × (Pitch / 12)

Clearance Above Ridge: Clearance = Chimney Top Height − Ridge Height

Effective Draft Height: Draft Height = Chimney Top Height − Chimney Base Height

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References