{
  "slug": "apparel-decoration-quote",
  "title": "Apparel Decoration Quote Builder",
  "heading": "Apparel Decoration Quote Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/apparel-decoration-quote",
  "summary": "Combine blank, decoration, and markup into one client-ready quote.",
  "description": "Most decorated apparel quotes need to combine a blank garment cost, one decoration method's cost (screen print, embroidery, DTF, or DTG — entered as a flat estimated cost per piece from your own process calculators), a flat order-level setup fee, and a markup, into a single number a client can approve. This calculator is intentionally generic across decoration methods so you can use your own per-piece decoration cost (from the more detailed screen print, embroidery, or DTF calculators in this collection) as an input, then see the full client-facing quote with setup spread across quantity and your target margin applied. It's the final assembly step most shops do manually in a spreadsheet, and getting the markup right here is what separates a break-even job from a profitable one — apparel decorators commonly target 40-55% gross margin on the fully decorated piece after all production costs, though rush jobs and small runs justify pushing that higher to compensate for disruption to the shop schedule.",
  "formula": "Unit cost = blank + decoration cost + setup fee ÷ qty; price = unit cost ÷ (1 − target margin%).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=apparel-decoration-quote",
  "inputs": [
    {
      "id": "blank",
      "label": "Blank garment cost",
      "kind": "number",
      "hint": null,
      "default": 3.5,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "decorationCost",
      "label": "Decoration cost per piece",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "setupFee",
      "label": "Flat setup fee",
      "kind": "number",
      "hint": null,
      "default": 50,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "quantity",
      "label": "Order quantity",
      "kind": "number",
      "hint": null,
      "default": 60,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "targetMargin",
      "label": "Target gross margin",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": "%",
      "min": 0,
      "max": 90
    }
  ],
  "outputs": [
    {
      "id": "price",
      "label": "Price per piece",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "unitCost",
      "label": "Cost per piece",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalQuote",
      "label": "Total quote to client",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalProfit",
      "label": "Total gross profit",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Blank garment cost: 3.5 $",
      "Decoration cost per piece: 3 $",
      "Flat setup fee: 50 $",
      "Order quantity: 60",
      "Target gross margin: 45 %"
    ],
    "outputs": [
      "Price per piece: $13.33",
      "Cost per piece: $7.33",
      "Total quote to client: $800.00",
      "Total gross profit: $360.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter blank garment cost ($).",
      "Enter decoration cost per piece ($).",
      "Enter flat setup fee ($).",
      "Enter order quantity.",
      "Enter target gross margin (%).",
      "Read your price per piece on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "blank": 2.1,
        "decorationCost": 1.7999999999999998,
        "setupFee": 30,
        "quantity": 36,
        "targetMargin": 27
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "blank": 3.5,
        "decorationCost": 3,
        "setupFee": 50,
        "quantity": 60,
        "targetMargin": 45
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "blank": 5.6000000000000005,
        "decorationCost": 4.800000000000001,
        "setupFee": 80,
        "quantity": 96,
        "targetMargin": 72
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "Should I quote margin-based pricing or markup-based pricing?",
      "a": "Margin-based (price = cost ÷ (1 − margin%)) guarantees you hit a specific percentage of revenue as profit, while markup-based (price = cost × multiple) is simpler but yields a lower actual margin than the multiple suggests. Most experienced shop owners use margin-based math to hit revenue targets reliably."
    },
    {
      "q": "What margin should rush jobs carry?",
      "a": "Adding 15-25 percentage points of margin on rush jobs (48-72 hour turnaround) is standard practice, since rush work disrupts scheduled production, may require overtime labor, and increases error risk from working fast."
    },
    {
      "q": "How do I handle mixed decoration methods on one order?",
      "a": "Calculate a blended decoration cost per piece (weighted average across the sizes/methods used) before entering it here, or run separate quotes per sub-group and sum them for the client-facing total."
    },
    {
      "q": "Does setup fee visibility to the client matter?",
      "a": "Some shops itemize it so clients understand why small orders cost more per piece; others fold it in for simplicity. Itemizing tends to reduce client pushback on reorders, since they see the setup fee waived or reduced and understand why."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/screen-print-cost-per-shirt",
    "https://www.revenuelab.fyi/toolbox/garment-blank-margin",
    "https://www.revenuelab.fyi/toolbox/dtg-vs-screen-print-breakeven"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Apparel Decoration Quote Builder (https://www.revenuelab.fyi/toolbox/apparel-decoration-quote)"
}