Deck Footing Size and Load Calculator
ANA›Life Services Authority›National Calculator Authority›Deck Footing Size and Load 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; } }
Deck Footing Size and Load Calculator
Calculate the required footing diameter/size and total load for deck posts based on tributary area, dead load, live load, and soil bearing capacity.
Joist Span (ft)
ft
Beam Span / Post Spacing (ft)
ft
Live Load (psf)
psf
Dead Load (psf)
psf
Snow Load (psf) (0 if none)
psf
Soil Bearing Capacity (psf)
psf
Estimated Post + Beam Weight (lbs) (optional)
lbs
Footing Shape
Round (Diameter) Square (Side Length)
Calculate
function decCalc() { var joistSpan = parseFloat(document.getElementById('dec-joist-span').value); var beamSpan = parseFloat(document.getElementById('dec-beam-span').value); var liveLoad = parseFloat(document.getElementById('dec-live-load').value); var deadLoad = parseFloat(document.getElementById('dec-dead-load').value); var snowLoad = parseFloat(document.getElementById('dec-snow-load').value); var soilBearing = parseFloat(document.getElementById('dec-soil-bearing').value); var postWeight = parseFloat(document.getElementById('dec-post-weight').value); var shape = document.getElementById('dec-footing-shape').value; var resultDiv = document.getElementById('dec-result');
// --- Validation --- var errors = []; if (isNaN(joistSpan) || joistSpan 0) { resultDiv.style.display = 'block'; resultDiv.innerHTML = 'Please fix the following:' + errors.map(function(e){ return ''; }).join('') + ''; return; }
// --- Core Calculations --- // Tributary Area per post (ft²) // Each post supports half the joist span on each side × half the beam span on each side var tributaryArea = (joistSpan / 2) * (beamSpan / 2);
// Design Load per unit area (psf) // Per IBC/IRC: use greater of (LL + DL) or (SL + DL) var designLoadPSF = deadLoad + Math.max(liveLoad, snowLoad);
// Total load on footing (lbs) var deckLoad = designLoadPSF * tributaryArea; var totalLoad = deckLoad + postWeight;
// Required footing area (ft²) var reqAreaFt2 = totalLoad / soilBearing;
// Required footing size var sizeIn, sizeLabel, areaActual; if (shape === 'round') { // A = π/4 × d² → d = sqrt(4A/π) var diamFt = Math.sqrt((4 * reqAreaFt2) / Math.PI); var diamIn = diamFt * 12; // Round up to nearest inch sizeIn = Math.ceil(diamIn); areaActual = Math.PI / 4 * Math.pow(sizeIn / 12, 2); sizeLabel = sizeIn + ' in diameter'; } else { // A = s² → s = sqrt(A) var sideFt = Math.sqrt(reqAreaFt2); var sideIn = sideFt * 12; sizeIn = Math.ceil(sideIn); areaActual = Math.pow(sizeIn / 12, 2); sizeLabel = sizeIn + ' × ' + sizeIn + ' in'; }
// Actual bearing pressure with rounded-up footing var actualBearing = totalLoad / areaActual; var safetyMargin = ((soilBearing - actualBearing) / soilBearing * 100).toFixed(1);
// Common round footing sizes for reference var commonSizes = [10, 12, 14, 16, 18, 20, 24]; var recommended = sizeIn; for (var i = 0; i = sizeIn) { recommended = commonSizes[i]; break; } }
// --- Output --- resultDiv.style.display = 'block'; resultDiv.innerHTML = '### Results ' + '' + 'Tributary Area per Post' + tributaryArea.toFixed(1) + ' ft²' + 'Design Load (DL + max(LL, SL))' + designLoadPSF.toFixed(0) + ' psf' + 'Deck Load on Footing' + deckLoad.toFixed(0) + ' lbs' + 'Total Footing Load (incl. post/beam)' + totalLoad.toFixed(0) + ' lbs' + 'Required Footing Area' + (reqAreaFt2 * 144).toFixed(1) + ' in² (' + reqAreaFt2.toFixed(2) + ' ft²)' + 'Minimum Footing Size' + sizeLabel + '' + 'Recommended Standard Size' + recommended + (shape === 'round' ? '" diameter' : '" × ' + recommended + '"') + '' + 'Actual Bearing Pressure' + actualBearing.toFixed(0) + ' psf' + 'Soil Capacity Remaining' + safetyMargin + '%' + '' + '⚠️ Always verify footing depth with local frost depth requirements and consult a licensed engineer for final design.
'; }
#### Formulas Used
Tributary Area (Atrib): Atrib = (Joist Span / 2) × (Beam Span / 2)
Design Load per Area (wdesign): wdesign = Dead Load + max(Live Load, Snow Load) [per IBC/IRC load combination]
Total Footing Load (P): P = wdesign × Atrib + Post & Beam Weight
Required Footing Area (Areq): Areq = P / qallow where qallow = allowable soil bearing capacity
Round Footing Diameter (d): d = √(4 × Areq / π) → round up to nearest inch
Square Footing Side (s): s = √(Areq) → round up to nearest inch
#### Assumptions & References
- Live load default of 40 psf per IRC R507 for residential decks.
- Dead load default of 15 psf covers decking, framing, railings, and finishes.
- Load combination follows IBC/IRC: use the greater of live load or snow load combined with dead load.
- Default soil bearing capacity of 1,500 psf is conservative for undisturbed native soil; sandy/gravelly soils may support 2,000–3,000 psf.
- Footing depth must extend below the local frost depth — not calculated here.
More Calculators
- Time-to-Fill Calculator
- Employee Engagement Score Calculator
- Identity Theft Risk Score Calculator
- Phishing Exposure Risk Calculator
- Energy Savings Estimator
- Vapor Barrier Coverage Calculator
- Patch Management Coverage Calculator
- Endpoint Risk Score Calculator
- Zero Trust Readiness Assessment Calculator
- Florida Data Breach Notification Penalty Estimator
- Florida DBPR Security License Fee Calculator
Read Next
Study Time Planner Authority Network America › Life Services Authority › National Calculator Authority .calc-container { max-width: 640px;...