How to Calculate the True Cost of a Production Batch (Material, Labour, Overhead, Scrap and By-Products)
A production batch costs more than its ingredients. This guide shows how to build up the real cost of a batch — material at actual lot cost, labour and machine time, overhead absorption, scrap, by-product credits — with a worked USD example and the journal entries behind it.

The true cost of a production batch is the sum of the material actually issued (at the cost of the lots it came from), the labour and machine time spent on it, a fair share of factory overhead, and any scrap above the normal allowance — less the value of by-products recovered. Divide that by the good units produced and you have a cost per unit you can defend to an auditor and use to price the product.
Most small and mid-sized manufacturers know their ingredient cost per batch and nothing else. The rest is estimated at month end, which is how a product that "makes 30% margin" turns out to lose money once labour, energy and rework are counted. This article builds the cost up layer by layer, with a worked example and the accounting entries each layer creates.
The five layers of batch cost
- Direct material — every raw material and packaging item issued to the batch, valued at the actual cost of the stock lots consumed (FIFO or FEFO), not a standard or list price.
- Direct labour — operator minutes per stage, at each person's hourly rate, or piece-rate earnings per good unit.
- Machine time — minutes per machine at an hourly rate that recovers depreciation, maintenance and energy.
- Overhead — indirect costs (supervision, utilities, rent, quality lab) absorbed into the batch, usually per labour hour or per machine hour.
- Scrap and by-products — normal process loss is already built into the recipe; abnormal scrap is charged to the period, and by-products with a resale value are credited back against the batch.
Worked example: a 1,000 kg batch of a liquid cleaning concentrate
All figures are illustrative. The recipe calls for 1,000 kg of input and expects a 2% normal process loss, so 980 kg of good output is the standard yield.
Step 1 — Material at actual lot cost
| Item | Quantity issued | Lot cost (USD/kg) | Cost (USD) |
|---|---|---|---|
| Surfactant base | 300 kg | 2.40 | 720.00 |
| Solvent | 150 kg | 1.10 | 165.00 |
| Fragrance | 10 kg | 18.00 | 180.00 |
| Water (treated) | 540 kg | 0.02 | 10.80 |
| 5 L containers | 196 pcs | 0.45 each | 88.20 |
| Material total | 1,164.00 |
Two things matter here. First, the fragrance came from a lot bought last month at USD 18.00; the current list price is USD 19.50. Using the actual lot keeps the cost honest and makes the batch traceable to the supplier delivery. Second, the containers are issued at the filling stage, not at mixing — a process template that knows which stage consumes which material gets the timing right automatically.
Step 2 — Labour and machine time
| Stage | Resource | Minutes | Rate (USD/hour) | Cost (USD) |
|---|---|---|---|---|
| Mixing | Operator A | 90 | 14.00 | 21.00 |
| Mixing | Mixer M1 | 90 | 32.00 | 48.00 |
| Filling | Operator B | 120 | 12.00 | 24.00 |
| Filling | Filling line F2 | 120 | 20.00 | 40.00 |
| QC release | Lab technician | 30 | 18.00 | 9.00 |
| Labour and machine total | 4.0 labour hours | 142.00 |
Step 3 — Overhead absorption
Suppose the plant budgets USD 240,000 of indirect cost for the year against 12,000 direct labour hours, giving an absorption rate of USD 20.00 per labour hour. The batch used 4.0 labour hours, so it absorbs USD 80.00 of overhead.
The rate is a policy choice. Per labour hour suits labour-heavy plants; per machine hour suits automated lines; some plants use a percentage of material cost. Pick one, document it, and apply it consistently so batches are comparable.
Step 4 — Yield, scrap and by-products
The batch produced 960 kg of good concentrate instead of the 980 kg standard. The 20 kg shortfall is abnormal scrap. Its cost is the batch's input cost per kg of expected output:
Input cost so far = 1,164.00 + 142.00 + 80.00 = USD 1,386.00
Cost per expected kg = 1,386.00 / 980 = USD 1.4143
Abnormal scrap = 20 kg × 1.4143 = USD 28.29
Abnormal scrap is charged to a scrap or process-loss expense for the period, not buried in the finished goods. It also recovered 15 kg of a rinse-grade by-product that sells for USD 0.60/kg, which is credited to the batch: USD 9.00.
Step 5 — Cost per unit
Finished goods cost = 1,386.00 − 28.29 (abnormal scrap) − 9.00 (by-product credit) = USD 1,348.71
Good output = 960 kg = 192 containers of 5 L
Cost per kg = USD 1.405
Cost per container = USD 7.02
If the container sells at USD 9.50 wholesale, the batch margin is 26%, not the 40% the material-only calculation suggested. That gap is exactly why batch costing exists.
The journal entries behind the batch
Each layer above is a movement between accounts. In a system where production posts to the ledger as it happens, the batch produces these entries:
| Event | Debit | Credit | Amount (USD) |
|---|---|---|---|
| Material issued to the batch | Work in progress | Raw material / packaging stock | 1,164.00 |
| Labour and machine time recorded | Work in progress | Applied labour / applied machine cost | 142.00 |
| Overhead absorbed | Work in progress | Applied overhead | 80.00 |
| Abnormal scrap | Scrap and process loss (expense) | Work in progress | 28.29 |
| By-product received into stock | By-product stock | Work in progress | 9.00 |
| Good units received | Finished goods stock | Work in progress | 1,348.71 |
After the last entry the work-in-progress balance for this batch is zero. If it is not — because material was over-issued and never returned, or a stage was closed without recording its output — the remainder is posted to an operations variance account where a controller can see it. Applied labour, applied machine and applied overhead are contra accounts that are later compared with actual wages, depreciation and utilities; the difference is over- or under-absorption for the period.
Common mistakes that distort batch cost
- Using list price instead of lot cost. Prices move; the stock on the shelf was bought at a specific price. FIFO or FEFO issue from real lots fixes this and gives traceability for free.
- Ignoring packaging. Containers, labels, cartons and shrink wrap are often 5–15% of the cost of a consumer product.
- Treating all scrap as normal. Normal loss belongs in the recipe yield; abnormal loss belongs in an expense line that management reviews.
- Counting rework as free. A batch that fails QC and goes back to mixing consumes a second round of labour and machine time. The process route should record it, not hide it.
- Costing at month end from memory. By then nobody remembers which mixer ran the batch or how long filling took. Capture time at the stage, when it happens.
- Never reconciling applied overhead. An absorption rate set three years ago silently under-costs every batch when energy prices rise.
What good batch costing software should do
- Issue material from specific lots at their actual cost, with FEFO where expiry matters.
- Record labour and machine minutes per stage, with rates per person and per machine.
- Apply overhead by a documented rule, automatically.
- Separate normal yield loss from abnormal scrap and credit by-products.
- Post every movement as a balanced journal entry — WIP, finished goods, scrap, applied cost — rather than exporting to a spreadsheet for the accountant to re-enter.
- Print a cost sheet per batch showing the build-up and the margin against the sell price.
This is how the manufacturing module in ERES is built: recipes in kg, g or percent of batch, process templates with material, work, output and inspection stages, and a cost sheet per work order whose lines are also the ledger entries. The accountant and the plant manager look at the same number.
Frequently asked questions
What is the difference between batch costing and standard costing?
Batch (or job) costing collects the actual cost of each specific batch. Standard costing sets a predetermined cost per unit and reports variances against it. Many process manufacturers use both: actual batch cost for the books, a standard for quoting and budgeting.
How do I set an overhead absorption rate?
Divide the budgeted indirect cost for the period by the budgeted driver (labour hours, machine hours or material cost). Review it at least annually and whenever a major cost such as energy moves significantly.
Should normal process loss be costed?
Normal loss is absorbed by the good units — the recipe expects 980 kg from 1,000 kg, so the 20 kg loss is part of the cost of the 980. Only loss beyond the expected yield is charged separately as abnormal scrap.
Can batch costing work without an ERP?
It can, with disciplined spreadsheets and a monthly reconciliation. It rarely survives growth: once there are dozens of batches a week, multiple stages and several machines, the data entry and reconciliation cost more than the software.
Want to see your own recipe costed stage by stage, with the journal entries posted automatically? Start a free ERES account or read how Factory Operations works.
Run your books on ERES
Accounting, inventory, POS, manufacturing, payroll and tax in one system — and an MCP server so your AI agent can use it too.


