Planning a deck requires precision to minimize waste and ensure structural integrity. This calculator helps you estimate the primary surface materials and framing requirements based on standard building practices.
Understanding the Dimensions
When measuring your deck length and width, consider the orientation of your boards. Typically, deck boards run parallel to the house wall. The length of your deck usually refers to the dimension parallel to the house, while the width is how far it extends into the yard.
Joists and Spacing
Standard deck framing uses a "16-inch on center" spacing for joists. This means the center of one joist is exactly 16 inches from the center of the next. For commercial applications or when using certain composite materials, 12-inch spacing may be required to prevent sagging.
Material Estimation Example
If you are building a 12′ x 10′ deck (120 sq. ft.) using standard 6-inch pressure-treated boards (5.5″ actual width) with a 1/8″ gap:
Boards: You would need approximately 24 boards of 12-foot length. Adding a 10% waste factor for trimming and bad grains brings the total to 27 boards.
Joists: A 12-foot length requires 10 joists spaced at 16 inches.
Fasteners: With roughly 350-400 screws needed for a deck of this size (assuming 2 screws per board/joist intersection).
Note: This calculator provides an estimate for surface decking and basic joist counts. It does not include hardware (brackets, bolts), railings, stairs, or concrete footings. Always check local building codes before starting construction.
function calculateDeck() {
var length = parseFloat(document.getElementById('deckLength').value);
var width = parseFloat(document.getElementById('deckWidth').value);
var bWidth = parseFloat(document.getElementById('boardWidth').value);
var gap = parseFloat(document.getElementById('boardGap').value);
var bLength = parseFloat(document.getElementById('boardLength').value);
var bPrice = parseFloat(document.getElementById('boardPrice').value);
if (isNaN(length) || isNaN(width) || isNaN(bWidth) || length <= 0 || width <= 0) {
alert("Please enter valid positive dimensions.");
return;
}
// Total Area
var area = length * width;
// Boards Calculation
// We assume boards run along the 'Length' dimension
// Width in inches / (Board Width + Gap) = Number of rows
var widthInches = width * 12;
var rowsNeeded = Math.ceil(widthInches / (bWidth + gap));
// Total linear feet of decking needed
var linearFeetNeeded = rowsNeeded * length;
// Number of boards of specific length
var boardsExact = Math.ceil(linearFeetNeeded / bLength);
// 10% Waste Factor
var totalBoards = Math.ceil(boardsExact * 1.10);
// Joists Calculation (16 inches on center)
// Joists usually run perpendicular to boards (across the Length)
var joists = Math.ceil((length * 12) / 16) + 1;
// Screws Estimation
// Approx 2 screws per board-joist intersection
var totalScrews = (rowsNeeded * joists) * 2;
// Cost
var totalCost = totalBoards * bPrice;
// Display Results
document.getElementById('resArea').innerText = area.toFixed(2);
document.getElementById('resBoards').innerText = totalBoards;
document.getElementById('resJoists').innerText = joists;
document.getElementById('resScrews').innerText = totalScrews;
document.getElementById('resCost').innerText = totalCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('deck-results').style.display = 'block';
}