Drain Slope & Grade Calculator

ANALife Services AuthorityNational Calculator Authority›Drain 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; } }

Drain Slope & Grade Calculator

Calculate drain slope, grade percentage, fall distance, and run length for proper drainage design. Enter any two known values to solve for the remaining unknowns.

Horizontal Run (ft)

Vertical Fall (in)

Slope / Grade (%)

Slope Ratio (1 : X)

Slope (in / ft)

Fill in any two fields and click Calculate.

Calculate Clear

function draGetVal(id) { var v = parseFloat(document.getElementById(id).value); return isNaN(v) ? null : v; }

function draSetVal(id, val) { document.getElementById(id).value = val; }

function draClear() { ["dra-run","dra-fall","dra-slope-pct","dra-slope-ratio","dra-slope-in-ft"].forEach(function(id){ document.getElementById(id).value = ""; }); var r = document.getElementById("dra-result"); r.style.display = "none"; r.innerHTML = ""; }

function draCalc() { var run = draGetVal("dra-run"); // feet var fall = draGetVal("dra-fall"); // inches var slopePct = draGetVal("dra-slope-pct"); // % var slopeRat = draGetVal("dra-slope-ratio");// 1:X → decimal = 1/X var slopeInFt= draGetVal("dra-slope-in-ft");// inches per foot

var result = document.getElementById("dra-result");

// ── Validation: need at least 2 filled fields ────────────────────────────── var filled = [run, fall, slopePct, slopeRat, slopeInFt].filter(function(v){ return v !== null; }).length; if (filled 0) { calcRun = calcFall / (decimal * 12); } if (calcFall === null && calcRun !== null) { calcFall = decimal * calcRun * 12; }

// ── Derived representations ──────────────────────────────────────────────── var calcSlopePct = decimal * 100; var calcSlopeRat = decimal > 0 ? (1 / decimal) : Infinity; var calcSlopeInFt = decimal * 12;

// Angle in degrees: θ = atan(decimal) var angleDeg = Math.atan(decimal) * (180 / Math.PI);

// ── Consistency check (if user gave 3+ values) ──────────────────────────── var warnings = []; if (run !== null && fall !== null && slopePct !== null) { var impliedPct = (fall / (run * 12)) * 100; if (Math.abs(impliedPct - slopePct) > 0.05) { warnings.push("The entered Run, Fall, and Slope % are inconsistent. Results are based on the slope derived from Run & Fall."); } }

// ── Format helpers ───────────────────────────────────────────────────────── function fmt(n, d) { return n.toFixed(d !== undefined ? d : 3); }

// ── Build output ───────────────────────────────────────────────────────────
var warnHtml = warnings.length
? "⚠ " + warnings.join("") + ""
"";

var html = warnHtml + "### Results "; var rows = [ ["Horizontal Run", calcRun !== null ? fmt(calcRun, 3) + " ft" : "—"], ["Vertical Fall", calcFall !== null ? fmt(calcFall, 3) + " in" : "—"], ["Slope / Grade", fmt(calcSlopePct, 3) + " %"], ["Slope (in / ft)", fmt(calcSlopeInFt, 4) + " in/ft"], ["Slope Ratio", decimal > 0 ? "1 : " + fmt(calcSlopeRat, 2) : "0 (flat)"], ["Angle", fmt(angleDeg, 4) + " °"], ];

rows.forEach(function(r, i) { var bg = i % 2 === 0 ? "#f8f9fa" : "#ffffff"; html += "" + "" + r[0] + "" + "" + r[1] + "" + ""; }); html += "";

// Practical guidance var guidance = ""; if (calcSlopePct " + guidance + "";

result.style.display = "block"; result.className = "calc-result"; result.innerHTML = html; }

#### Formulas Used

Decimal Slope = Vertical Fall (in) ÷ [Horizontal Run (ft) × 12]

Grade (%) = Decimal Slope × 100

Slope (in/ft) = Decimal Slope × 12

Slope Ratio (1 : X) = 1 ÷ Decimal Slope

Angle (°) = arctan(Decimal Slope) × (180 / π)

Vertical Fall (in) = Decimal Slope × Run (ft) × 12

Horizontal Run (ft) = Vertical Fall (in) ÷ (Decimal Slope × 12)

#### Assumptions & References

More Calculators

Read Next

Cocktail Recipe Scaler ANA › Life Services Authority › National Calculator Authority › Cocktail Recipe Scaler .calc-container { max-width: 640px;...

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

References