Smoke and Carbon Monoxide Detector Placement Calculator

ANALife Services AuthorityNational Calculator Authority›Smoke and Carbon Monoxide Detector Placement 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; } }

Smoke and Carbon Monoxide Detector Placement Calculator

Determine the minimum recommended number of smoke detectors and carbon monoxide (CO) detectors for your home based on NFPA 72 and UL standards. Enter your home's details below.

Number of Floors (including basement):

Number of Bedrooms:

Has Basement?

Yes No

Attached Garage?

Yes No

Gas Appliances or Fuel-Burning Heating?

Yes No

Additional Common Rooms (living room, dining room, office, etc.):

Calculate

Fill in the details above and click Calculate.

function smoCalc() { var resultDiv = document.getElementById('smo-result');

var floors = parseInt(document.getElementById('smo-floors').value); var bedrooms = parseInt(document.getElementById('smo-bedrooms').value); var hasBasement= parseInt(document.getElementById('smo-has-basement').value); var hasGarage = parseInt(document.getElementById('smo-has-garage').value); var hasGas = parseInt(document.getElementById('smo-has-gas').value); var extraRooms = parseInt(document.getElementById('smo-extra-rooms').value);

// --- Input Validation --- if (isNaN(floors) || floors 10) { resultDiv.innerHTML = 'Please enter a valid number of floors (1–10).'; return; } if (isNaN(bedrooms) || bedrooms 20) { resultDiv.innerHTML = 'Please enter a valid number of bedrooms (0–20).'; return; } if (isNaN(extraRooms) || extraRooms 20) { resultDiv.innerHTML = 'Please enter a valid number of additional rooms (0–20).'; return; }

/ * ── SMOKE DETECTOR FORMULA (NFPA 72) ────────────────────────────────────── * * Minimum smoke detectors required: * * S = floors (1 per floor / hallway) * + bedrooms (1 inside each bedroom) * + bedrooms (1 outside each sleeping area / hallway) * + hasBasement (1 in basement if present) * + extraRooms (1 per additional common room) * * Note: "outside each sleeping area" means one per hallway serving bedrooms. * For simplicity one is added per bedroom cluster per floor; here one is added per * bedroom as a conservative upper bound matching NFPA 72 §29.8. * * ── CO DETECTOR FORMULA (NFPA 720 / UL 2034) ───────────────────────────── * * CO detectors are required on every floor AND outside each sleeping area * when gas appliances or fuel-burning heating are present, or when there * is an attached garage. * * coRequired = (hasGas == 1 || hasGarage == 1) ? 1 : 0 * * If coRequired: * CO = floors (1 per floor) * + bedrooms (1 outside each sleeping area) * + hasBasement (1 in basement near furnace) * + hasGarage (1 near garage entry) * * ── COMBINATION UNIT SAVINGS ────────────────────────────────────────────── * * Combo units can replace one smoke + one CO detector at the same location. * Overlap locations = min(S, CO) [practical overlap at shared positions] * Combo units recommended = min(S, CO) (one combo per shared location) * Remaining standalone smoke = S - comboUnits * Remaining standalone CO = CO - comboUnits * Total units needed = comboUnits + remainingSmoke + remainingCO /

// Smoke detectors var smokePerFloor = floors; var smokeInBedrooms = bedrooms; var smokeOutsideBeds = bedrooms; // 1 per bedroom outside (hallway coverage) var smokeBasement = hasBasement; var smokeExtraRooms = extraRooms;

var totalSmoke = smokePerFloor + smokeInBedrooms + smokeOutsideBeds + smokeBasement + smokeExtraRooms;

// CO detectors var coRequired = (hasGas === 1 || hasGarage === 1) ? 1 : 0; var totalCO = 0; if (coRequired) { totalCO = floors + bedrooms + hasBasement + hasGarage; }

// Combination unit savings var comboUnits = Math.min(totalSmoke, totalCO); var remainingSmoke = totalSmoke - comboUnits; var remainingCO = totalCO - comboUnits; var totalUnits = comboUnits + remainingSmoke + remainingCO;

// Build placement breakdown var smokePlacement = []; smokePlacement.push('• ' + floors + ' detector(s) in main floor hallways/stairwells (1 per floor)'); if (bedrooms > 0) { smokePlacement.push('• ' + bedrooms + ' detector(s) inside each bedroom'); smokePlacement.push('• ' + bedrooms + ' detector(s) outside sleeping areas (hallways near bedrooms)'); } if (hasBasement) smokePlacement.push('• 1 detector in the basement'); if (extraRooms > 0) smokePlacement.push('• ' + extraRooms + ' detector(s) in additional common rooms');

var coPlacement = []; if (coRequired) { coPlacement.push('• ' + floors + ' CO detector(s) on each floor'); if (bedrooms > 0) coPlacement.push('• ' + bedrooms + ' CO detector(s) outside sleeping areas'); if (hasBasement) coPlacement.push('• 1 CO detector in the basement (near furnace/water heater)'); if (hasGarage) coPlacement.push('• 1 CO detector near the attached garage entry'); } else { coPlacement.push('• No CO detectors required (no gas appliances or attached garage detected)'); }

var html = '### Results '; html += ''; html += 'Detector TypeMinimum Count'; html += 'Smoke Detectors' + totalSmoke + ''; html += 'CO Detectors' + totalCO + ''; html += 'Combination Units (Smoke + CO)' + comboUnits + ''; html += 'Standalone Smoke Only' + remainingSmoke + ''; html += 'Standalone CO Only' + remainingCO + ''; html += 'Total Units to Purchase' + totalUnits + ''; html += '';

html += '#### Smoke Detector Placement '; smokePlacement.forEach(function(p){ html += ''; }); html += '';

html += '#### CO Detector Placement '; coPlacement.forEach(function(p){ html += ''; }); html += '';

if (comboUnits > 0) { html += '💡 Tip: Using ' + comboUnits + ' combination smoke/CO detector(s) at shared locations can reduce total units from ' + (totalSmoke + totalCO) + ' to ' + totalUnits + '.

'; }

resultDiv.innerHTML = html; }

#### Formulas Used

Smoke Detectors (NFPA 72 §29.8):

S = Floors + Bedrooms (1 inside each bedroom) + Bedrooms (1 outside each sleeping area / hallway) + Basement (1 if basement present) + Extra Rooms (1 per additional common room)

CO Detectors (NFPA 720 / UL 2034) — required when gas appliances or attached garage present:

CO = Floors (1 per floor) + Bedrooms (1 outside each sleeping area) + Basement (1 near furnace/water heater if basement present) + Garage (1 near garage entry if attached garage present)

Combination Unit Optimization:

Combo Units = min(S, CO) Standalone Smoke = S − Combo Units Standalone CO = CO − Combo Units Total Units = Combo Units + Standalone Smoke + Standalone CO

#### Assumptions & References

More Calculators

Read Next

Event Venue Capacity Planner ANA › Life Services Authority › National Calculator Authority › Event Venue Capacity Planner .calc-container { max-width:...

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

References