Accurately sizing a grease interceptor is crucial for commercial kitchen compliance and plumbing health. Use this calculator to determine the required Gallons Per Minute (GPM) flow rate based on fixture dimensions, following standard plumbing formulas (like PDI G-101).
Fixture Dimensions
Enter dimensions for one compartment of your sink.
Sizing Results:
Total Fixture Volume: Gallons
Required Flow Rate: GPM
Recommended Trap Capacity: Pounds (lbs)
Please enter valid positive numbers for all dimensions and compartment count.
Understanding Grease Trap Sizing Formulas
The sizing of hydromechanical grease interceptors is typically governed by the Plumbing and Drainage Institute standard PDI G-101 or local plumbing codes (like UPC or IPC). The sizing criteria are based on the volume of water the fixtures can hold and how quickly that water drains.
The standard formula used by this calculator is:
Calculate Total Volume (Cubic Inches): Length × Width × Depth × Number of Compartments.
Convert to Gallons: Total Cubic Inches ÷ 231 (since there are 231 cubic inches in a gallon).
Apply Fill Factor: Multiply total gallons by 0.75. We assume sinks are only filled to about 75% capacity to avoid overflow.
Determine Flow Rate (GPM): The standard assumes a 1-minute drainage period for peak flow. Therefore, the functional gallon capacity equals the required Gallons Per Minute (GPM) rating of the trap.
Example Calculation
Consider a standard commercial 3-compartment pot sink. Let's assume each compartment measures 24 inches long, 24 inches wide, and 14 inches deep.
Volume per compartment: 24″ x 24″ x 14″ = 8,064 cubic inches.
Total Volume (3 compartments): 8,064 x 3 = 24,192 cubic inches.
Total Gallons: 24,192 / 231 = 104.73 gallons.
Functional Volume (75% fill): 104.73 x 0.75 = 78.55 gallons.
In this scenario, because the drainage period is assumed to be 1 minute, the required grease trap flow rate is 79 GPM (rounding up is recommended). A trap rated for 75 GPM might be undersized, so the next standard size up (often 100 GPM) would be chosen.
Note: Grease trap capacity in pounds is typically double the GPM rating. A 79 GPM trap should hold approximately 158 lbs of grease.
function calculateGreaseTrapFlow() {
var lengthInput = document.getElementById("trapLength");
var widthInput = document.getElementById("trapWidth");
var depthInput = document.getElementById("trapDepth");
var countInput = document.getElementById("trapCount");
var length = parseFloat(lengthInput.value);
var width = parseFloat(widthInput.value);
var depth = parseFloat(depthInput.value);
var count = parseInt(countInput.value);
var resultDiv = document.getElementById("trapResult");
var errorDiv = document.getElementById("trapError");
if (isNaN(length) || length <= 0 || isNaN(width) || width <= 0 || isNaN(depth) || depth <= 0 || isNaN(count) || count <= 0) {
errorDiv.style.display = "block";
resultDiv.style.display = "none";
return;
}
errorDiv.style.display = "none";
// 1. Calculate total cubic inches
// Volume of one compartment = L * W * D
var singleCompartmentVolCI = length * width * depth;
var totalVolCI = singleCompartmentVolCI * count;
// 2. Convert cubic inches to gallons (231 cubic inches per gallon)
var totalGallons = totalVolCI / 231;
// 3. Apply Fill Factor (standard is 75% or 0.75)
// We assume the sink is not filled to the absolute brim.
var functionalGallons = totalGallons * 0.75;
// 4. Determine GPM assuming a 1-minute drain time (standard procedure)
// GPM = Functional Gallons / 1 minute
var gpm = functionalGallons;
// 5. Calculate Capacity in Pounds (Standard is GPM * 2)
var capacityLbs = gpm * 2;
document.getElementById("resTotalGallons").innerText = totalGallons.toFixed(2);
// Rounding GPM up to nearest whole number is common practice, but showing 2 decimals here for accuracy.
document.getElementById("resGPM").innerText = gpm.toFixed(2);
document.getElementById("resLbs").innerText = capacityLbs.toFixed(0);
resultDiv.style.display = "block";
}
.calculator-container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
font-family: sans-serif;
line-height: 1.6;
}
.calc-box {
background: #fdfdfd;
border: 1px solid #e0e0e0;
padding: 25px;
border-radius: 8px;
margin-bottom: 30px;
}
.input-group {
margin-bottom: 15px;
}
.input-group label {
display: block;
margin-bottom: 5px;
font-weight: 600;
}
.input-group input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
max-width: 400px;
}
button {
background-color: #0056b3;
color: white;
padding: 12px 24px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
font-weight: bold;
}
button:hover {
background-color: #004494;
}