French Drain Calculator

French Drain Material & Cost Calculator .fd-calculator-wrapper { max-width: 800px; margin: 20px auto; padding: 25px; background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .fd-calculator-title { text-align: center; color: #2c3e50; margin-bottom: 25px; font-size: 24px; font-weight: 700; } .fd-input-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; } .fd-input-group { display: flex; flex-direction: column; } .fd-input-group label { font-weight: 600; margin-bottom: 8px; color: #495057; font-size: 14px; } .fd-input-group input, .fd-input-group select { padding: 10px; border: 1px solid #ced4da; border-radius: 4px; font-size: 16px; transition: border-color 0.15s ease-in-out; } .fd-input-group input:focus { border-color: #80bdff; outline: 0; box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); } .fd-section-header { grid-column: 1 / -1; font-size: 16px; font-weight: bold; color: #007bff; margin-top: 10px; border-bottom: 2px solid #e9ecef; padding-bottom: 5px; } .fd-calc-btn { width: 100%; padding: 12px; background-color: #28a745; color: white; border: none; border-radius: 4px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; margin-top: 10px; } .fd-calc-btn:hover { background-color: #218838; } .fd-results-container { margin-top: 25px; padding: 20px; background: #ffffff; border-radius: 6px; border-left: 5px solid #007bff; display: none; } .fd-result-row { display: flex; justify-content: space-between; margin-bottom: 12px; border-bottom: 1px solid #f1f1f1; padding-bottom: 8px; } .fd-result-row:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .fd-result-label { color: #6c757d; font-weight: 500; } .fd-result-value { font-weight: 700; color: #212529; } .fd-total-cost { font-size: 20px; color: #28a745; } .fd-content-section { max-width: 800px; margin: 40px auto; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; } .fd-content-section h2 { color: #2c3e50; margin-top: 30px; border-bottom: 2px solid #eaeaea; padding-bottom: 10px; } .fd-content-section h3 { color: #34495e; margin-top: 25px; } .fd-content-section ul { margin-bottom: 20px; } .fd-content-section li { margin-bottom: 10px; } @media (max-width: 600px) { .fd-input-grid { grid-template-columns: 1fr; } }
French Drain Material Calculator
Trench Dimensions
3 inches 4 inches (Standard) 6 inches
Cost Estimation (Optional)
Total Excavation Volume: 0 cu. ft.
Pipe Volume Displacement: 0 cu. ft.
Gravel Needed (Volume): 0 cu. yards
Gravel Needed (Weight): 0 tons
Estimated Total Cost: $0.00

How to Calculate French Drain Materials

Building a French drain is one of the most effective ways to solve yard drainage issues and protect your foundation from water damage. However, estimating the materials required—specifically the amount of washed gravel and the length of perforated pipe—can be tricky. A miscalculation can lead to either a shortage of stone mid-project or overspending on materials you don't need.

This French Drain Calculator uses standard civil engineering formulas to determine the volume of excavation required and the net volume of aggregate needed after accounting for the space taken up by the drainage pipe.

The Formula Behind the Calculation

To accurately determine the amount of gravel needed, we must calculate the total volume of the trench and subtract the volume of the pipe.

  • Trench Volume: Length (ft) × Width (ft) × Depth (ft)
  • Pipe Displacement: The standard 4-inch drain pipe occupies approximately 0.087 cubic feet for every linear foot of trench.
  • Net Gravel Volume: Trench Volume − Pipe Volume.

Because gravel is sold by the ton or cubic yard, our calculator converts cubic feet into these commercial units. We assume a standard density for washed 3/4″ drainage stone of approximately 1.5 tons per cubic yard (or roughly 110 lbs per cubic foot).

Critical Factors for French Drain Success

1. Slope and Gravity

A French drain relies entirely on gravity. You must ensure a downward slope of at least 1% (1 inch drop for every 10 feet of length). If the ground is flat, you will need to dig the trench deeper as you progress to create this artificial slope.

2. Material Selection

Not all stones work for drainage. You should use washed gravel (usually 3/4″ to 1.5″ size). Do not use "crushed run" or gravel with fines (dust), as this will compact over time and clog the drain. Always use a non-woven geotextile landscape fabric to line the trench, preventing soil from mixing with the gravel.

3. Pipe Orientation

When installing the perforated pipe (usually rigid PVC or corrugated HDPE), ensure the holes are pointing down. This allows the water rising from the bottom of the trench to enter the pipe freely and flow away. If holes point up, the water level must rise to the top of the pipe before draining occurs.

Frequently Asked Questions

How wide should my French drain trench be?

A standard residential French drain trench is usually 12 inches wide. This provides enough space for a 4-inch pipe and approximately 4 inches of gravel on either side, which is sufficient for water flow and filtration.

How deep should I dig?

Depth depends on the frost line and the source of water, but a common depth is 18 to 24 inches. If you are draining surface water, a shallow trench may suffice. If you are protecting a foundation, the drain should ideally be near the footing level.

Do I need a sock on the pipe?

If you are using a gravel-free system (like NDS EZ Flow), a sock is necessary. However, for a traditional gravel-and-pipe French drain, it is better to wrap the entire trench in geotextile fabric rather than just the pipe. Wrapping just the pipe can sometimes lead to the fabric clogging faster due to the smaller surface area.

function calculateFrenchDrain() { // 1. Get Inputs var lengthFt = parseFloat(document.getElementById('fd_length').value); var widthIn = parseFloat(document.getElementById('fd_width').value); var depthIn = parseFloat(document.getElementById('fd_depth').value); var pipeSizeIn = parseFloat(document.getElementById('fd_pipe_size').value); var gravelCostPerTon = parseFloat(document.getElementById('fd_gravel_cost').value); var linearCostPerFt = parseFloat(document.getElementById('fd_misc_cost').value); // 2. Validate Inputs if (isNaN(lengthFt) || lengthFt <= 0) { alert("Please enter a valid length in feet."); return; } if (isNaN(widthIn) || widthIn <= 0) { alert("Please enter a valid width in inches."); return; } if (isNaN(depthIn) || depthIn <= 0) { alert("Please enter a valid depth in inches."); return; } // 3. Conversions (Inches to Feet) var widthFt = widthIn / 12; var depthFt = depthIn / 12; var pipeRadiusFt = (pipeSizeIn / 2) / 12; // 4. Volume Calculations // Total Trench Volume in Cubic Feet var totalTrenchVolCuFt = lengthFt * widthFt * depthFt; // Pipe Volume in Cubic Feet (Pi * r^2 * h) var pipeCrossSectionArea = Math.PI * Math.pow(pipeRadiusFt, 2); var totalPipeVolCuFt = pipeCrossSectionArea * lengthFt; // Net Gravel Volume in Cubic Feet var gravelVolCuFt = totalTrenchVolCuFt – totalPipeVolCuFt; // Convert to Cubic Yards (27 cu ft = 1 cu yd) var gravelVolCuYds = gravelVolCuFt / 27; // Convert to Tons (Approx 1.5 tons per Cu Yd for drainage stone) var gravelWeightTons = gravelVolCuYds * 1.5; // 5. Cost Calculations var totalGravelCost = 0; if (!isNaN(gravelCostPerTon)) { totalGravelCost = gravelWeightTons * gravelCostPerTon; } var totalLinearCost = 0; if (!isNaN(linearCostPerFt)) { totalLinearCost = lengthFt * linearCostPerFt; } var totalProjectCost = totalGravelCost + totalLinearCost; // 6. Display Results document.getElementById('res_vol_cuft').innerText = totalTrenchVolCuFt.toFixed(1); document.getElementById('res_pipe_vol').innerText = totalPipeVolCuFt.toFixed(2); document.getElementById('res_gravel_cuyds').innerText = gravelVolCuYds.toFixed(2); document.getElementById('res_gravel_tons').innerText = gravelWeightTons.toFixed(2); document.getElementById('res_total_cost').innerText = totalProjectCost.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}); // Show result container document.getElementById('fd_results').style.display = 'block'; }

Leave a Reply

Your email address will not be published. Required fields are marked *