Hydrant Count and Spacing for a Required Fire Flow
How many hydrants a site needs, from two independent requirements that both have to be satisfied.
Example
You enter
- Required fire flow (gpm) 3000
- Credited flow per hydrant (gpm) 1000
- Frontage or road length served (ft) 1200
- Required average spacing (ft) 400
- Maximum distance from any point to a hydrant (ft) 225
You get
- Hydrants by the flow rule 3
- Hydrants by the spacing rule 4
- Actual spacing (ft) 400
- Worst distance (ft) 200
Details, formula, and sources
The FLOW requirement is that enough hydrants be reachable to deliver the required fire flow at once, at whatever each hydrant can actually be credited for -- which is set by the main rather than by the hydrant, and is the number a flow test produces. The SPACING requirement is geometric: no point along the frontage may sit farther than a specified distance from a hydrant, which caps how far apart they can be regardless of how much water each one makes. The code assigns both the average spacing and the maximum distance as a function of the required fire flow, in a table; those values are entered here rather than reproduced, and the geometry is the part a fire marshal actually checks against the site plan. A site requiring 3,000 gpm with hydrants credited at 1,000 gpm each needs 3 by flow, but 1,200 ft of frontage at a 400 ft average spacing needs ceil(1200/400) + 1 = 4, so the spacing rule governs -- a site can have all the water it needs and still be short a hydrant. Four hydrants across 1,200 ft sit 400 ft apart, which puts the worst point 200 ft from a hydrant, inside a 225 ft limit. Credit each hydrant at only 750 gpm, as a weaker main would, and the flow requirement rises to 4 as well, so the two tie with no margin on either -- the case where a fifth hydrant or a looped main is the real answer. A screen; the International Fire Code appendix tables, the flow test, and the fire marshal govern.
hydrants_by_flow = ceil(required_flow_gpm / credited_flow_per_hydrant_gpm); hydrants_by_frontage = ceil(frontage_ft / average_spacing_ft) + 1; governing_count = max of the two; actual_spacing_ft = frontage_ft / (count - 1); worst_distance_ft = actual_spacing_ft / 2.
Hydrant count from the two independent requirements -- enough hydrants to deliver the required fire flow at the credited flow per hydrant, and an average spacing with a maximum distance from any point on the frontage. The International Fire Code appendix assigns both spacing values as a function of required fire flow in a table; those values are entered rather than reproduced, and the section is cited by name. The flow test and the fire marshal govern.
The counts and spacing are geometry on values the user enters; no code table is reproduced.
Estimate. AHJ and licensed professional govern.
Field names used by the API: required_flow_gpm, credited_flow_per_hydrant_gpm, frontage_ft, average_spacing_ft, max_distance_ft, hydrants_by_flow, hydrants_by_frontage, actual_spacing_ft, worst_distance_ft
- Two rules flow (enough hydrants at the credited flow) and spacing (a maximum distance from any point); the larger count governsInternational Fire Code appendix
- Credited flow set by the main, not by the hydrant; it is what a flow test producesfire flow testing practice
- Table entered, not mirrored the average spacing and maximum distance values come from the code table and are entered by the userInternational Fire Code appendix