Batch tracking is the unglamorous core of manufacturing quality. Get it right and a bad supplier batch becomes a four-retailer email. Get it wrong and the same event becomes a week of reconstruction. This playbook is the version I wish someone had handed me the first time.
What a batch actually is
A batch is a quantity of a material that was produced, packaged, or received as a single unit of traceability. In practice that usually means:
- Inbound (component) batches, a drum, a pallet, or a delivery receipt from a supplier. The supplier's batch code lives on the certificate of analysis; you assign your own internal receipt code on goods-in.
- Outbound (finished) batches, or “batches”, the output of one production run. One run, one finished batch, one code.
Both need identifiers. Both need dates. Both need a known quantity on hand at every point in time.
Design the batch code before you need it
Pick a code format that is:
- Readable by humans on the shop floor, so a dispute can be resolved by eye, not by scanner.
- Machine-readable, fixed length, no special characters, no ambiguity between O and 0.
- Informative, product prefix, year, and a sequence are usually enough.
LIP-RNO-2026-042beats4217on every axis. - Never re-used, batch codes are forever. If you re-use them, recalls will touch the wrong batches.
Inbound · receive with intent
- Record the supplier batch code. From their CoA, not the box. If the supplier changes format, capture both.
- Assign your internal receipt code. Short, unique per goods-in event.
- Record the receipt date and expiry / best-before. Expiry drives FIFO / FEFO picking later.
- Store quantity in the canonical UOM. See how to build a BOM for unit discipline.
- Attach the certificate of analysis.A PDF on the batch record means “show me the CoA for batch X” is one click away, months later.
Consumption · capture at the point of use
This is the step most small manufacturers do worst. The discipline: every batch consumed by a production run must be recorded on the finished batch with its quantity, timestamp, and operator.
The common failure modes:
- Capturing the batch at the start of the run only. If the drum empties and the next batch is opened mid-run, you have a multi-batch batch and your records say otherwise.
- End-of-day paperwork. The further from the moment, the less accurate the record. Capture during, not after.
- Units off by 1000x. A grams-vs-kilograms error made at consumption will break every downstream lookup.
A tablet at the station, with FIFO / FEFO suggestions and a scan field, turns the capture into a 10-second action. That is the only way batch tracking survives a busy day.
Outbound · the batch is on the shipment
The link from finished batch to customer shipment is the one that fails most often when it is manual. The shipment line must know the batch number it shipped. Otherwise a recall requires you to re-derive it from pick lists, possible, but slow and error-prone.
- Pick against batches, not just SKUs. The pick list says “50 × LIP-RNO from batch 2026-042”.
- Record the batch on the shipment at the moment of pick. Not reconstructed from a spreadsheet later.
- If a pick spans two batches, split the line. Twenty-five from one, twenty-five from another. Do not round.
The three lookups that matter
Once the data is captured, you need three directions of traversal:
- Forward from a component batch, which finished batches used it, which customers received them. This is the recall direction. See multi-batch recall explained.
- Backward from a customer shipment, which batches were in this shipment, which component batches contributed to them, which suppliers those batches came from. This is the customer-complaint direction.
- Sideways by date. “Every batch produced in the week of March 3rd”. Useful for in-house quality investigations that aren't batch-triggered.
FIFO, FEFO, and real life
Stock rotation is the boring, daily, traceability-adjacent discipline that prevents expensive problems:
- FIFO, first in, first out. Ship from the oldest batch on hand. Default for most discrete goods.
- FEFO, first expired, first out. Ship from the batch with the nearest expiry, regardless of receipt date. Default for anything with a shelf life (food, cosmetics, supplements).
The system should suggest the correct batch to pick. Operators overriding the suggestion should require a reason that lands in the audit trail.
Compliance · the minimum defensible record
Different sectors demand different specifics, but the minimum defensible batch record is approximately:
- Inbound batch: supplier, supplier batch, internal code, date, quantity, CoA.
- BOM version and formulation used on the run.
- Equipment and operator on the run.
- Inbound batch(s) and quantity consumed, with timestamps.
- Finished batch code, quantity, QA result, release status.
- Outbound shipments referencing the batch, per line.
If all of those exist and are linked, you can satisfy FDA 204 for food, MoCRA for cosmetics, and most supplement and beverage regimes. See FDA 204 for SMBs for the food-specific layer.
How Stokka implements batch tracking
Stokka captures consumption through the assembly and run flow, with quantities and timestamps, supports both continuous consumption (a litre of oil used gradually) and discrete consumption (a single sealed unit), and links every finished batch to the component batches it consumed. Shop-floor tablet capture at the station is on the roadmap for after launch. The one-screen ingredient-first recall report, every downstream batch, shipment, and customer, forward or backward from any node in the tree, ships in the launch box.
Further reading
Read multi-batch recall in under 60 seconds for how this plays out when a supplier calls. If you make food, read FDA 204 for small manufacturers. For the component-structure mechanics, see how to build a BOM.