In practice

Quote it by saying it

Every operation in the app is a tool the chat can call, so a upholstery shop can price work by describing it — with your materials and your rates doing the arithmetic.

Upholstery Shops Chat

Reupholster a three cushion sofa in a fabric with a 27 inch repeat, customer is supplying the material

Called 5 tools

  • estimate_yardage(piece: "3-cushion sofa", repeat_in: 27)
  • flag_com(customer_supplied: true)
  • add_material("foam, dacron, webbing")
  • apply_labor(strip: 3.0, rebuild: 8.5)
  • price_quote(margin: 0.35)

18.5 yards needed with the repeat — COM, so no fabric cost. Foam and supplies $214, 11.5 hours labor → quoted at $1,268.

Every number here came from your costing engine. The model picked the tools and filled in the arguments — it never does the arithmetic.

What makes costing hard in a upholstery shop

  • Yardage that depends on pattern repeat and railroading, not just piece size
  • Customer's own material (COM) that carries labor but no material cost
  • Foam, batting and webbing priced by very different units
  • Frame repair discovered after the piece is already stripped

Typical materials

  • Fabric and leather, by the yard and by the hide
  • Foam, batting and dacron
  • Webbing, springs and frame stock
  • Thread, staples and trim

Costed in

yards, hides, hours

A formula might look like

(yards × $/yd × repeat factor) + foam + (labor hours × shop rate)

What it does

Built to handle exactly this

The same four pieces, set up around how a upholstery shop actually works.

Materials with your attributes

Define the fields your upholstery shop tracks, not a generic SKU with a quantity. Fabric and leather, by the yard and by the hide sits alongside everything else you buy.

Purchase units to usage units

Set the conversion and the waste factor once. Quote in yards, hides, hours without redoing the arithmetic every time.

Your real labor rates

Separate rates per operation, so the expensive steps carry their own cost instead of hiding inside an average.

Your pricing formula

Minimums, quantity breaks and margin, applied the same way on every quote regardless of who wrote it.

Reprice when costs move

Change one material price and see every affected quote immediately — before a customer finds it for you.

A defensible breakdown

Show materials, labor and overhead separately when someone asks why the number is what it is.

Early access

Get in early as a upholstery shop

Set up your materials and rates once, and quote the way a upholstery shop actually works — by clicking or by asking.

  • Founding accounts lock their price for life
  • No card, no trial clock, no sales call
  • Import your existing parts list to start

No card required. Unsubscribe any time.

Know what the job costs before you quote it

Built around how a upholstery shop actually prices work.

Founding accounts lock their price for life. No card required.