Calculating Fabric

Fabric Yardage Calculator

44 inches (Standard Cotton) 54 inches (Upholstery) 60 inches (Apparel/Wide)

Results

Total Fabric Required: 0 Yards

How to Calculate Fabric for Your Project

Calculating the correct amount of yardage is the most critical step in any sewing or upholstery project. Ordering too little can result in mismatched dye lots if you have to buy more later, while ordering too much is a waste of money. Our Fabric Yardage Calculator helps you determine exactly how many linear yards you need based on the dimensions of your individual pieces and the width of the fabric bolt.

Key Factors in Fabric Calculation

  • Fabric Bolt Width: Most quilting cotton is 44 inches wide, while upholstery and home decor fabrics are typically 54 to 60 inches wide.
  • Seam Allowance: You must add extra inches to your finished dimensions to account for seams. A standard seam allowance is 0.5 inches per edge (adding a total of 1 inch to width and 1 inch to length).
  • Fabric Direction/Nap: If your fabric has a directional print or a "nap" (like velvet), you cannot rotate pieces to fit them better on the fabric.
  • Repeat Pattern: Large floral or geometric patterns require extra fabric so you can align the patterns at the seams.

The Math Behind the Calculation

To calculate yardage manually, follow these steps:

  1. Add seam allowances to your width and length: Total Width = (Finished Width + 2 × Seam Allowance).
  2. Determine how many pieces fit across the width of the fabric: Fabric Width ÷ Total Piece Width (round down).
  3. Determine how many "rows" of pieces you need: Total Quantity ÷ Pieces per Width (round up).
  4. Calculate total inches: Rows × (Finished Length + 2 × Seam Allowance).
  5. Convert to yards: Total Inches ÷ 36.

Example Calculation

Suppose you want to make 4 cushion covers that are 18″ x 18″ using 54″ wide fabric with a 0.5″ seam allowance:

  • 1. Cut width/length per piece: 18″ + 1″ = 19″
  • 2. Pieces across width: 54″ / 19″ = 2.84 (2 pieces fit side-by-side)
  • 3. Number of rows needed for 4 pieces: 4 / 2 = 2 rows
  • 4. Total length in inches: 2 rows × 19″ = 38″
  • 5. Yardage: 38″ / 36″ = 1.06 yards (usually rounded up to 1.25 yards for safety)
Pro Tip: Always add a 10-15% buffer for shrinkage (especially for cotton and linen) and cutting errors. If your fabric has a large pattern repeat (over 10 inches), add an extra 20% to your final total.
function calculateFabricYardage() { // Inputs var pWidth = parseFloat(document.getElementById("pieceWidth").value); var pLength = parseFloat(document.getElementById("pieceLength").value); var fWidth = parseFloat(document.getElementById("fabricWidth").value); var qty = parseInt(document.getElementById("quantity").value); var seam = parseFloat(document.getElementById("seamAllowance").value); var waste = parseFloat(document.getElementById("wasteBuffer").value); // Validate if (isNaN(pWidth) || isNaN(pLength) || isNaN(qty) || pWidth <= 0 || pLength fWidth) { alert("The width of your cut piece (including seam allowance) is wider than the fabric bolt. Consider changing the orientation or choosing a wider fabric."); return; } // How many pieces fit across the width? var piecesAcross = Math.floor(fWidth / totalPieceWidth); // How many rows of pieces are needed? var rowsNeeded = Math.ceil(qty / piecesAcross); // Total length in inches var totalInches = rowsNeeded * totalPieceLength; // Apply waste/shrinkage buffer if (!isNaN(waste) && waste > 0) { totalInches = totalInches * (1 + (waste / 100)); } // Convert to Yards (36 inches = 1 yard) var totalYards = totalInches / 36; // Round to nearest 1/8th yard for practical buying var roundedYards = Math.ceil(totalYards * 8) / 8; // Display Results document.getElementById("fabricResult").style.display = "block"; document.getElementById("yardageOutput").innerHTML = roundedYards.toFixed(2); var breakdownText = "Calculation: " + piecesAcross + " pieces per row, " + rowsNeeded + " row(s) deep. Total length: " + Math.round(totalInches) + " inches."; document.getElementById("breakdownOutput").innerHTML = breakdownText; // Scroll to result document.getElementById("fabricResult").scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment