← Back to Shop Operations
Shop OperationsUU-OPS-101

Estimating & Bidding: A Repeatable Labor + Material Formula

How to quote consistently across jobs and crew members, instead of re-deriving a price from scratch every time.

1. Why a repeatable formula beats a gut-feel quote

A shop that estimates by feel gets inconsistent margins job to job, and inconsistent quotes between whoever happens to answer the phone. A repeatable formula — the same inputs, applied the same way, every time — protects margin, makes training new estimators possible, and gives customers a quote they can trust wasn't just made up on the spot.

2. The core formula

Estimate = (Labor rate × estimated labor hours) + (Material cost × markup multiplier) + fixed job costs

Each of the three components should be set deliberately, not guessed per job:

Labor rate — Set one shop-wide hourly labor rate that covers wages, burden (payroll taxes, workers' comp, benefits), equipment depreciation, and a margin contribution — not just the upholsterer's wage. Recalculate it at least annually as costs change, and apply it uniformly so two estimators quote the same job the same way.

Estimated labor hours — Build a reference table of typical labor hours by job type and complexity (e.g. hours per yard of fabric for a standard sofa re-cover, hours for a dining chair seat, hours for a boat cushion set) from your own shop's historical job data. Track actual labor hours against the estimate on completed jobs and feed that back into the table — this is the single highest-leverage thing a shop can do to make future quotes more accurate.

Material cost & markup — Price fabric, foam, and hardware at your actual cost, then apply a consistent markup multiplier (not a flat dollar add-on) so margin scales correctly with material cost. Decide the multiplier deliberately — it needs to cover handling, waste/overage, sourcing time, and the carrying cost of inventory, not just "what feels fair."

3. Fixed and pass-through costs to account for separately

CostTreatment
Pickup / deliveryEither a flat fee by zone or priced into the quote — decide once and apply consistently rather than negotiating it per customer
StorageA daily rate for items held beyond an agreed window keeps storage from becoming free warehousing
Rush turnaroundA defined rush premium (not an informal favor) protects normal-queue customers and compensates for the schedule disruption
Frame or suspension repairPrice as its own line item when the existing frame/suspension needs work beyond the re-cover — don't fold it silently into "labor"

4. Turning the formula into a written quote

  • Itemize labor and materials separately on the customer-facing quote, even if your internal formula blends them — it builds trust and makes change orders easier to explain.
  • State what the quote assumes (e.g. existing frame is sound, existing suspension is reusable) so a surprise condition found mid-job is a documented change order, not a dispute.
  • Set a validity window on the quote (e.g. 30 days) since material costs move.

Shop practice

Review actual labor hours vs. estimated hours on every completed job, at least monthly. A formula that isn't checked against reality drifts quietly out of accuracy until a whole quarter of jobs is under-priced.

Sources

General operating framework for upholstery shops. Specific labor rates, hour benchmarks, and markup multipliers are shop- and market-specific — this guide describes the structure to build, not a universal number to copy.

A note on this content: This article is general trade guidance written for National Upholstery's member network — it isn't legal, safety, or compliance advice, and it isn't a substitute for the current text of any standard, code, or manufacturer specification it references. Standards get revised and local requirements vary; before relying on anything here for an actual compliance or liability decision, verify current requirements with the applicable standards body, code official, or material manufacturer.