Calculation Methodology
This page documents the formulas, assumptions, and rounding rules used by our calculator. Last reviewed on April 11, 2026.
Global Rules
- Primary output is rounded up to the nearest quarter yard.
- Meters are converted from rounded yard values using 1 yard = 0.9144 meters.
- Pattern repeat is modeled as a multiplier for project types where repeat class is selected.
- Where appropriate, default overage is included to reduce the chance of under-ordering.
Upholstery Formula
We start from a furniture-type base range at 54 inch width, take the midpoint, then apply repeat, piece count, overage, and width normalization.
base = (min + max) / 2
withRepeat = base * repeatMultiplier
withPieces = withRepeat * pieces
withOverage = withPieces * (1 + overagePercent/100)
totalYards = withOverage * (54 / fabricWidth)
result = ceil(totalYards * 4) / 4Sewing Formula
Garment base yardage depends on garment type and size, normalized from 45 inch width.
base = garmentTable[garment][size]
withRepeat = base * repeatMultiplier
perItem = withRepeat * (45 / fabricWidth)
totalYards = perItem * quantity
result = ceil(totalYards * 4) / 4Curtains Formula
Curtain yardage uses fullness, panel count by width, header allowance, optional repeat alignment, and optional lining estimate.
fabricNeededWidth = windowWidth * fullnessRatio
panels = ceil(fabricNeededWidth / fabricWidth)
cutLength = repeat > 0 ? ceil((drop + headerAllowance)/repeat) * repeat : drop + headerAllowance
yardsPerWindow = (panels * cutLength) / 36
totalYards = yardsPerWindow * windowsQuilting Formula
Quilting estimates include a 15% top-fabric overage plus optional backing and binding.
totalSqIn = width * height
perColour = (totalSqIn / colours / 1296) * 1.15
binding = includeBinding ? quarterRound(((perimeter + 20) / 42) * 2.5 / 36 * 4) : 0
backing = includeBacking ? quarterRound(((height + 8) / 36) * (width > 42 ? 2 : 1)) : 0
total = quarterRound(perColour) * colours + binding + backingCushions Formula
Cushion estimates use panel area, boxing area, 15% waste allowance, optional piping, and repeat adjustment.
panelArea = width * height * 2
boxingArea = (2 * (width + height)) * depth
totalArea = (panelArea + boxingArea) * 1.15
perCushion = totalArea / (fabricWidth * 36)
withRepeat = perCushion * repeatMultiplier
total = (withRepeat + pipingAdjustment) * quantityImportant Limits
Results are planning estimates, not cut plans. Complex tailoring details, directional nap, railroaded fabrics, and motif centering can increase required yardage. For professional jobs, confirm measurements with your upholsterer or workroom.
Related Pages
Quick links to our core policy, editorial, and company information pages.