Every number StructSuite prints on a report is produced by code, and code has to earn your trust. This document is one link in that chain of trust: a single design, worked entirely by hand from the governing standards, then compared line by line against what the software computes. If the two disagree by more than the rounding you would expect, that is a defect — and the same comparison runs automatically on every change to the software as a regression test (tests/verification/wood-beam-v-w-01.test.ts).
It is also a teaching example. If you are a student or early in your structural career, you can follow every step here with a calculator and the 2024 NDS open beside you. Nothing is hidden in a black box.
What "verification" means here. We solve the same problem three independent ways: (1) closed-form beam theory for the analysis, (2) hand application of the NDS adjustment-factor equations for the capacities, and (3) the StructSuite calculation engine. Agreement among three independent methods is strong evidence the software is correct. Disagreement is a bug to be hunted down — in the code or in the hand calc.
#1. The problem
A repetitive floor joist in a residential building. We check whether a 2×10 Douglas Fir-Larch, No. 2 member is adequate over a 16-foot simple span under the code floor loads, using Allowable Stress Design (ASD) per the NDS 2024 and load combinations from ASCE 7-22 §2.4.1.
The member is one of many parallel joists sharing sheathing above, so it qualifies as a repetitive member (NDS 4.3.9) and the floor sheathing braces its compression edge continuously.
#Given
| Quantity | Symbol | Value |
|---|---|---|
| Species / grade | — | Douglas Fir-Larch, No. 2 |
| Nominal size | — | 2×10 (dressed 1½ × 9¼ in) |
| Span (simple) | L | 16 ft = 192 in |
| Tributary width | s | 1.0 ft |
| Dead line load | wD | 12 plf |
| Live line load | wL | 40 plf |
| Moisture | — | Dry service (MC ≤ 19%) |
| Temperature | — | Normal, T ≤ 100°F |
| Bearing length at supports | Lb | 1.5 in |
| Deflection limits | — | L/360 live, L/240 total (IBC Table 1604.3) |
The joist self-weight (≈ 3.4 plf) is omitted here to keep the arithmetic transparent; in a production run you would include it as additional dead load. Its effect on this design is well under 3% and does not change any conclusion.
#Section properties (NDS Supplement Table 1B)
| A (in²) | Sx (in³) | Ix (in⁴) |
|---|---|---|
| 13.88 | 21.39 | 98.93 |
#Reference design values (NDS Supplement Table 4A, DF-L No. 2)
These are the starting strengths, before any adjustment. They come straight from the Supplement — see the companion guide Wood Design with the NDS Supplement for how to read the table.
| Fb (psi) | Fv (psi) | Fc⊥ (psi) | E (psi) | Emin (psi) |
|---|---|---|---|---|
| 900 | 180 | 625 | 1,600,000 | 580,000 |
#2. Load combinations (ASCE 7-22 §2.4.1)
With only dead and live load present, the ASD basic combinations reduce to a short list. We carry each one, but by inspection the full gravity case governs strength:
| # | Combination | w (plf) | Note |
|---|---|---|---|
| 1a | D | 12 | Dead only |
| 2a | D + L | 52 | Governs flexure, shear, bearing |
| 4a | D + 0.75L | 42 | Never governs when only L is present |
| 7a | 0.6D | 7.2 | Uplift/overturning check — trivial here |
For the governing combination 2a, the total uniform load is
w = wD + wL = 12 + 40 = 52 plf
#3. Structural analysis
For a simply supported beam under a uniform load, the reactions, shear, and moment are exact closed-form results — no software needed.
R = wL/2 = (52)(16)/2 = 416 lb · Vmax = wL/2 = 416 lb · Mmax = wL²/8 = (52)(16²)/8 = 1,664 lb·ft
A detail worth knowing. StructSuite solves the beam with a finite-element method rather than the closed-form formula, so it reads Mmax = 1,664.1 lb·ft (0.01% above the exact 1,664.0 — pure mesh discretization) and a peak shear of 411.7 lb. The shear reads about 1% below wL/2 because the finite-element shear diagram is recovered at the first element's sample point, roughly one inch inside the support face rather than exactly at it. It is a small, known artifact; note that NDS 3.4.3.1 actually permits taking the design shear at a distance d from the support, which would reduce it further. The support reaction used for the bearing check is exact (416 lb).
#4. Adjustment factors (NDS Table 4.3.1)
Reference values become adjusted design values by multiplying through the applicable factors. This is the heart of wood design. Each factor below is justified by its NDS clause.
| Factor | Symbol | Value | Basis (NDS 2024) |
|---|---|---|---|
| Load duration | CD | 1.00 | Table 2.3.2 — floor live load (10-year "normal" duration) governs combination 2a |
| Wet service | CM | 1.00 | Table 4.3.1 — dry service (MC ≤ 19%) |
| Temperature | Ct | 1.00 | Table 2.3.3 — T ≤ 100°F |
| Beam stability | CL | 1.00 | 3.3.3 / 4.4.1 — compression edge continuously braced by sheathing |
| Size | CF | 1.10 | Suppl. Table 4A — 2×10 (10-in nominal width, 2-in thickness) |
| Flat use | Cfu | 1.00 | 4.3.7 — bending about the strong axis (edge use), so Cfu does not apply |
| Incising | Ci | 1.00 | Table 4.3.8 — member is not incised |
| Repetitive member | Cr | 1.15 | 4.3.9 — ≥ 3 parallel members ≤ 24 in o.c. joined by sheathing |
Two factors do the real work here — the size factor CF = 1.10 and the repetitive-member factor Cr = 1.15. Every other factor is unity for these ordinary service conditions.
#5. Flexure check (NDS 3.3.1)
Adjusted bending design value. Multiply the reference Fb by every applicable factor:
F′b = Fb · CD · CM · Ct · CL · CF · Cfu · Ci · Cr
F′b = 900 · (1.00)(1.00)(1.00)(1.00)(1.10)(1.00)(1.00)(1.15) = 1,138.5 psi
Moment capacity.
Mn = F′b · Sx / 12 = (1,138.5)(21.39) / 12 = 2,029.4 lb·ft
Demand-to-capacity ratio.
D/C = Mmax / Mn = 1,664 / 2,029.4 = 0.82 ✓ PASS
Flexure governs this design, at 82% utilization.
#6. Shear check (NDS 3.4.2)
Shear at the neutral axis carries no duration-independent factors beyond CM, Ct, Ci, CD — in particular no CF or Cr:
F′v = Fv · CD · CM · Ct · Ci = 180 · (1.00)(1.00)(1.00)(1.00) = 180 psi
For a rectangular section the shear capacity is (NDS Eq. 3.4-2, in the resultant form Vn = ⅔ F′v A):
Vn = (2/3) · F′v · A = (2/3)(180)(13.88) = 1,666 lb
D/C = Vmax / Vn = 411.7 / 1,666 = 0.25 ✓ PASS
Using the exact end shear of 416 lb instead of the finite-element value gives 416 / 1,666 = 0.250 — the same answer to three digits. Shear is never close to governing a solid-sawn joist.
#7. Deflection check (IBC Table 1604.3; NDS 3.5)
Deflection uses the stiffness, not the strength. For dry service with no incising, E is unadjusted (E′ = E = 1,600,000 psi). The midspan deflection of a uniformly loaded simple beam is:
δ = 5 w L⁴ / (384 E I)
Live-load deflection (wL = 40 plf = 3.333 lb/in):
δL = 5 (3.333)(192)⁴ / [384 (1,600,000)(98.93)] = 0.373 in ≤ L/360 = 192/360 = 0.533 in → D/C = 0.70 ✓
Total-load deflection (w = 52 plf), limit L/240:
δT = 0.373 × (52/40) = 0.484 in ≤ L/240 = 192/240 = 0.700 in → D/C = 0.61 ✓
Both deflection limits are satisfied. On longer or more lightly loaded joists, deflection — not stress — is usually what controls the choice of member.
#8. Bearing check (NDS 4.2.6, 3.10.4)
Where the joist rests on its supports, the reaction is resisted by compression perpendicular to grain. Load duration does not apply to Fc⊥ (NDS Table 2.3.2, footnote), but the bearing area factor Cb does, because the bearing length is short:
Cb = (Lb + 0.375) / Lb = (1.5 + 0.375) / 1.5 = 1.25
F′c⊥ = Fc⊥ · CM · Ct · Cb · Ci = 625 (1.00)(1.00)(1.25)(1.00) = 781 psi
Bearing stress from the 416-lb reaction on a 1.5 in × 1.5 in bearing area:
fc⊥ = R / (Lb · b) = 416 / (1.5 × 1.5) = 185 psi
D/C = fc⊥ / F′c⊥ = 185 / 781 = 0.24 ✓ PASS
#9. Results summary
| Limit state | Demand | Capacity | D/C | Verdict |
|---|---|---|---|---|
| Flexure | 1,664 lb·ft | 2,029 lb·ft | 0.82 | ✓ Governs |
| Shear | 412 lb | 1,666 lb | 0.25 | ✓ |
| Deflection, live (L/360) | 0.373 in | 0.533 in | 0.70 | ✓ |
| Deflection, total (L/240) | 0.484 in | 0.700 in | 0.61 | ✓ |
| Bearing (Fc⊥) | 185 psi | 781 psi | 0.24 | ✓ |
Conclusion: the 2×10 DF-L No. 2 joist is adequate, governed by flexure at 82% utilization.
#10. Verification verdict — hand vs. StructSuite
This is the point of the exercise. Every hand result above is placed next to the value StructSuite's engine returns for the identical input:
| Quantity | Hand calculation | StructSuite | Difference |
|---|---|---|---|
| F′b | 1,138.5 psi | 1,138.5 psi | 0.0% |
| Mn (flexural capacity) | 2,029.4 lb·ft | 2,029.4 lb·ft | 0.0% |
| Mmax (demand) | 1,664.0 lb·ft | 1,664.1 lb·ft | +0.01% |
| Flexure D/C | 0.820 | 0.820 | 0.0% |
| Vn (shear capacity) | 1,665.6 lb | 1,665.6 lb | 0.0% |
| Vmax (demand) | 416.0 lb (exact) | 411.7 lb | −1.0% (FE recovery, §3) |
| δ live | 0.3726 in | 0.3726 in | 0.0% |
| δ total | 0.4844 in | 0.4844 in | 0.0% |
| Cb · F′c⊥ | 781.25 psi | 781.25 psi | 0.0% |
| Bearing D/C | 0.237 | 0.237 | 0.0% |
Every capacity and every adjustment factor matches to the last displayed digit. The only difference is the finite-element shear demand, which is smaller than the closed-form value by 1% and in the safe direction relative to how the code lets you take shear. The software is verified for this design.
This comparison is enforced automatically. The table above is encoded in
tests/verification/wood-beam-v-w-01.test.ts. If any future change to the calculation engine moves a number outside its documented tolerance, the test fails and the change is stopped before it can reach a report. The finite-element solver itself is separately checked against closed-form beam theory (uniform load, central point load, and cantilever cases) intests/unit/beam-solver.test.ts.
#11. Assumptions and limitations
- Beam stability CL = 1.0. Justified only because the floor sheathing braces the compression edge continuously and the ends are restrained against rotation (NDS 4.4.1). Remove that bracing — an exposed beam, or blocking omitted — and CL must be computed from the slenderness RB.
- Self-weight omitted for arithmetic clarity (see §1). Include it in production.
- Solid-sawn, single species/grade. Engineered products (LVL, LSL, I-joists) and glulam use different reference-value sources and a different size/volume-factor treatment; those are separate verification examples.
- ASD, ASCE 7-22. Under LRFD the load factors and the format (φ, KF, λ) differ, though the member and reference values are the same.
#12. Reproduce it yourself
You can regenerate every number above in the app in under a minute:
- Create a floor-joist member and set the span to 16 ft, simply supported (pin–roller).
- Add a uniform Dead load of 12 plf and a uniform Live load of 40 plf; leave self-weight off.
- Set material to Sawn Lumber → Douglas Fir-Larch → No. 2 → 2×10.
- Under design parameters keep dry service, normal temperature, not incised, repetitive (Cr = 1.15), bearing length 1.5 in, deflection limits L/360 / L/240.
The detailed calculation panel will reproduce the flexure, shear, deflection, and bearing steps shown here — including the same F′b = 1,138.5 psi and the governing flexure D/C = 0.82.
#References
- AWC NDS — National Design Specification for Wood Construction — National Design Specification (NDS) for Wood Construction, 2024 edition: §2.3 (adjustment factors), §3.3–3.5 (bending, shear, deflection), §4.2–4.4 (sawn lumber).
- AWC NDS Supplement (2024) — Design Values for Wood Construction — NDS Supplement, Design Values for Wood Construction, 2024: Table 1B (section properties), Table 4A (DF-L reference design values).
- ASCE/SEI 7-22, Minimum Design Loads and Associated Criteria for Buildings and Other Structures: §2.4.1 (ASD load combinations).
- 2024 International Building Code, Table 1604.3 (deflection limits).
