Upholstery Shop Profit Margins: What You Should Be Making

The average upholstery shop targets 45 to 55% gross margin. Shops below 40% gross margin are leaving money on the table, either underpricing jobs, overbilling fabric at cost without markup, or letting scope creep eat into labor without charging for it. Knowing the benchmarks lets you compare your shop's performance against actual industry numbers, not guesses.

Gross margin is the most useful number to track. It tells you whether your pricing structure is working before you account for overhead. Net margin tells you whether the whole business is working. Both matter, but gross margin is the one you can improve directly through pricing.

TL;DR

  • A successful upholstery business requires documented systems for quoting, job tracking, fabric management, and client communication.
  • Labor rate should cover overhead, materials, and a profit margin of 20-35%; most residential shops bill $65-120/hour depending on location.
  • Shops that track their numbers (jobs per week, average ticket, fabric waste rate) make better decisions than those relying on intuition alone.
  • Business growth in upholstery comes primarily through referral quality, not marketing volume: do excellent work and document it with photos.
  • Hiring additional upholsterers requires documented training procedures and quality controls to maintain consistent output.
  • Purpose-built shop software pays for itself through reduced fabric errors and faster quoting within the first quarter of use.

Gross Margin Benchmarks by Shop Type

Different types of upholstery shops run different margin profiles because their cost structures differ.

Residential upholstery shop (solo or small team):

  • Target gross margin: 50-60%
  • Typical fabric as % of revenue: 20-25%
  • Typical direct labor as % of revenue: 20-25%
  • Other direct costs (foam, supplies, thread): 5-8%

Higher margins are achievable in residential because you have flexibility in job selection. You can decline low-margin repair jobs and focus on full reupholstery at better rates.

Commercial upholstery shop (restaurant, hotel, fleet):

  • Target gross margin: 40-50%
  • Typical fabric as % of revenue: 25-35%
  • Typical direct labor as % of revenue: 20-25%
  • Other direct costs: 5-8%

Commercial margins are typically lower because commercial contracts are competitive and material costs per job are high. Volume compensates, a 20-chair restaurant contract at 42% margin is still more gross profit dollars than a single sofa at 55%.

Designer-focused shop (COM fabric, high-end residential):

  • Target gross margin: 55-65%
  • Fabric as % of revenue: 0-10% (client or designer supplies fabric)
  • Direct labor as % of revenue: 25-35%
  • Other direct costs: 5-10%

Designer-focused shops working with client-supplied fabric (COM) remove fabric cost entirely or nearly so. With fabric out of the equation, gross margins are the highest of any shop type. The tradeoff: job complexity is often higher (designer pieces, antiques, custom work) and the client base is more demanding.

Mixed residential/commercial shop:

  • Target gross margin: 45-55%
  • This is the most common shop profile and the baseline for most benchmarks

Why Shops Fall Below 40% Gross Margin

If your gross margin is below 40%, one or more of these is typically the cause:

Fabric sold at cost with no markup. Some shops pass fabric through to clients at exactly what they paid, treating fabric sourcing as a service rather than a revenue line. A 20-35% fabric markup on the fabric cost is standard. A $200 fabric order should generate $40-70 in fabric margin, not zero.

Labor rate set below cost. Your labor rate needs to cover your direct labor cost (wages if you have employees, or your own time at a fair rate if solo) plus a margin. If your labor rate is set at what you think clients will accept rather than what the work actually costs, you're losing on every job.

Pattern repeat not calculated in yardage. Fabric shortfalls due to pattern repeat are a common source of margin erosion. You ordered 16 yards, needed 19 for the pattern, paid for the extra 3 yards out of margin. The fix is to calculate pattern repeat into every quote.

Scope creep not charged. You discover frame repairs, spring retying, or foam replacement during teardown. If these aren't charged as add-ons, they come directly out of your original quote margin. The fix is a clear policy: additional repairs discovered during teardown are quoted and approved before proceeding.

Underestimating labor hours on complex pieces. A Chesterfield takes 18-22 hours, not 12. If you quote it at sofa price rather than Chesterfield price, you lose 6-10 hours of labor margin on every one.

Net Margin Benchmarks

