Smoke and Carbon Monoxide Detector Placement Calculator
ANA›Life Services Authority›National 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
- NFPA 72 (National Fire Alarm and Signaling Code) §29.8: Requires smoke alarms on every level of the home, inside each bedroom, and outside each sleeping area.
- NFPA 720 and UL 2034: CO alarms required on every floor and outside each sleeping area when fuel-burning appliances or attached garages are present.
- U.S. Fire Administration (USFA): Recommends testing detectors monthly and replacing every 10 years (smoke) or 5–7 years (CO).
- This calculator provides minimum recommendations. Local building codes may require more detectors.
More Calculators
- Siding Coverage Calculator
- Window Repair Material Estimator
- Irrigation Zone Flow Rate Calculator
- Window Repair vs Replacement Cost Calculator
- Siding Repair Cost Estimator
- Canopy Clearance Calculator
- Restaurant Profit Margin Calculator
- Event Venue Capacity Planner
- Denver Hotel Occupancy Rate Calculator
- Denver Event Venue Capacity & Revenue Calculator
- Florida Tourism Tax Calculator
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;...