Estimate Peak Demand using Water Supply Fixture Units (WSFU)
qty
qty
qty
qty
qty
qty
qty
units
Total Fixture Units (WSFU):–
Dominant System:–
Estimated Peak Flow (GPM):–
Estimated Peak Flow (LPM):–
function calculatePeakFlow() {
// Retrieve inputs
var wcTank = parseFloat(document.getElementById('wcTank').value) || 0;
var wcValve = parseFloat(document.getElementById('wcValve').value) || 0;
var lavatory = parseFloat(document.getElementById('lavatory').value) || 0;
var bathtub = parseFloat(document.getElementById('bathtub').value) || 0;
var kitchenSink = parseFloat(document.getElementById('kitchenSink').value) || 0;
var laundry = parseFloat(document.getElementById('laundry').value) || 0;
var hoseBibb = parseFloat(document.getElementById('hoseBibb').value) || 0;
var manualWsfu = parseFloat(document.getElementById('manualWsfu').value);
// Standard IPC/UPC WSFU Weights (Averaged for general estimation)
var w_wcTank = 2.2;
var w_wcValve = 10.0;
var w_lavatory = 1.0;
var w_bathtub = 2.0; // Covers showers too
var w_kitchenSink = 2.0; // Covers dishwasher typically connected
var w_laundry = 2.0;
var w_hoseBibb = 2.5;
// Calculate Total WSFU
var calculatedWsfu = (wcTank * w_wcTank) + (wcValve * w_wcValve) +
(lavatory * w_lavatory) + (bathtub * w_bathtub) +
(kitchenSink * w_kitchenSink) + (laundry * w_laundry) +
(hoseBibb * w_hoseBibb);
// Override if manual WSFU is entered
var totalWsfu = calculatedWsfu;
if (!isNaN(manualWsfu) && manualWsfu > 0) {
totalWsfu = manualWsfu;
}
if (totalWsfu 0) || (manualWsfu > 0 && document.getElementById('wcValve').value > 0);
// Note: For manual entry without fixture count, we default to Tank curve unless user implies otherwise.
// Here we assume Tank unless Valve inputs were used.
var gpm = 0;
// Implementation of modified Hunter's Curve approximations
// These formulas approximate the IPC Table E103.3(3)
if (isValveSystem) {
// Flush Valve Curve (Higher demand)
if (totalWsfu <= 5) gpm = 15; // Minimum viable flow for a flush valve usually requires significant supply
else if (totalWsfu <= 10) gpm = 27;
else if (totalWsfu <= 20) gpm = 35;
else if (totalWsfu <= 100) {
// Linear approx for range 20-100: (35 to 70 gpm)
gpm = 35 + ((totalWsfu – 20) * (35 / 80));
} else if (totalWsfu 500
gpm = 170 + ((totalWsfu – 500) * 0.25);
}
} else {
// Flush Tank Curve (Standard Residential)
if (totalWsfu <= 5) {
gpm = totalWsfu * 0.8;
if(gpm < 3) gpm = 3; // Minimum realistic flow
}
else if (totalWsfu <= 10) gpm = 4 + (totalWsfu – 5) * 0.8; // Ends at 8
else if (totalWsfu <= 20) gpm = 8 + (totalWsfu – 10) * 0.6; // Ends at 14
else if (totalWsfu <= 100) {
// Range 20-100 (14 to ~45 GPM)
gpm = 14 + ((totalWsfu – 20) * 0.38);
} else if (totalWsfu 500
gpm = 125 + ((totalWsfu – 500) * 0.22);
}
}
// Rounding
gpm = Math.round(gpm * 100) / 100;
var lpm = Math.round(gpm * 3.78541 * 100) / 100;
// Display Results
document.getElementById('displayWsfu').innerText = totalWsfu.toFixed(1);
document.getElementById('displaySystem').innerText = isValveSystem ? "Flush Valve (Commercial)" : "Flush Tank (Residential)";
document.getElementById('displayGpm').innerText = gpm + " GPM";
document.getElementById('displayLpm').innerText = lpm + " LPM";
document.getElementById('results').style.display = 'block';
}
Understanding Water Peak Flow Rate & WSFU
Calculating the Peak Flow Rate is a critical step in plumbing system design. It determines the maximum expected water demand at any given moment, ensuring that pipes are sized correctly to maintain adequate pressure and volume without over-engineering the system.
Why not just add up the flow of every tap?
If you summed the flow rate of every fixture in a building, you would get a massive number. However, it is statistically impossible for every shower, toilet, and sink to be used simultaneously. The Hunter's Curve method uses probabilities to estimate the realistic peak demand.
What are Water Supply Fixture Units (WSFU)?
A Water Supply Fixture Unit (WSFU) is a measure of the probable hydraulic load on a water supply system. Different fixtures are assigned a weight based on:
The volume of water they consume.
The duration of their use.
The frequency of their use.
For example, a standard flush tank toilet is typically rated at 2.2 WSFU, while a bathtub is rated at 2.0 WSFU. A commercial flushometer valve, which draws water very quickly, has a much higher rating of 10.0 WSFU.
How This Calculator Works
This calculator sums the WSFU of the fixtures you enter and applies the standard Hunter's Curve logic (adapted from IPC/UPC standards) to convert that load into a flow rate in Gallons Per Minute (GPM).
Flush Tanks vs. Flush Valves
The calculation differs significantly depending on whether your system uses flush tanks (gravity-fed residential toilets) or flush valves (high-pressure commercial flushometers).
Flush Tanks: Draw water slowly to refill a reservoir. The peak flow curve is gradual.
Flush Valves: Draw a high volume of water instantly to clear the bowl. This creates a much higher instantaneous peak demand, requiring larger pipe diameters.
Using the Results
Once you have the estimated Peak Flow (GPM), you can use pipe sizing charts (like those found in the International Plumbing Code) to determine the necessary diameter for your water service line and distribution pipes. Always consult local building codes and a professional plumber for final sizing.