{
  "slug": "bakery-batch-yield-cost",
  "title": "Bakery Batch Yield Cost Calculator",
  "heading": "Bakery Batch Yield Cost Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/bakery-batch-yield-cost",
  "summary": "Cost per finished unit from a batch, accounting for trim and reject loss.",
  "description": "A batch of dough or batter rarely converts 1:1 into sellable units. Trim loss from cutting, edge scraps, test bakes, and outright rejects all reduce the number of sellable pieces below the theoretical batch yield. This calculator takes your total batch ingredient cost, labor time, and expected loss percentage, and returns a real cost per sellable unit rather than a theoretical one. It's built for bakers scaling from home batches to wholesale volume who need to know if a dozen croissants priced off ingredient cost alone is actually profitable once you factor in the two that get scrapped for shape, the ones eaten as quality control, and the labor minutes per batch. Run it per recipe whenever you change batch size, since loss percentage often changes non-linearly as batches get larger or smaller.",
  "formula": "Sellable units = batch yield × (1 − loss%). Cost per unit = (ingredient cost + labor cost) ÷ sellable units.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=bakery-batch-yield-cost",
  "inputs": [
    {
      "id": "batchYield",
      "label": "Theoretical batch yield (units)",
      "kind": "number",
      "hint": null,
      "default": 48,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "lossPct",
      "label": "Trim/reject loss",
      "kind": "number",
      "hint": null,
      "default": 8,
      "unit": "%",
      "min": 0,
      "max": 50
    },
    {
      "id": "ingredientCost",
      "label": "Total ingredient cost for batch",
      "kind": "number",
      "hint": null,
      "default": 32,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "laborHours",
      "label": "Labor hours for batch",
      "kind": "number",
      "hint": null,
      "default": 2.5,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "laborRate",
      "label": "Labor cost per hour",
      "kind": "number",
      "hint": null,
      "default": 22,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "price",
      "label": "Retail price per unit",
      "kind": "number",
      "hint": null,
      "default": 4.25,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "costPerUnit",
      "label": "Real cost per sellable unit",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "sellable",
      "label": "Sellable units after loss",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "laborCost",
      "label": "Labor cost for batch",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "marginPerUnit",
      "label": "Margin per unit at your price",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "batchProfit",
      "label": "Total batch profit",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Theoretical batch yield (units): 48",
      "Trim/reject loss: 8 %",
      "Total ingredient cost for batch: 32 $",
      "Labor hours for batch: 2.5",
      "Labor cost per hour: 22 $",
      "Retail price per unit: 4.25 $"
    ],
    "outputs": [
      "Real cost per sellable unit: $1.97",
      "Sellable units after loss: 44",
      "Labor cost for batch: $55.00",
      "Margin per unit at your price: $2.28",
      "Total batch profit: $100.68"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter theoretical batch yield (units).",
      "Enter trim/reject loss (%).",
      "Enter total ingredient cost for batch ($).",
      "Enter labor hours for batch.",
      "Enter labor cost per hour ($).",
      "Enter retail price per unit ($).",
      "Read your real cost per sellable unit 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": {
        "batchYield": 29,
        "lossPct": 5,
        "ingredientCost": 19,
        "laborHours": 1.5,
        "laborRate": 13,
        "price": 2.55
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "batchYield": 48,
        "lossPct": 8,
        "ingredientCost": 32,
        "laborHours": 2.5,
        "laborRate": 22,
        "price": 4.25
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "batchYield": 77,
        "lossPct": 13,
        "ingredientCost": 51,
        "laborHours": 4,
        "laborRate": 35,
        "price": 6.800000000000001
      }
    }
  ],
  "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": "What loss percentage is normal for baked goods?",
      "a": "Simple items like drop cookies or muffins often lose under 5%. Laminated items like croissants, hand-shaped bread, or anything cut to precise shapes commonly loses 8-15% to trim, misshapes, and QC tasting. New recipes or new staff push this higher until the process is dialed in."
    },
    {
      "q": "Should I count staff tasting/QC bites as loss?",
      "a": "Yes, be honest about it. A baker eating the visibly imperfect ones is still real cost even though it doesn't feel like waste. If you don't count it, your cost-per-unit understates reality and you'll wonder why the batch never matches its theoretical margin at month end."
    },
    {
      "q": "How do I lower loss without changing the recipe?",
      "a": "Standardize portioning with a scale or cutter instead of eyeballing, batch-train new staff on a lower-stakes recipe first, and track loss by shift to see if it's a specific time slot or person driving the number up. Most reductions come from process consistency, not ingredient changes."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/bakery-recipe-scaling",
    "https://www.revenuelab.fyi/toolbox/bakery-shelf-life-waste"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Bakery Batch Yield Cost Calculator (https://www.revenuelab.fyi/toolbox/bakery-batch-yield-cost)"
}