Romo material note

How to Choose Upholstery Fabric for Wholesale: The 4 Numbers That Decide Everything

2026-09-28 · Anouk de Vries

The short answer, up front

Before anything else: four numbers decide most wholesale fabric outcomes — Martindale rub count, lightfastness rating, fire classification for the destination market, and usable width after trimming. Get all four in writing before the bulk order and you dodge the majority of the expensive problems. Skip one, and you'll pay for it later.

Everything else — hand feel, color, brand recognition, price per meter — matters. None of it sinks an order on its own. These four do.

  • Rub count — ISO 12947-2 (Martindale) or ASTM D4157 (Wyzenbeek). Different tests, not interchangeable numbers.
  • Lightfastness — AATCC 16 or ISO 105-B02, blue wool scale 1–8.
  • Fire classification — market-specific, and issued per colorway and per finish, not per collection.
  • Usable width — the number after the selvedge, not the nominal width on the header card.

If you're short on time, screenshot that list. The rest of this is why I know.

Why you should trust any of this

I handle fabric specification and sourcing for B2B distributor accounts — upholstery, curtain, rugs, and wallcovering — and I've been doing it for nine years. In that time I've made and documented 14 significant mistakes, totaling roughly $31,000 in rework, air freight, and margin I had to eat. I now maintain our team's pre-order checklist, mostly so nobody repeats what I did.

Two of them were expensive enough that I still think about them.

In November 2022 we shipped blackout curtain fabric on an OEM basis for a 240-room hotel refurbishment. I said "blackout" in the brief. The mill heard "dim-out." Nobody wrote down a light-blocking percentage. The fabric arrived, looked great on the roll, passed the hand-feel check — then failed the client's light-box test in the mock-up room at 88% blocking instead of the 99.9% the spec package implied. That one cost $6,400 in replacement fabric plus expedited freight (this was back in 2022), and it put a nine-day hole in the install schedule. Note to self: "blackout" is not a specification. It's a vibe.

Then in 2023, a restaurant project: 22 velvet banquette cushions. I went back and forth between a woven at 40,000 Martindale and a mohair at 30,000 for two weeks. On paper the 40,000 won on every line. My gut said mohair. I went with the spreadsheet. Seven months later, 13 of the 22 cushions showed visible pile distortion where people sat. Never expected the higher rub count to be the wrong call — turns out the crush recovery was the deal-breaker, and it wasn't on the data sheet.

The four numbers, and what actually goes wrong with each

1. Rub count — read it as a floor, not a promise

Martindale (ISO 12947-2, or ASTM D4966) and Wyzenbeek (ASTM D4157) are different machines with different motions. As a rough working guide: light domestic starts around 15,000 Martindale; general domestic 20,000–25,000; heavy domestic 25,000–30,000; commercial 30,000–40,000; heavy contract 40,000 and up. On the Wyzenbeek scale, 15,000 double rubs is light duty, 30,000 is heavy duty, and 51,000+ is what most US contract specifiers treat as heavy duty. If your end use is heavy contract, 40,000 Martindale is a no-brainer — but it's a floor, not a guarantee.

Here's the part people get wrong. Rub count measures abrasion resistance. It says nothing about pilling, snagging, pile crush, or how the fabric behaves after twenty cleanings. For velvet, chenille, and anything with a long float, ask separately about crush recovery and pilling resistance (Martindale pilling, or ASTM D4970). When we spec romo velvet fabric for a contract banquette, the data sheet gives me the Martindale number — but I still ask the rep directly about crush recovery, because that's the number that isn't printed anywhere. That's the red flag I missed in 2023.

2. Lightfastness — and why outdoor fabric plays by different rules

Blue wool scale, 1 to 8, higher is better. For upholstery in indirect sunlight, 4–5 is generally the floor. Direct sun exposure pushes you to 6 or above. For outdoor applications you want a minimum of 7, plus the right weathering protocol — AATCC 169, or ISO 105-B02 with a wet cycle.

