Subfloor Load Capacity Calculator

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

Subfloor Load Capacity Calculator

Calculate the allowable uniform load capacity of a subfloor system based on joist dimensions, spacing, span length, and lumber grade properties. Results include total load capacity, dead load allowance, and live load capacity.

Joist Span (ft)

Clear distance between supports

Joist Spacing (in)

On-center spacing between joists (typically 12, 16, or 24 in)

Joist Width (in) — b

Actual (dressed) width of joist (e.g. 1.5 in for a 2× member)

Joist Depth (in) — d

Actual (dressed) depth of joist (e.g. 9.25 in for a 2×10)

Allowable Bending Stress F'b (psi)

Adjusted allowable bending stress for lumber grade/species (see NDS tables)

Modulus of Elasticity E (psi)

Modulus of elasticity for lumber (e.g. 1,600,000 psi for Douglas Fir-Larch No.2)

Dead Load (psf)

Estimated dead load (subfloor sheathing + flooring + joists, typically 10–15 psf)

Deflection Limit

L/360 (live load, typical residential) L/240 (total load) L/480 (sensitive finishes)

Maximum allowable deflection ratio per IBC/IRC

Calculate

function subCalc() { const resultDiv = document.getElementById('sub-result'); resultDiv.style.display = 'block';

// --- Gather inputs --- const L_ft = parseFloat(document.getElementById('sub-span').value); const s_in = parseFloat(document.getElementById('sub-spacing').value); const b = parseFloat(document.getElementById('sub-width').value); const d = parseFloat(document.getElementById('sub-depth').value); const Fb = parseFloat(document.getElementById('sub-fb').value); const E = parseFloat(document.getElementById('sub-e').value); const DL = parseFloat(document.getElementById('sub-dl').value); const deflLim = parseFloat(document.getElementById('sub-defl-limit').value);

// --- Validation --- const errors = []; if (isNaN(L_ft) || L_ft 40) errors.push("Span exceeds 40 ft — verify inputs."); if (s_in > 48) errors.push("Spacing exceeds 48 in — verify inputs."); if (b > d) errors.push("Joist Width (b) should not exceed Joist Depth (d).");

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

// --- Unit conversions --- const L_in = L_ft * 12; // span in inches const s_ft = s_in / 12; // spacing in feet (tributary width per joist)

// --- Section properties --- // Section modulus S = b * d² / 6 (in³) const S = (b * d * d) / 6;

// Moment of inertia I = b * d³ / 12 (in⁴) const I = (b * Math.pow(d, 3)) / 12;

// --- Bending capacity (uniform load, simple span) --- // M_allow = F'b × S (lb·in) // For a simply supported beam with uniform load w (lb/in): // M_max = w × L² / 8 // Solving for w: w_allow = 8 × F'b × S / L² (lb/in) const M_allow_lb_in = Fb * S; // lb·in const w_bend_lb_in = (8 * M_allow_lb_in) / (L_in * L_in); // lb/in (per joist)

// Convert to psf (load per unit area): // w_psf = w_lb_in × (12 in/ft) / s_ft // = w_lb_in × 12 / s_ft const w_bend_psf = (w_bend_lb_in * 12) / s_ft;

// --- Deflection capacity (uniform load, simple span) --- // δ_max = 5 × w × L⁴ / (384 × E × I) // Allowable δ = L / deflLim // Solving for w: w_defl = (384 × E × I × δ_allow) / (5 × L⁴) const delta_allow = L_in / deflLim; // inches const w_defl_lb_in = (384 * E * I * delta_allow) / (5 * Math.pow(L_in, 4)); // lb/in const w_defl_psf = (w_defl_lb_in * 12) / s_ft;

// --- Governing total load capacity --- const w_total_psf = Math.min(w_bend_psf, w_defl_psf); const governs = (w_bend_psf ${statusMsg}

ParameterValue Section Modulus (S)${S.toFixed(3)} in³ Moment of Inertia (I)${I.toFixed(3)} in⁴ Allowable Bending Moment (M')${(M_allow_lb_in/12).toFixed(1)} ft·lb Allowable Deflection (L/${deflLim})${delta_allow.toFixed(3)} in Capacity — Bending Governs${w_bend_psf.toFixed(1)} psf (total) Capacity — Deflection Governs${w_defl_psf.toFixed(1)} psf (total) Governing Total Load Capacity${w_total_psf.toFixed(1)} psf (${governs}) Dead Load (input)${DL.toFixed(1)} psf Allowable Live Load Capacity${LL_capacity.toFixed(1)} psf

`; }

#### Formulas Used

Section Modulus: S = b·d² / 6

Moment of Inertia: I = b·d³ / 12

Bending Capacity (uniform load, simple span): Mallow = F'b × S  |  wbend = 8·F'b·S / L²  (lb/in per joist) Converted to psf: wpsf = wlb/in × 12 / sft

Deflection Capacity (uniform load, simple span): δallow = L / Limit  |  wdefl = 384·E·I·δallow / (5·L⁴)  (lb/in per joist)

Governing Total Load: wtotal = min(wbend, wdefl)

Live Load Capacity: LL = wtotal − Dead Load

#### Assumptions & References

More Calculators

Read Next

Event Venue Capacity Planner ANA › Life Services Authority › National Calculator Authority › Event Venue Capacity Planner .calc-container { max-width:...

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

References