# Fabric yardage calculator

Fabric requirement follows from how many pieces fit across the roll, not from total area. Add the seam allowance to every edge of one piece, divide the usable roll width by the piece width and round DOWN to a whole number — that is how many fit side by side. Divide the number of pieces you need by that count and round UP for the number of rows, then multiply the rows by the cut length of one piece. The calculator below does this in metric or imperial, matches a pattern repeat where there is one, and shows the strip left unused beside your pieces, which you pay for either way.

Source: https://fabricmeasure.com/calculators/fabric-yardage-calculator/
Last updated: 2026-08-20 (method v1)
Published by FabricMeasure.

---

## The formula

A packing problem, not an area problem: the roll width is fixed and the count across it is
a whole number.

```
cutWidth     = pieceWidth + 2 x seamAllowance
cutLength    = pieceLength + 2 x seamAllowance
usableWidth  = fabricWidth - unusableWidth
across       = floor(usableWidth / cutWidth)      <- rounds DOWN
rows         = ceil(quantity / across)            <- rounds UP
rowLength    = patternRepeat > 0
                 ? ceil(cutLength / patternRepeat) x patternRepeat
                 : cutLength
total        = rows x rowLength + patternRepeat   (one repeat, for placement)
offcut       = usableWidth - across x cutWidth    <- bought, never cut into
```

Pieces may be laid across the roll instead (cutLength across, cutWidth along) and the
cheaper layout wins - but ONLY when the fabric is neither directional nor patterned. A nap,
a one-way print or a vertical repeat all make a rotated piece a different piece.

A piece wider than the usable width in every permitted orientation is refused rather than
answered: no extra length fixes it.

## Worked example

6 cushion panels finishing at 45 x 45 cm, 1.5 cm seams, 140 cm plain roll.

| Step | Working | Result |
| --- | --- | --- |
| Cut size of one piece | 45 cm × 45 cm finished, + 1.5 cm on every edge | 48 cm × 48 cm |
| Pieces across the width | ⌊140 cm ÷ 48 cm⌋ | 2 pieces |
| Rows of pieces needed | ⌈6 pieces ÷ 2 across⌉ | 3 rows |
| Fabric for the rows | 3 × 48 cm | 144 cm |
| Total fabric required | 3 rows, nothing to match | 144 cm |
| Buy, rounded up (nearest 10 cm) | 144 cm rounded up to the next 0.1 m | 150 cm |

Only 66% of the cloth bought ends up in the pieces; a 44 cm strip runs unused down the length.

## Assumptions

- Identical rectangular pieces. Differing sizes nest in ways no general formula covers.
- Seam allowance is added to every edge, so each dimension grows by twice the allowance.
- The roll width entered is nominal; subtract selvedge or pre-wash loss as unusable width.
- Gathered curtains are a different calculation - fullness is applied before any of this.
- No shrinkage percentage: pre-wash the cloth and measure what you actually have.

## Common questions

### Why can I not just work out the total area?

Because fabric comes off a roll of fixed width, and the pieces have to fit across that width in whole numbers. Six 45 cm pieces are 1.2 m² of cloth, but on a 140 cm roll only two fit side by side and the answer is 1.5 m — 2.1 m² — with the rest bought as an unused strip.

### Does the seam allowance go on every edge?

Yes, and that is why each dimension grows by twice the allowance. A 45 cm finished cushion panel with 1.5 cm seams is cut at 48 cm, not 46.5 cm. Entering the finished size and letting the calculator add the allowances is the safer way round, because it is the step most often forgotten.

### Can I turn the pieces sideways to fit more across?

On a plain fabric with no nap, yes, and the calculator will do it when it saves cloth. It refuses on a directional fabric or one with a pattern repeat, because a rotated piece has the design running the wrong way across it — which is a different piece, not a cleverer layout.

### What can I do about the strip left over?

Either use it or design it away. A wide offcut usually means one more piece would have fitted across with a slightly smaller finished size, or that a different roll width suits this project better. The calculator shows the strip width and what share of the roll it represents so the choice is visible before you order.

### Does this work for curtains?

Only for flat panels. Gathered curtains need a fullness ratio applied before any of this, and their widths are joined rather than laid side by side, so the curtain fabric calculator handles them instead. Use this one for cushions, blinds, panels, table linen and anything else cut as plain rectangles.

## Related tools

- [Cushion fabric calculator](https://fabricmeasure.com/calculators/cushion-fabric-calculator/): Cover size, back opening and piping in; the length to buy and a row-by-row cutting plan out.
- [Tablecloth fabric calculator](https://fabricmeasure.com/calculators/tablecloth-fabric-calculator/): Table plus drop, round or rectangular — and whether turning the cloth loses a seam.
- [Bias binding calculator](https://fabricmeasure.com/calculators/bias-binding-calculator/): Straight-grain strips or one continuous bias strip from a square, costed side by side.
- [Upholstery fabric calculator](https://fabricmeasure.com/calculators/upholstery-fabric-calculator/): An editable panel list instead of a rule of thumb — with the cutting plan and the seams it implies.
- [Seam allowance calculator](https://fabricmeasure.com/calculators/seam-allowance-calculator/): Finished size to cut size — and what a different allowance does to the garment you end up with.
- [Fabric GSM calculator](https://fabricmeasure.com/conversions/fabric-gsm-calculator/): g/m², oz/yd², running-yard ounces and momme — plus the weight of an unlabelled fabric from a swatch.
