# Upholstery fabric calculator

Re-upholstery fabric is normally quoted as a rule of thumb — a three-seat sofa takes fourteen metres — which is useful shorthand and impossible to check. This calculator treats the job as what it is instead: a list of named panels with dimensions, packed onto your roll in rows. Choose a furniture type for a starting list of typical sizes, edit any panel to what you actually measured, and it returns the length to buy, the cutting plan row by row, and which panels are too wide for the roll and will need seaming.

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

---

## The formula

Not a rule of thumb. A piece of furniture is a list of named panels, and the panels are
packed onto the roll in rows by the shared cutting layout:

```
cutWidth   = panelWidth + 2 x seamAllowance
cutLength  = panelLength + 2 x seamAllowance
sort panels by cutWidth descending
place each into the FIRST row with room; open a new row when none has
rowLength  = longest cutLength in that row, rounded up to whole pattern repeats
total      = sum(rowLengths) + patternRepeat + cuttingMargin%
```

First-fit-decreasing shelf packing. It is a heuristic, not an optimal layout - a cutter with
the cloth in front of them can beat it - but it never under-orders.

A panel wider than the roll is cut in parts and seamed, each part paying its own seam
allowance, unless the fabric is railroadable and can be turned sideways instead.

## Preset panel lists

THESE ARE TYPICAL DIMENSIONS, NOT MEASUREMENTS. They are the only unverified numbers in the
tool, and every one is editable on the page.

| Furniture | Panels |
| --- | --- |
| Dining chair seat | 1 x 55 cm x 55 cm seat cover |
| Footstool or ottoman | 1 x 60 cm x 60 cm top; 4 x 60 cm x 25 cm side panel |
| Armchair | 1 x 70 cm x 95 cm inside back; 1 x 70 cm x 80 cm outside back; 1 x 70 cm x 95 cm seat deck; 2 x 60 cm x 95 cm inside arm; 2 x 60 cm x 60 cm outside arm; 2 x 25 cm x 60 cm arm facing; 2 x 65 cm x 65 cm cushion face; 2 x 130 cm x 12 cm cushion gusset |
| Two-seat sofa | 1 x 140 cm x 95 cm inside back; 1 x 140 cm x 85 cm outside back; 1 x 140 cm x 95 cm seat deck; 2 x 60 cm x 95 cm inside arm; 2 x 60 cm x 60 cm outside arm; 2 x 25 cm x 60 cm arm facing; 4 x 65 cm x 65 cm cushion face; 4 x 130 cm x 12 cm cushion gusset |
| Three-seat sofa | 1 x 190 cm x 95 cm inside back; 1 x 190 cm x 85 cm outside back; 1 x 190 cm x 95 cm seat deck; 2 x 60 cm x 95 cm inside arm; 2 x 60 cm x 60 cm outside arm; 2 x 25 cm x 60 cm arm facing; 6 x 62 cm x 65 cm cushion face; 6 x 127 cm x 12 cm cushion gusset |

Inside panels include a 10-15 cm tuck-in that disappears into the frame.

## Worked example

An armchair on 140 cm plain cloth, 1.5 cm seams, 10% cutting margin.

| Step | Working | Result |
| --- | --- | --- |
| Pieces for a armchair | 1 × 70 cm × 95 cm inside back, 1 × 70 cm × 80 cm outside back, 1 × 70 cm × 95 cm seat deck, 2 × 60 cm × 95 cm inside arm, 2 × 60 cm × 60 cm outside arm, 2 × 25 cm × 60 cm arm facing, 2 × 65 cm × 65 cm cushion face, 2 × 130 cm × 12 cm cushion gusset | 5.21 m² of cover |
| Pieces to cut | 1 × inside back, 1 × outside back, 1 × seat deck, 2 × inside arm, 2 × outside arm, 2 × arm facing, 2 × cushion face, 2 × cushion gusset, each grown by 3 cm for seams | 13 pieces |
| Rows in the cutting plan | pieces laid across 140 cm of usable width, widest first | 7 rows |
| Fabric for the rows | 15 cm + 15 cm + 98 cm + 98 cm + 83 cm + 68 cm + 63 cm | 440 cm |
| Cutting margin | 10% of 440 cm | 44 cm |
| Total fabric required | rows + margin | 484 cm |
| Buy, rounded up (nearest 10 cm) | 484 cm rounded up to the next 0.1 m | 490 cm |

## Assumptions

- Preset dimensions are typical, not measured. Replace them with your own.
- Panels and cushions only: piping, skirts, arm caps and buttoning are extra rows.
- Shaped pieces are treated as the rectangle that encloses them.
- Matching a design across panels is not modelled; rows are matched down the roll only.
- Railroading is off unless the fabric is said to allow it, because most upholstery cloth is
  woven with the strong direction down the roll.

## Common questions

### How much fabric does a three-seat sofa take?

On a 140 cm plain cloth, the panel list here comes to roughly 11–12 m for a three-seater with three boxed cushions, before piping or a skirt. Trade tables quote 12–16 m because they include the trimmings and assume a pattern to match — the calculator shows you which of the two situations you are in.

### Are the preset dimensions measurements of my furniture?

No, and they are the only guess in the calculation. They are typical sizes for common furniture, offered so the table is not empty. Every row is editable, and once you have measured your own piece the arithmetic over those rectangles is exact.

### Why does it want to seam the back of a sofa?

Because a 190 cm back panel will not come out of a 140 cm roll in one piece. A centre seam is ordinary upholstery practice, and the calculator says how many parts and how wide each will be. The alternative is railroading the cloth or buying a wider one.

### What is railroading, and should I do it?

Running the fabric sideways, so the roll width becomes the height of the panel instead of its width. It removes the seams from a wide back and often saves cloth, but it only suits fabric sold as railroadable — most upholstery cloth is woven with the strong direction down the roll, and turning it costs wear.

### Why add a cutting margin?

Because a cover is cut, fitted over a frame, and sometimes cut again, and cloth stretched over a curve rarely lands where the tape said. Upholsterers allow 10–15%; the calculator defaults to 10% and lets you change it.

## 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.
- [Fabric yardage calculator](https://fabricmeasure.com/calculators/fabric-yardage-calculator/): Piece size, how many, roll width — the length to buy, and the strip you pay for but never cut.
- [Fabric weight chart](https://fabricmeasure.com/charts/fabric-weight-chart/): Weight bands in g/m² and oz/yd², and what each band is actually used for.
- [Pattern repeat calculator](https://fabricmeasure.com/calculators/pattern-repeat-calculator/): The cut length a repeat forces, what is trimmed from every piece, and what matching the design costs.
