Wall Framing Stud & Plate Calculator
Estimate lumber requirements for your construction project
12″ O.C.
16″ O.C. (Standard)
24″ O.C.
8 Foot Boards
10 Foot Boards
12 Foot Boards
16 Foot Boards
Estimated Lumber List:
How to Use the Framing Calculator
This tool is designed to provide professional contractors and DIY enthusiasts with an accurate estimate of the vertical studs and horizontal plates required for a standard wood-framed wall. It accounts for "On Center" (O.C.) spacing, which is the distance from the center of one stud to the center of the next.
Understanding the Inputs
- Wall Length: The total horizontal distance of the wall you are building.
- Stud Spacing: Standard framing is typically 16 inches on center. Exterior walls or heavy load-bearing walls might use 12 inches, while non-load bearing interior walls might use 24 inches.
- Corners: Each corner typically requires 2 additional studs to provide a nailing surface for interior drywall.
- Openings: Each window or door usually requires 2 extra studs (king studs and jack studs) to support the header and frame.
- Waste Factor: It is standard practice to add 10% to your order to account for warped boards, mistakes, or short off-cuts.
The Calculation Logic
The calculator uses the following formulas:
- Base Studs: (Wall Length in inches / Spacing) + 1.
- Add-ons: 2 studs per corner and 2 studs per opening.
- Plates: Most walls require 3 horizontal plates (1 bottom plate and 2 top plates). We calculate the total linear feet and divide by your chosen lumber length.
Practical Example
If you are building a 20-foot wall with 16″ O.C. spacing, 2 corners, and 1 door:
- Base studs: (240″ / 16″) + 1 = 16 studs.
- Corner/Opening studs: (2*2) + (1*2) = 6 studs.
- Subtotal: 22 studs. Plus 10% waste = 25 studs.
- Plates: 20ft * 3 = 60 linear feet. If using 16ft boards, you need 4 boards.
' + '* Includes ' + (waste * 100) + '% waste factor and additional lumber for ' + corners + ' corners and ' + openings + ' openings.'; // Smooth scroll to result resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }