{
  "slug": "scrap-rework-cost",
  "title": "Scrap & Rework Cost Calculator",
  "heading": "Scrap & Rework Cost Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/scrap-rework-cost",
  "summary": "The real dollar impact of a scrap rate or rework rate on a production run.",
  "description": "Scrap and rework are two different costs that get lumped together too often. Scrapped parts lose 100% of the material and processing cost invested up to the point of failure, and you have to make a replacement from scratch. Reworked parts recover most of their value but add extra labor and machine time to fix, and rework isn't always fully successful — some reworked parts still fail final inspection and become scrap anyway. This calculator takes your baseline part cost, scrap rate, rework rate, rework cost per unit, and rework success rate, then computes the true effective cost per good part shipped, which is always higher than your nominal per-part cost once you account for the units that had to be thrown away or fixed. This is the number that should feed into your real profitability analysis, not the theoretical per-part cost assuming 100% first-pass yield.",
  "formula": "Effective Units Needed = Order Qty ÷ (1 − Scrap Rate). True Cost per Good Part = (Total Units Made × Part Cost + Reworked Units × Rework Cost) ÷ Good Units Shipped.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=scrap-rework-cost",
  "inputs": [
    {
      "id": "orderQty",
      "label": "Order quantity (good parts needed)",
      "kind": "number",
      "hint": null,
      "default": 1000,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "partCost",
      "label": "Base cost per part",
      "kind": "number",
      "hint": null,
      "default": 8.5,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "scrapRate",
      "label": "Outright scrap rate",
      "kind": "number",
      "hint": null,
      "default": 4,
      "unit": "%",
      "min": 0,
      "max": 90
    },
    {
      "id": "reworkRate",
      "label": "Rework rate (fixable defects)",
      "kind": "number",
      "hint": null,
      "default": 6,
      "unit": "%",
      "min": 0,
      "max": 90
    },
    {
      "id": "reworkCost",
      "label": "Cost to rework one part",
      "kind": "number",
      "hint": null,
      "default": 3.2,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "reworkSuccessRate",
      "label": "Rework success rate",
      "kind": "number",
      "hint": null,
      "default": 85,
      "unit": "%",
      "min": 0,
      "max": 100
    }
  ],
  "outputs": [
    {
      "id": "trueCostPerGoodPart",
      "label": "True cost per good part shipped",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "unitsToMake",
      "label": "Units to start in production",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "totalCost",
      "label": "Total production cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "scrapCostTotal",
      "label": "Total cost lost to outright scrap",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Order quantity (good parts needed): 1000",
      "Base cost per part: 8.5 $",
      "Outright scrap rate: 4 %",
      "Rework rate (fixable defects): 6 %",
      "Cost to rework one part: 3.2 $",
      "Rework success rate: 85 %"
    ],
    "outputs": [
      "True cost per good part shipped: $9.144",
      "Units to start in production: 1,052",
      "Total production cost: $9,144",
      "Total cost lost to outright scrap: $358"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter order quantity (good parts needed).",
      "Enter base cost per part ($).",
      "Enter outright scrap rate (%).",
      "Enter rework rate (fixable defects) (%).",
      "Enter cost to rework one part ($).",
      "Enter rework success rate (%).",
      "Read your true cost per good part shipped 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": {
        "orderQty": 600,
        "partCost": 5.1,
        "scrapRate": 2.4,
        "reworkRate": 3.5999999999999996,
        "reworkCost": 1.92,
        "reworkSuccessRate": 51
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "orderQty": 1000,
        "partCost": 8.5,
        "scrapRate": 4,
        "reworkRate": 6,
        "reworkCost": 3.2,
        "reworkSuccessRate": 85
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "orderQty": 1600,
        "partCost": 13.600000000000001,
        "scrapRate": 6.4,
        "reworkRate": 9.600000000000001,
        "reworkCost": 5.120000000000001,
        "reworkSuccessRate": 100
      }
    }
  ],
  "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": "Why does units to make exceed the order quantity?",
      "a": "Because scrap and unsuccessful rework mean not every unit started becomes a good shipped part. If your combined loss rate is 10%, you need to start roughly 11% more units than the order calls for to end up with enough good parts, and that math compounds when rework itself has a failure rate."
    },
    {
      "q": "How is rework cost different from scrap cost?",
      "a": "A scrapped part loses its full cost — material, labor, and machine time already invested are a total write-off, and you must make a full replacement. A reworked part only adds the incremental cost to fix it, keeping most of the original investment intact, which is why rework is usually cheaper than scrap even when rework labor is expensive, as long as rework doesn't consume more time than making a new part from scratch."
    },
    {
      "q": "What's a healthy scrap rate for CNC machining?",
      "a": "Mature processes on stable materials often run 1-3% scrap. New setups, difficult materials (thin-wall, exotic alloys), or first-run programs commonly see 5-15% until the process is proven out and tooling/parameters are dialed in."
    },
    {
      "q": "How do I reduce the gap between nominal and true cost per part?",
      "a": "Attack root causes of scrap and rework directly — tighter process control, better fixturing, incoming material inspection, and operator training all reduce the loss rate, which drops the true cost per part faster than trying to negotiate down your base material or machine cost."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/oee-calculator",
    "https://www.revenuelab.fyi/toolbox/job-shop-quote-markup"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Scrap & Rework Cost Calculator (https://www.revenuelab.fyi/toolbox/scrap-rework-cost)"
}