Sewer Line Slope & Grade Calculator

ANALife Services AuthorityNational Calculator Authority›Sewer Line Slope & Grade Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Sewer Line Slope & Grade Calculator

Calculate sewer pipe slope (grade), elevation drop, flow velocity using Manning's equation, and minimum/maximum slope requirements for proper sewer design.

Pipe Length (ft)

Pipe Diameter (inches)

Calculate From

Slope (% grade) Slope (ft/ft) Elevation Drop (ft)

Slope (% grade)

Slope (ft/ft)

Elevation Drop (ft)

Manning's Roughness Coefficient (n)

PVC / Plastic pipe — n = 0.013 Smooth concrete — n = 0.012 Concrete (typical) — n = 0.015 Vitrified clay pipe (VCP) — n = 0.013 Corrugated metal pipe — n = 0.025 Custom value

Custom Manning's n

Flow Depth Ratio (d/D) — Full pipe = 1.0

Calculate

function sewToggleMode() { var mode = document.getElementById('sew_calc_mode').value; document.getElementById('sew_input_slope_pct').style.display = (mode === 'slope_pct') ? '' : 'none'; document.getElementById('sew_input_slope_ft').style.display = (mode === 'slope_ft') ? '' : 'none'; document.getElementById('sew_input_drop').style.display = (mode === 'drop') ? '' : 'none'; }

document.getElementById('sew_manning_n').addEventListener('change', function() { document.getElementById('sew_custom_n_group').style.display = (this.value === 'custom') ? '' : 'none'; });

