.fire-flow-calculator-wrapper {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
max-width: 800px;
margin: 0 auto;
padding: 20px;
background: #f9f9f9;
border: 1px solid #e0e0e0;
border-radius: 8px;
}
.ff-calc-container {
background: #ffffff;
padding: 25px;
border-radius: 8px;
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
margin-bottom: 30px;
border-left: 5px solid #d32f2f;
}
.ff-row {
display: flex;
flex-wrap: wrap;
gap: 20px;
margin-bottom: 20px;
}
.ff-col {
flex: 1;
min-width: 250px;
}
.ff-label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: #333;
}
.ff-input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
}
.ff-input:focus {
border-color: #d32f2f;
outline: none;
}
.ff-btn {
background-color: #d32f2f;
color: white;
padding: 12px 24px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
font-weight: bold;
width: 100%;
transition: background 0.3s;
}
.ff-btn:hover {
background-color: #b71c1c;
}
.ff-result {
margin-top: 25px;
padding: 20px;
background-color: #ffebee;
border-radius: 4px;
display: none;
}
.ff-result h3 {
margin-top: 0;
color: #b71c1c;
}
.ff-metric {
font-size: 2em;
font-weight: bold;
color: #d32f2f;
}
.ff-sub-metric {
font-size: 0.9em;
color: #666;
margin-top: 5px;
}
.ff-article h2 {
color: #2c3e50;
border-bottom: 2px solid #d32f2f;
padding-bottom: 10px;
margin-top: 30px;
}
.ff-article p, .ff-article li {
line-height: 1.6;
color: #444;
}
.ff-article ul {
margin-left: 20px;
}
function validateInput(el) {
if (el.value 100) el.value = 100;
}
function calculateFireFlow() {
var length = parseFloat(document.getElementById('ffLength').value);
var width = parseFloat(document.getElementById('ffWidth').value);
var floors = parseFloat(document.getElementById('ffFloors').value);
var involvement = parseFloat(document.getElementById('ffInvolvement').value);
if (isNaN(length) || isNaN(width) || length <= 0 || width <= 0) {
alert("Please enter valid positive numbers for building dimensions.");
return;
}
if (isNaN(floors) || floors < 1) floors = 1;
if (isNaN(involvement) || involvement < 0) involvement = 100;
// NFA Formula: (Length * Width) / 3
// Adjusted for involvement percentage and multiple floors
var floorArea = length * width;
var baseFlow = floorArea / 3;
var totalFlow = baseFlow * floors * (involvement / 100);
// Rounding logic: Standard practice often rounds to nearest 10 or 25,
// but we will provide the exact integer and a rounded display.
var flowRounded = Math.round(totalFlow);
document.getElementById('gpmResult').innerHTML = flowRounded.toLocaleString();
document.getElementById('areaResult').innerHTML = (floorArea * floors).toLocaleString();
document.getElementById('ffResult').style.display = 'block';
}
Understanding Fire Flow Rate Calculation
Fire flow is a critical calculation used by firefighters and engineers to determine the quantity of water required to extinguish a fire in a specific building. The National Fire Academy (NFA) formula utilized in this calculator is widely accepted for rapid estimation during pre-incident planning and on-scene assessments.
The NFA Formula Explained
The National Fire Academy developed a simplified formula to estimate needed fire flow (NFF) based on the building's geometry. The core logic assumes that the volume of the structure correlates directly with the fuel load and, consequently, the water required to cool the fire.
The standard formula is:
NFF = (Length × Width) / 3
- Length (ft): The length of the involved structure.
- Width (ft): The width of the involved structure.
- Result: Gallons Per Minute (GPM).
Adjustments for Involvement and Floors
Real-world scenarios rarely involve a "clean" single-story fire with 100% involvement immediately. Therefore, this calculator includes adjustments for:
- Percentage of Involvement: If only 50% of the floor is on fire, the water requirement is reduced proportionally.
- Number of Floors: For multi-story fires, the total fire load increases. This calculator sums the requirements for all involved floors.
Why Accurate Calculation Matters
Underestimating fire flow can lead to rapid fire spread and endanger personnel, while overestimating can result in unnecessary water damage or resource depletion. Knowing the Gallons Per Minute (GPM) requirement helps incident commanders decide:
- How many pumpers are needed (e.g., a standard engine pumps 1,000–1,500 GPM).
- The size of hose lines required (e.g., 1¾" handlines vs. master streams).
- Whether local hydrants can supply the necessary volume.
Example Calculation
Consider a commercial building that is 60 feet long and 40 feet wide with 100% involvement on a single floor:
- Area = 60 × 40 = 2,400 sq. ft.
- Formula = 2,400 / 3
- Needed Fire Flow = 800 GPM
This suggests that a single high-capacity pumper or two standard lines would be necessary to control the blaze effectively.