Carbon Monoxide Alarm Requirement and Count (IRC R315)
Where carbon monoxide alarms are required -- and where, unlike smoke alarms, they are not.
Example
You enter
- Separate sleeping areas (one alarm outside each) 2
- Fuel-fired appliance installed in the dwelling? no
- Attached garage? yes
- Stories 2
- Local amendment requiring one per story? no
You get
- Outside sleeping areas 2
- Inside bedrooms (R315.3 exception) 0
- From a per-story amendment 0
- Total alarms 2
Details, formula, and sources
CO alarms are required only where there is a SOURCE -- R315.2 triggers on a fuel-fired appliance installed in the dwelling OR an attached garage -- so an all-electric house with a detached garage legitimately has none, and the attached-garage trigger is the one people miss. And even when required, the alarm goes OUTSIDE each separate sleeping area, NOT in each bedroom; applying the smoke-alarm count to CO is how people buy several too many. The single case that puts one inside a bedroom is R315.3's exception, a fuel-burning appliance in that bedroom or its attached bathroom. A per-story rule is NOT in the model IRC -- many states amend one in, so it is an explicit toggle rather than a hidden default.
required when a fuel-fired appliance is installed in the dwelling OR the dwelling has an attached garage; alarms = one outside each separate sleeping area, plus one inside each bedroom containing a fuel-burning appliance in the bedroom or its attached bathroom, plus (only where a local amendment adds it) one per story beyond the first.
IRC R315.2 (where required, for new construction: outside each separate sleeping area in the immediate vicinity of the bedrooms, in dwelling units within which fuel-fired appliances are installed and in dwelling units that have attached garages) and IRC R315.3 (location, with the exception placing an alarm within a bedroom where a fuel-burning appliance is located in that bedroom or its attached bathroom).
Both provisions are short prescriptive sentences reproduced in state adoptions and building-department bulletins. No table is reproduced.
Estimate. AHJ and licensed professional govern.
Field names used by the API: sleeping_areas, has_fuel_appliance, has_attached_garage, stories, per_story_amendment, area_alarms, bedroom_alarms, story_alarms, required_alarms
- Trigger a fuel-fired appliance in the dwelling OR an attached garageIRC R315.2
- Base count one outside each separate sleeping area - NOT one per bedroomIRC R315.2 / R315.3
- Bedroom exception one inside a bedroom with a fuel-burning appliance in it or its attached bathroomIRC R315.3
- Per story NOT in the model IRC; an explicit opt-in toggle for local amendmentsstated scope limit
- Sleeping areas, not doors one alarm can serve several bedrooms off one hallthe code's 'immediate vicinity' wording
- Not checked combination alarms, interconnection, power, existing-dwelling triggers, panels, mounting heightstated scope limit