Net margin is gross margin minus overhead. Overhead includes rent, utilities, insurance, equipment payments, software subscriptions, marketing, and your owner draw (if solo).

Typical net margin targets:

  • Solo shop, home-based or low-overhead location: 30-40%
  • Shop with lease, one employee: 20-30%
  • Multi-employee shop with notable overhead: 15-25%

Net margins below 15% indicate either underpricing or overhead too high relative to revenue. The fix is almost always pricing, overhead is harder to cut than it is to price better.

Fabric Cost as a Percentage of Revenue

Fabric is typically your largest direct cost. The benchmark:

Material-supplied jobs (you source fabric):

Fabric should represent 20-30% of total revenue for that job. If fabric is 40%+ of revenue, your labor rate is too low or your fabric markup is insufficient.

COM jobs (client supplies fabric):

No fabric cost. Labor and supplies are 35-45% of revenue. Net margins on COM jobs are typically higher because the highest-cost variable is removed.

Quick check: Take your fabric cost for last month and divide by your total revenue for last month. If the result is over 30%, your fabric cost is too high relative to your pricing.

Tracking Margin Per Job

The shops that most consistently hit target margins track margin per job, not just overall. Here's why: overall gross margin of 50% can hide individual jobs losing money. If 5 high-margin jobs are averaging out 3 low-margin jobs, you don't see the problem jobs until you look at them individually.

Job cost tracking formula:

Revenue from job − (fabric cost + labor cost + supplies) = gross profit

Gross profit ÷ Revenue = gross margin %

A job tracking system that records actual fabric cost, labor hours, and supply costs per job lets you identify which job types are below target and adjust pricing accordingly. For the pricing side of this, the how to price reupholstery jobs guide covers the pricing formulas that produce target margins. For the cost estimation side, see the upholstery cost estimation guide.

Frequently Asked Questions

What is a good profit margin for an upholstery shop?

A target gross margin of 45-55% is the standard benchmark for a mixed residential/commercial upholstery shop. Designer-focused shops working with COM fabric can achieve 55-65%. Commercial-only shops typically run 40-50%. Any shop below 40% gross margin has a pricing or cost structure problem. Net margin (after overhead) typically runs 15-30% depending on overhead levels, a home-based solo shop can achieve 35%+ net, while a multi-employee shop with a commercial lease is typically targeting 20-25% net.

How do I increase my upholstery shop margins?

The four levers are: (1) add a fabric markup of 20-35% on all material-supplied jobs; (2) recalculate your labor rate to cover actual cost plus target margin, not what you think clients will accept; (3) calculate pattern repeat into every yardage quote so shortfalls don't come out of margin; (4) charge for additional work discovered during teardown rather than absorbing it. Most shops that improve margin considerably do so through the fabric markup and labor rate, both are pricing decisions that take effect immediately without any operational change.

What percentage should fabric cost as part of my upholstery revenue?

On material-supplied jobs (you source the fabric), fabric cost should represent 20-30% of total job revenue. If fabric is above 30% of revenue, your fabric markup is insufficient or your labor rate is too low relative to the material cost. On COM jobs where the client supplies fabric, fabric is 0% of your cost, those jobs should run higher gross margins to compensate for the complexity of working with unfamiliar material. Track your fabric cost as a percentage of revenue monthly. If it's trending up, investigate which job types are driving the change.

How do I handle slow seasons in an upholstery business?

Most upholstery shops experience slower periods in mid-winter and sometimes mid-summer. Use slow periods for marketing that builds future demand: update your Google Business Profile with recent photos, reach out to interior designers who may have spring projects, and run targeted promotions for specific job types. Some shops use slow periods for staff training, equipment maintenance, or developing new service offerings like commercial contracts that generate steadier volume.

Sources

  • National Upholstery Association
  • Association of Master Upholsterers and Soft Furnishers (AMUSF)
  • Furniture Today (trade publication)
  • Upholstered Furniture Action Council (UFAC)

Get Started with StitchDesk

Running a profitable upholstery business means getting the operational details right, from quoting accuracy to fabric tracking to client communication. StitchDesk gives upholstery shops purpose-built tools for all of these without the overhead of paper systems or generic software. Start a free trial and see how StitchDesk supports your business goals.

StitchDesk | purpose-built tools for your operation.