Downspout Sizing and Spacing Calculator
ANA›Life Services Authority›National Calculator Authority›Downspout Sizing and Spacing 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; } }
Downspout Sizing and Spacing Calculator
Calculate the required number, size, and spacing of downspouts for your roof based on drainage area, rainfall intensity, and downspout dimensions.
Roof Length (ft)
Roof Width / Eave-to-Ridge Run (ft)
Roof Pitch (rise:12 — enter rise, e.g. 6 for 6:12)
Design Rainfall Intensity (in/hr)
Typical US values: 2–6 in/hr. Check local IPC Table 1106.2.
Downspout Width / Diameter (in)
Downspout Depth (in) — use same value for round pipes
Downspout Shape
Rectangular Round (circular)
Calculate Results will appear here.
function dowCalc() { const resultDiv = document.getElementById('dow-result');
// --- Gather inputs --- const roofLength = parseFloat(document.getElementById('dow-roof-length').value); const roofWidth = parseFloat(document.getElementById('dow-roof-width').value); const pitch = parseFloat(document.getElementById('dow-roof-pitch').value); const rainfall = parseFloat(document.getElementById('dow-rainfall').value); const dsWidth = parseFloat(document.getElementById('dow-ds-width').value); const dsDepth = parseFloat(document.getElementById('dow-ds-depth').value); const dsShape = document.getElementById('dow-ds-shape').value;
// --- Validation --- const errors = []; if (isNaN(roofLength) || roofLength 24) errors.push("Roof Pitch rise must be between 0 and 24."); if (isNaN(rainfall) || rainfall 0.01) errors.push("For a round downspout, Width and Depth should be equal (both equal to the diameter).");
if (errors.length > 0) { resultDiv.innerHTML = 'Please fix the following errors:' + errors.map(e => '').join('') + ''; return; }
// --------------------------------------------------------------- // STEP 1 — Effective (projected horizontal) roof drainage area // IPC 1106.1: Use the horizontal projected area, then apply a // pitch adjustment factor F = 1 + (pitch/12 - 0.5) * 0.5 // for pitches > 6:12. For pitches ≤ 6:12 F = 1.0. // (SMACNA / IPC approach) // --------------------------------------------------------------- const projectedArea = roofLength * roofWidth; // ft²
// Pitch factor per IPC Table 1106.1 footnote: // pitch ≤ 6:12 → factor = 1.00 // pitch > 6:12 → factor = 1 + (pitch - 6) / 12 * 0.5 (linear interpolation) let pitchFactor = 1.0; if (pitch > 6) { pitchFactor = 1.0 + ((pitch - 6) / 12) * 0.5; } const effectiveArea = projectedArea * pitchFactor; // ft²
// --------------------------------------------------------------- // STEP 2 — Design flow rate (ft³/min → convert to in²·in/hr units) // Q (ft³/min) = (effectiveArea [ft²] × rainfall [in/hr]) / 96.23 // Derivation: 1 in/hr over 1 ft² = 1/12 ft/hr = 1/720 ft/min // Q = A × (R/720) where R in in/hr, A in ft² // Simplified constant: Q = A × R / 720 // --------------------------------------------------------------- const Q_ft3_min = (effectiveArea * rainfall) / 720; // ft³/min
// --------------------------------------------------------------- // STEP 3 — Downspout cross-sectional area and capacity per unit // IPC 1106.3 / SMACNA: Downspout capacity (ft³/min) is based on // the cross-sectional area using the empirical formula: // Q_ds = 0.278 × A_ds^(5/3) / (n × P^(2/3)) × S^(1/2) // where Manning's equation for full-flow vertical pipe simplifies to: // Q_ds (ft³/min) = (A_ds [in²] × 0.0104) // The widely-used IPC/SMACNA simplified table relationship is: // Q_ds (ft³/min) = 0.0104 × A_ds (in²) // This comes from Manning's n=0.011, slope S=1.0 (vertical), // hydraulic radius R_h = A/P for the cross-section. // // More precisely, Manning's full-pipe vertical downspout: // Q = (1.486/n) × A × R_h^(2/3) × S^(1/2) [ft³/s] // Convert to ft³/min × 60. // For rectangular: R_h = (W×D)/(2(W+D)) [inches → convert to ft] // For circular: R_h = D/4 [inches → convert to ft] // --------------------------------------------------------------- const n_manning = 0.011; // Manning's roughness for sheet metal const S = 1.0; // slope = 1.0 (vertical downspout)
let A_ds_in2, R_h_ft, perimeter_in;
if (dsShape === 'round') { const D_ft = dsWidth / 12; A_ds_in2 = Math.PI * (dsWidth / 2) ** 2; // in² R_h_ft = D_ft / 4; // ft } else { A_ds_in2 = dsWidth * dsDepth; // in² perimeter_in = 2 * (dsWidth + dsDepth); R_h_ft = (A_ds_in2 / perimeter_in) / 12; // convert in to ft }
const A_ds_ft2 = A_ds_in2 / 144; // ft²
// Manning's Q in ft³/s, then convert to ft³/min const Q_ds_ft3_s = (1.486 / n_manning) * A_ds_ft2 * Math.pow(R_h_ft, 2/3) * Math.pow(S, 0.5); const Q_ds_ft3_min = Q_ds_ft3_s * 60; // ft³/min per downspout
// --------------------------------------------------------------- // STEP 4 — Number of downspouts required // --------------------------------------------------------------- const numDownspoutsExact = Q_ft3_min / Q_ds_ft3_min; const numDownspouts = Math.ceil(numDownspoutsExact);
// --------------------------------------------------------------- // STEP 5 — Recommended spacing // Space downspouts evenly along the eave length (roof length). // Maximum spacing per SMACNA: 50 ft; per IPC: no explicit max, // but 40–50 ft is standard practice. // --------------------------------------------------------------- const spacing = roofLength / numDownspouts; // ft between downspouts
// --------------------------------------------------------------- // STEP 6 — Gutter slope check (bonus info) // Recommended gutter slope: 1/16 in per foot (0.52%) minimum, // 1/8 in per foot (1.04%) preferred. // --------------------------------------------------------------- const gutterSlopeMin = (1/16) * roofLength; // inches of drop over full length const gutterSlopePref = (1/8) * roofLength;
// --------------------------------------------------------------- // Format results // --------------------------------------------------------------- const pitchAngleDeg = Math.atan(pitch / 12) * (180 / Math.PI);
resultDiv.innerHTML = ` ### Results
Projected Roof Area ${projectedArea.toFixed(1)} ft²
Pitch Factor ${pitchFactor.toFixed(3)} (pitch ${pitch}:12 = ${pitchAngleDeg.toFixed(1)}°)
Effective Drainage Area ${effectiveArea.toFixed(1)} ft²
Design Flow Rate (total) ${Q_ft3_min.toFixed(3)} ft³/min
Downspout Cross-Section ${A_ds_in2.toFixed(2)} in² (${dsShape})
Capacity per Downspout ${Q_ds_ft3_min.toFixed(3)} ft³/min
✔ Downspouts Required ${numDownspouts}
✔ Recommended Spacing ${spacing.toFixed(1)} ft on center
Gutter Drop (min / preferred) ${gutterSlopeMin.toFixed(2)} in / ${gutterSlopePref.toFixed(2)} in over ${roofLength} ft
${spacing > 50 ? '⚠ Spacing exceeds 50 ft. Consider adding more downspouts or using larger sizes per SMACNA guidelines.
' : ''} ${numDownspouts === 1 ? 'ℹ A minimum of 2 downspouts is recommended for redundancy even if 1 is sufficient by calculation.
' : ''} `; }
#### Formulas Used
1. Effective Drainage Area (IPC §1106.1): Aeff = L × W × Fpitch where Fpitch = 1.0 for pitch ≤ 6:12; Fpitch = 1 + (pitch − 6)/12 × 0.5 for pitch > 6:12
2. Design Flow Rate: Qtotal = Aeff × R / 720 where R = rainfall intensity (in/hr), result in ft³/min
3. Downspout Capacity — Manning's Equation (full-flow vertical pipe): Qds = (1.486 / n) × Ads × Rh2/3 × S1/2 × 60 n = 0.011 (sheet metal), S = 1.0 (vertical), Rh = hydraulic radius Rectangular: Rh = (W × D) / [2(W + D)] Circular: Rh = D / 4
4. Number of Downspouts: N = ⌈ Qtotal / Qds ⌉ (ceiling function)
5. Spacing: Spacing = Roof Length / N
#### Assumptions & References
- Based on IPC (International Plumbing Code) Chapter 11 — Storm Drainage.
- Manning's roughness coefficient n = 0.011 for galvanized sheet metal gutters and downspouts.
- Downspouts are assumed to flow full and vertical (slope S = 1.0), which is the standard IPC/SMACNA design assumption.
- Pitch adjustment factor applied per IPC Table 1106.1 footnote for steep roofs (> 6:12).
- Rainfall intensity should be the 100-year, 1-hour storm for your location per IPC §1106.1 or local jurisdiction. Check NOAA Atlas 14 or IPC Table 1106.2.
- Maximum recommended downspout spacing is 50 ft per SMACNA Architectural Sheet Metal Manual.
- Minimum gutter slope: 1/16 in per foot (preferred: 1/8 in per foot) per SMACNA.
- A minimum of 2 downspouts per roof section is recommended for redundancy.
More Calculators
- Electrical Panel Load Calculator
- California Prevailing Wage Project Cost Calculator
- Commercial Lease Space Cost Calculator
- Hyperfocal Distance Calculator
- California Commercial Building Permit Cost Estimator
- Card Draw Probability Calculator
- Crop Factor & Equivalent Focal Length Calculator
- Public Adjuster Fee Calculator
- Contents Inventory Loss Calculator
- Medical Expenses Recovery Calculator
- Vehicle Diminished Value Calculator
- Personal Injury Compensation Estimator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...