Calculate the maximum water flow rate required to achieve a specific UV sterilization dosage. This tool is essential for aquariums, pond management, and residential water treatment systems to ensure effective pathogen neutralization.
Enter the flow rate (GPM or LPH) listed on the UV unit's spec sheet.
Standard rating is usually 30 mJ/cm² (or 30,000 µWs/cm²). Check your manual.
Enter 30 for clear water/bacteria, 40 for NSF Class A, or 180+ for parasites/algae.
Maximum Allowed Flow Rate
0 GPM
Assuming input was GPM
Effectiveness Multiplier
1.0x
You must slow the flow by this factor to hit your target.
How to Use This UV Calculator
UV sterilization effectiveness is governed by the "Contact Time" principle. The longer the water is exposed to the UV light, the higher the UV dose (fluence) delivered to pathogens. Since you cannot easily change the physical size of the reactor or the wattage of the bulb, the only variable you can control is the Flow Rate.
To use this calculator effectively, you need three numbers:
Rated Flow: The flow rate advertised on the box (e.g., 10 Gallons Per Minute).
Rated Dose: The dosage the manufacturer guarantees at that rated flow (usually 30 mJ/cm² for industry standards).
Target Dose: The dosage you actually need for your specific application (e.g., killing tough viruses or algae).
Note: This calculator assumes a linear relationship for estimation purposes. It assumes water clarity (UV Transmittance) remains constant.
Common UV Dosage Requirements (mJ/cm²)
Different pathogens require different levels of UV energy to be neutralized. If your flow rate is too fast, the pathogens pass through the chamber without receiving a lethal dose.
Target Organism / Application
Required Dose (mJ/cm²)
Notes
Standard Bacteria (E. Coli)
6 – 10
Very easy to kill.
General Sterilization (Industry Std)
30
Standard drinking water target.
NSF Class A (Drinking Water)
40
Required for certification.
Free Floating Algae (Green Water)
30 – 50
Common for ponds.
Protozoa (Giardia, Cryptosporidium)
10 – 20
Resistant to chlorine, weak to UV.
Viruses (Rotavirus, Hepatitis)
30 – 40
Requires standard dose.
Persistent Algae / Parasites (Ich)
180 – 200+
Requires very slow flow rates (aquariums).
Understanding Flow Rate vs. UV Dose
There is an inverse relationship between flow rate and UV dose. If you cut the flow rate in half, you effectively double the exposure time, thereby doubling the dose.
For Aquarium Owners
If you are battling parasites like Ich or stubborn algae, the standard flow rate listed on your UV sterilizer box is likely too fast. Manufacturers often rate their units for "clarification" (killing free-floating bacteria/algae) which requires low doses (15-30 mJ/cm²). To reach sterilization levels for parasites (180+ mJ/cm²), you often need to reduce the flow to 1/6th of the manufacturer's rating.
For Home Water Systems
Never exceed the manufacturer's rated flow rate if you are relying on the UV system for potability (safety). If your home uses 12 GPM peak flow, you must buy a UV system rated for at least 12 GPM at 30-40 mJ/cm². Using this calculator, you can determine if an undersized unit can work by restricting water flow at the faucet.
function calculateFlowRate() {
// 1. Get input values
var ratedFlow = parseFloat(document.getElementById("ratedFlow").value);
var ratedDose = parseFloat(document.getElementById("ratedDose").value);
var targetDose = parseFloat(document.getElementById("targetDose").value);
// 2. Validation
if (isNaN(ratedFlow) || ratedFlow <= 0) {
alert("Please enter a valid Rated Flow Rate.");
return;
}
if (isNaN(ratedDose) || ratedDose <= 0) {
alert("Please enter a valid Rated Dosage.");
return;
}
if (isNaN(targetDose) || targetDose <= 0) {
alert("Please enter a valid Target Dosage.");
return;
}
// 3. Calculation Logic
// Formula: Flow1 * Dose1 = Flow2 * Dose2 (Inverse proportionality)
// Therefore: Flow2 (Target) = (Flow1 * Dose1) / Dose2
var totalUVPowerFactor = ratedFlow * ratedDose;
var requiredFlow = totalUVPowerFactor / targetDose;
// Calculate efficiency multiplier (How much slower/faster compared to rated)
var multiplier = requiredFlow / ratedFlow;
var multiplierText = "";
if (multiplier < 1) {
// Determine reduction factor (e.g. 1/3 speed)
var factor = 1 / multiplier;
multiplierText = "Reduce flow to 1/" + factor.toFixed(1) + " of rated speed";
} else {
multiplierText = multiplier.toFixed(2) + "x rated speed (Faster flow allowed)";
}
// 4. Update UI
var resultContainer = document.getElementById("result-container");
var maxFlowResult = document.getElementById("maxFlowResult");
var efficiencyResult = document.getElementById("efficiencyResult");
var flowUnitNote = document.getElementById("flowUnitNote");
// Display results
resultContainer.style.display = "block";
maxFlowResult.innerHTML = requiredFlow.toFixed(2) + ' units';
efficiencyResult.innerText = multiplierText;
// Update unit note based on typical usage context
flowUnitNote.innerText = "If input was GPM, this is GPM. If LPH, this is LPH.";
}