<link href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Google+Sans+Flex:opsz,wght@6..144,1..1000&display=swap" rel="stylesheet">
Operations

ERPNext traceability that answers fast

Traceability is only worth its data-entry cost if it answers the question you will actually be asked. This guide covers picking the right granularity and proving the trace works before an incident tests it.

  • 10 min read
  • Intermediate
  • Reviewed August 2026

Should I use batches or serial numbers in ERPNext?

Use batches when a group of units shares an identity — a production lot, a dye lot, a shipment with one expiry date. Use serial numbers when each unit must be identified individually, typically for warranty, service history or high value. Serial tracking on a fast-moving low-value item creates data-entry burden without answering a question anyone asks.

Before you start

  • The question you need to answerRecall scope, warranty lookup or expiry control lead to different designs. Decide which one before configuring.
  • A naming conventionBatch identifiers that carry date and line information are far easier to work with during an incident than sequential numbers.
  • Agreement from the floorWhoever scans or records at each step has to be able to do it at the pace the work runs. A design they cannot keep up with produces fiction.
  • No existing stock for the itemTurning tracking on for an item that already has a balance requires clearing or reconciling it first.

Configuration

  1. Decide granularity item by item

    This is a per-item decision, not a policy for the whole catalogue. Most businesses need serial numbers on a small number of items and batches on rather more, and neither on the majority.

  2. Enable tracking on the item

    Set batch or serial on the item master before any stock exists. ERPNext resists changing this once transactions have been posted, and for good reason — the existing balance has no identity to attach to.

    Where Stock > Item > Inventory

  3. Set the batch naming series

    Automatic batch creation with a meaningful series removes a manual step and prevents inconsistent identifiers. Include the date, and the line or shift if you run more than one.

    Batch identifiers are what someone reads under pressure during a recall. Make them legible.

  4. Set expiry handling if the item has a shelf life

    Configure shelf life on the item so ERPNext can calculate expiry from the manufacture date, and decide whether to enforce first-expiry-first-out on picking or to leave it advisory.

  5. Capture identity at every stock movement

    Receipt, transfer, consumption, delivery. A single step where identity is not recorded breaks the chain, and a broken chain fails at exactly the moment you need it.

  6. Decide the customer-facing granularity

    Recording which batch went to which customer is what makes a recall a phone list rather than a public notice. Confirm the delivery note captures it.

  7. Rehearse a trace in both directions

    Pick a finished batch and trace back to its inputs. Pick an input batch and trace forward to every customer who received it. Time both. If either takes longer than an incident allows, the design needs work before it is relied on.

Common mistakes

Serialising everything

Serial numbers on consumables add a scan to every movement and answer nothing. The data entry gets skipped, and then the serialised items you did need are unreliable too.

Turning tracking on after stock exists

The existing balance has no batch, so it sits outside the trace permanently and every report has an unexplained residue.

Meaningless batch identifiers

A sequential number tells nobody when or where something was made. During an incident that lookup is the delay.

Tracing inward but not outward

Knowing which supplier lot went into a batch is half the answer. Without the delivery side you cannot tell customers apart, so every recall is total.

Never testing the trace

A traceability design that has not been rehearsed is a hypothesis. Incidents are a poor time to discover a gap.

Proving traceability works

  • Pick a finished batch at random and list every input lot that went into it, without opening a spreadsheet.
  • Pick an input lot and list every customer who received something containing it.
  • Confirm both lookups complete within the time your recall procedure allows.
  • Confirm no stock of a tracked item sits without a batch or serial identity.
  • For shelf-life items, confirm expiry is calculated and that picking behaves the way you configured it.
  • Have someone from the floor perform a normal receipt and issue while you watch, and confirm identity capture does not slow them beyond what they will sustain.

Questions people ask

ERPNext supports both on the same item, and it is occasionally right — a serialised unit belonging to a manufacturing lot. It roughly doubles capture effort, so use it only where both questions genuinely get asked.

Clear the balance to nil or reconcile it in under an opening batch, then enable tracking. An opening batch is a compromise, but it is better than a permanent untracked residue.

It adds a selection step. Automatic batch selection by expiry or receipt order removes most of it for warehouse staff, leaving manual choice only where it matters.

At least the shelf life plus your longest claim window, and longer where a sector rule or a customer contract requires it. Storage is cheap compared with not being able to answer.

Need a trace you can rely on?

Most traceability designs fail on the outward leg or on a step where identity is not captured. Describe your process and we will tell you where the chain breaks.

Review my setup
ERPNext CalculatorContact Us