function sewCalc() { var resultDiv = document.getElementById('sew_result'); resultDiv.style.display = 'block'; resultDiv.className = 'calc-result';

// --- Gather inputs ---
var L = parseFloat(document.getElementById('sew_pipe_length').value);
var D_in = parseFloat(document.getElementById('sew_pipe_diameter').value);
var mode = document.getElementById('sew_calc_mode').value;
var nSel = document.getElementById('sew_manning_n').value;
var n = (nSel === 'custom')
? parseFloat(document.getElementById('sew_custom_n').value)
parseFloat(nSel); var dD = parseFloat(document.getElementById('sew_flow_depth_ratio').value);

// --- Validation --- var errors = []; if (isNaN(L) || L 0.1) errors.push('Manning's n must be between 0.001 and 0.1.'); if (isNaN(dD) || dD 1.0) errors.push('Flow depth ratio (d/D) must be between 0.01 and 1.0.');

var slope_ft; // ft/ft if (mode === 'slope_pct') { var sp = parseFloat(document.getElementById('sew_slope_pct').value); if (isNaN(sp) || sp 0) slope_ft = drop / L; }

if (errors.length > 0) { resultDiv.className = 'calc-result calc-error'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }

// --- Core calculations --- // Pipe dimensions var D_ft = D_in / 12.0; // diameter in feet var R_full = D_ft / 4.0; // hydraulic radius for full pipe (A/P = (piD^2/4)/(piD) = D/4)

// Elevation drop var elevation_drop = slope_ft * L; // ft var slope_pct = slope_ft * 100.0; var slope_in_per_ft = slope_ft * 12.0; // inches per foot

// --- Manning's equation for full-pipe flow --- // Q_full = (1.486 / n) * A * R^(2/3) * S^(1/2) [US customary] // V_full = (1.486 / n) * R^(2/3) * S^(1/2) var A_full = Math.PI * Math.pow(D_ft, 2) / 4.0; // ft² var V_full = (1.486 / n) * Math.pow(R_full, 2/3) * Math.pow(slope_ft, 0.5); // ft/s var Q_full = V_full * A_full; // ft³/s var Q_full_gpm = Q_full * 448.831; // gal/min

// --- Partial flow (d/D ratio) using geometric relationships --- // Central angle theta (radians) from d/D ratio // d = D/2 * (1 - cos(theta/2)) => cos(theta/2) = 1 - 2(d/D) // theta = 2 * arccos(1 - 2(d/D)) var theta = 2.0 * Math.acos(1.0 - 2.0 * dD); // radians

// Partial flow area: A_p = (D²/8) * (theta - sin(theta)) var A_partial = (Math.pow(D_ft, 2) / 8.0) * (theta - Math.sin(theta));

// Wetted perimeter: P_p = D/2 * theta var P_partial = (D_ft / 2.0) * theta;

// Hydraulic radius: R_p = A_p / P_p var R_partial = A_partial / P_partial;

// Manning's velocity for partial flow var V_partial = (1.486 / n) * Math.pow(R_partial, 2/3) * Math.pow(slope_ft, 0.5); // ft/s var Q_partial = V_partial * A_partial; // ft³/s var Q_partial_gpm = Q_partial * 448.831;

// Convert velocities to ft/min and mph var V_full_fpm = V_full * 60.0; var V_partial_fpm = V_partial * 60.0; var V_full_mph = V_full * 0.681818; var V_partial_mph = V_partial * 0.681818;

// --- Minimum slope check (self-cleaning velocity >= 2.0 ft/s) --- // V_min = 2.0 ft/s => S_min = (V_min * n / 1.486)^2 / R^(4/3) var V_min = 2.0; // ft/s minimum self-cleaning velocity var S_min_full = Math.pow((V_min * n) / (1.486 * Math.pow(R_full, 2.0/3.0)), 2.0); var S_min_pct = S_min_full * 100.0;

// Maximum velocity check (erosion limit ~10 ft/s) var V_max = 10.0; // ft/s var selfCleanOK = V_partial >= V_min; var erosionOK = V_partial = codeMinSlope) { slopeStatus = '✓ Meets IPC/UPC minimum slope of ' + codeMinSlope + '% for ' + codeDiam + '" pipe'; } else { slopeStatus = '✗ Below IPC/UPC minimum slope of ' + codeMinSlope + '% for ' + codeDiam + '" pipe'; } }

var velocityStatus = ''; if (!selfCleanOK) { velocityStatus = '✗ Velocity below 2.0 ft/s self-cleaning minimum'; } else if (!erosionOK) { velocityStatus = '✗ Velocity exceeds 10.0 ft/s erosion limit'; } else { velocityStatus = '✓ Velocity within acceptable range (2.0 – 10.0 ft/s)'; }

resultDiv.innerHTML = '### Results ' + '' + 'Parameter' + 'Value' +

'Slope (% grade)' + '' + slope_pct.toFixed(4) + ' %' +

'Slope (ft/ft)' + '' + slope_ft.toFixed(6) + ' ft/ft' +

'Slope (in/ft)' + '' + slope_in_per_ft.toFixed(4) + ' in/ft' +

'Elevation Drop' + '' + elevation_drop.toFixed(4) + ' ft (' + (elevation_drop * 12).toFixed(3) + ' in)' +

'Full-Pipe Flow (d/D = 1.0)' +

'Flow Area (full)' + '' + A_full.toFixed(4) + ' ft²' +

'Hydraulic Radius (full)' + '' + R_full.toFixed(4) + ' ft' +

'Flow Velocity (full)' + '' + V_full.toFixed(3) + ' ft/s (' + V_full_fpm.toFixed(1) + ' ft/min)' +

'Flow Rate (full)' + '' + Q_full.toFixed(4) + ' ft³/s (' + Q_full_gpm.toFixed(1) + ' GPM)' +

'Partial-Pipe Flow (d/D = ' + dD.toFixed(2) + ')' +

'Flow Depth' + '' + (dD * D_in).toFixed(3) + ' in (' + (dD * D_ft).toFixed(4) + ' ft)' +

'Flow Area (partial)' + '' + A_partial.toFixed(4) + ' ft²' +

'Hydraulic Radius (partial)' + '' + R_partial.toFixed(4) + ' ft' +

'Flow Velocity (partial)' + '' + V_partial.toFixed(3) + ' ft/s (' + V_partial_fpm.toFixed(1) + ' ft/min)' +

'Flow Rate (partial)' + '' + Q_partial.toFixed(4) + ' ft³/s (' + Q_partial_gpm.toFixed(1) + ' GPM)' +

'Design Checks' +

'Min. Slope for Self-Cleaning (full pipe)' + '' + S_min_pct.toFixed(4) + ' %' +

(codeMinSlope !== null ? 'Code Slope Check' + '' + slopeStatus + '' : '') +

'Velocity Check' + '' + velocityStatus + '' +

''; }

#### Formulas Used

Slope:

S (ft/ft) = Elevation Drop (ft) / Pipe Length (ft)

S (%) = S (ft/ft) × 100

S (in/ft) = S (ft/ft) × 12

Manning's Equation — Full Pipe (US Customary):

V = (1.486 / n) × R2/3 × S1/2

Q = V × A

Where: V = velocity (ft/s), n = Manning's roughness, R = hydraulic radius (ft) = D/4 for full pipe, S = slope (ft/ft), A = cross-sectional area (ft²) = π D² / 4

Partial Flow Geometry (d/D ratio):

Central angle: θ = 2 × arccos(1 − 2 × d/D)

Partial area: Ap = (D² / 8) × (θ − sin θ)

Wetted perimeter: Pp = D/2 × θ

Hydraulic radius: Rp = Ap / Pp

Manning's equation then applied with Rp and Ap

Minimum Slope for Self-Cleaning:

Smin = (Vmin × n / (1.486 × R2/3))2   where Vmin = 2.0 ft/s

#### Assumptions & References

More Calculators

Read Next

Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...

References