I've lost exactly one sofa to this. A client put a 4-rated fabric in a west-facing sunroom in Phoenix. Eighteen months later the seat backs and the seat fronts were two different colors. It wasn't a defect. It was physics. The same logic applies to romo rugs — face weight, backing construction, and lightfastness tell you far more about how a rug survives a corridor or a sunroom than the styling photograph does.

3. Fire classification — the one that's market-specific

There is no such thing as universally "fire-retardant fabric," and any supplier who claims it is either guessing or selling you a topical treatment that can wash out. What matters is which test and which classification your destination market actually requires:

  • US drapery: NFPA 701
  • US residential upholstery: California TB 117-2013 — a smolder test, not an open-flame test
  • US contract upholstery: NFPA 260 or UFAC Class 1
  • UK/EU contract seating: BS 5852, source 5 (Crib 5)
  • UK/EU curtains: BS 5867-2, Type B or Type C
  • EU wallcovering: EN 13501-1, typically B-s1,d0

Verify current requirements with the relevant authority or your testing lab before you commit, because these get revised. Certificates also expire, and they're typically issued per colorway and per finish — not per collection. A certificate for one color in a range does not cover the color you actually ordered. I've watched a shipment sit on a dock over exactly that gap.

4. Usable width, repeat, and the yardage math nobody checks

A 140cm nominal width typically gives you about 137cm usable after the selvedge. Railroaded fabric flips the whole calculation. Large pattern repeats can add 20–30% waste on a cut-length order, and half-drop matches add more on top. If you're pricing leather fabric wholesale, the math shifts again — hides are sold by square footage with natural variation, so a 10–15% allowance for defects, scars, and belly areas is normal, not a negotiating tactic.

I once quoted a 340-meter job assuming a straight match. It was half-drop with a 64cm vertical repeat. The real number was 419 meters. (Ugh.) That's a $1,900 miss on one line item, and the client noticed before I did.

Where a boring process beats good judgement

My honest position: the reason I don't make these mistakes anymore isn't that I got smarter. It's that we stopped doing it from memory.

Every order now passes through a single spec sheet before a PO goes out — the four numbers above, plus dye lot, backing, cleaning code, and test certificate IDs. Switching to that cut our sample-to-PO turnaround from nine days to four, because we stopped sending three rounds of clarifying emails to the mill. Fewer manual steps, fewer transcription errors.

The bottom line on process: it isn't that software is magic. It's that every handoff where a human retypes a spec is a chance to retype it wrong. Efficiency in this industry doesn't come from working faster. It comes from removing the places where information gets re-typed, re-interpreted, or quietly dropped.

The efficient process isn't faster because it's clever. It's faster because it stops you from having the same conversation three times.

Where that argument gets weaker: anything genuinely custom. Digitally printed panels, dye-to-match programs, hand-knotted rugs. That work still lives or dies on a person's judgement and a real mill relationship, and no checklist replaces either one.

When this advice doesn't apply

A few honest exceptions.

If it's one chair in one room, relax. A residential accent piece doesn't need 40,000 Martindale. Overspecifying a sofa in a spare bedroom just costs you money you didn't need to spend.

If a designer has already specified and warranted the selection, your job is to confirm the four numbers match the end use — not to second-guess the aesthetic. Velvet in a hotel lobby is sometimes the entire point of the scheme, and lower durability in a low-traffic zone is a reasonable price for that. That can be the right call, and I've made it.

And if you're buying discontinued or deadstock fabric, get it in writing that there is no continuity. You cannot reorder it, and no supplier should promise you otherwise. Buy your overage up front. That's a lesson that cost me $2,100 on a wallcovering job in 2021.

One last note, since people always ask: as of Q1 2026, contract-grade velvets we quoted ran roughly $18–$46 per linear meter at 140cm width. That range is based on quotes we collected from six European mills, not a published price list — verify current pricing before you build a budget on it, because it has moved twice in two years.

Trust me on this one: the number on the header card is a starting point, not a specification. The four numbers are the specification.