If you manufacture food in New Zealand, batch tracking isn't optional. It's a regulatory requirement. The Ministry for Primary Industries (MPI) mandates that food businesses maintain traceability records that can link inputs to outputs and trace products both forward (to the customer) and backward (to the supplier).
But beyond compliance, batch tracking software is genuinely useful. It protects your brand when something goes wrong, helps you manage expiry dates, gives you visibility into production costs at a batch level, and provides the data you need to optimise your processes. This guide covers what NZ food manufacturers need to know about batch tracking: the regulatory requirements, the practical workflows, and what to look for in software that handles it properly.
MPI Traceability Requirements Explained
Under the Food Act 2014, all NZ food businesses must have a risk-based measure in place, either a Food Control Plan (FCP) or a National Programme, depending on the level of risk associated with their operations. Both require traceability.
What MPI Requires
At a minimum, NZ food businesses must be able to:
- Identify the immediate supplier of every food input (one step back)
- Identify the immediate recipient of every food product they supply (one step forward)
- Link inputs to outputs by connecting the raw materials used in production to the finished products they became (internal traceability)
These records must be:
- Maintained for the shelf life of the product plus one year, or for four years, whichever is longer
- Available for verification by MPI or your recognised agency
- Retrievable within a reasonable timeframe (typically 24 hours for a recall scenario, though faster is obviously better)
What This Means in Practice
For a food manufacturer, this translates to:
- Every raw material delivery must be recorded with supplier details, date received, batch number (supplier's batch), quantity, and expiry date
- Every production run must record which raw material batches were used, in what quantities, the date and time of production, and the finished product batch number assigned
- Every dispatch must record which finished product batches were sent, to which customer, in what quantities, and on what date
If a customer rings on Tuesday to say they've found a problem with one of your products, you need to be able to:
- Identify the batch number from the product label
- Look up which raw material batches went into that production run
- Identify every other finished product batch that used the same raw materials
- Identify every customer who received those affected batches
This is the chain of traceability that MPI expects. Spreadsheets can technically do it, but in a recall scenario where speed matters, a dedicated system does it in seconds rather than hours.
Forward and Backward Traceability
These are the two directions traceability works, and you need both.
Backward Traceability (Tracing Back)
Starting from a finished product and tracing back to the raw materials and suppliers that produced it.
When you need it: A customer reports a quality issue. A test result comes back positive for contamination. You discover a product defect. You need to find the source.
What it tells you:
- Which raw material batches were used in the affected finished product batch
- Which suppliers provided those raw materials
- When those raw materials were received
- What other finished products used the same raw material batches
Example: A customer finds foreign matter in a jar of pasta sauce (Batch PS-20260115). Backward traceability reveals:
- Tomato paste: Supplier A, Batch TP-4421, received 10 January 2026
- Olive oil: Supplier B, Batch OO-882, received 8 January 2026
- Garlic: Supplier C, Batch G-1150, received 12 January 2026
- Onions: Supplier D, Batch ON-557, received 11 January 2026
Investigation can now focus on each input to identify the source.
Forward Traceability (Tracing Forward)
Starting from a raw material or production batch and tracing forward to identify all finished products and customers affected.
When you need it: A supplier notifies you of a problem with a raw material batch they supplied. A production issue is identified after products have already been dispatched. You need to initiate a recall.
What it tells you:
- Which finished product batches were made using the affected raw material
- Which customers received those finished products
- What quantities were dispatched
- When they were dispatched
Example: Supplier A notifies you that Tomato Paste Batch TP-4421 may be contaminated. Forward traceability reveals:
- Used in Pasta Sauce Batch PS-20260115 (200 jars) and Pasta Sauce Batch PS-20260116 (180 jars)
- PS-20260115: 150 jars dispatched to Retailer X on 16 Jan, 50 jars dispatched to Retailer Y on 17 Jan
- PS-20260116: 100 jars dispatched to Distributor Z on 18 Jan, 80 jars still in warehouse
You now know exactly who to contact and how many units are affected. The 80 jars in the warehouse can be quarantined immediately.
How Batch Tracking Works in Practice
Let's walk through the complete batch tracking workflow for a NZ food manufacturer, from receiving raw materials through production to dispatch.
Stage 1: Receiving Raw Materials
When a delivery arrives from a supplier, the receiving process captures:
- Supplier name and details
- Supplier's batch number: the batch number assigned by the supplier (printed on their documentation or labels)
- Your internal batch number: optionally, you assign your own batch number for internal tracking
- Product and quantity: what was received and how much
- Date received
- Expiry date, critical for FEFO allocation
- Purchase order reference, which links back to the order you placed
- Quality check status: passed, failed, or pending inspection
Practical example: You receive 500kg of flour from your supplier. The delivery note shows their batch number as FL-26-0445, with an expiry date of 15 August 2026. You receipt this into your system, linking it to Purchase Order PO-1234. The flour goes into your raw materials warehouse, location RM-A-03.
At this point, your system knows: you have 500kg of flour, batch FL-26-0445, expiring 15 August 2026, supplied by Flour Supplier Ltd, located in RM-A-03, received against PO-1234.
Stage 2: Production
When you run a production order, the system records:
- Production order number: a unique identifier for this production run
- Finished product: what you're making (e.g., Artisan Sourdough Loaf)
- Quantity to produce: how many units
- Bill of materials (BOM): the recipe/formula listing all raw materials and quantities
- Raw material batches consumed: which specific batches of each raw material were used
- Actual quantities consumed: how much of each raw material was actually used (which may differ from the BOM due to waste, spillage, or yield variation)
- Date and time of production
- Finished product batch number: the batch number assigned to the output
- Expiry date of finished product, calculated based on shelf life from the production date
- Quality check results: any testing performed during or after production
Practical example: You create Production Order WO-5678 to make 200 loaves of Artisan Sourdough.
The BOM calls for:
- 100kg flour
- 65 litres water
- 2kg salt
- Active sourdough starter
The system allocates raw materials using FEFO, so the flour batch with the nearest expiry date is consumed first. In this case, Batch FL-26-0445 (expiry 15 Aug 2026) is allocated because it expires before the other flour batch in stock (FL-26-0502, expiry 30 Sep 2026).
Production completes. The system records:
- Finished product: Artisan Sourdough Loaf
- Batch: ASL-20260210
- Quantity: 200 loaves
- Expiry: 17 February 2026 (7-day shelf life from production date 10 Feb)
- Raw materials consumed: Flour FL-26-0445 (100kg), Water (65L), Salt S-26-012 (2kg), Starter culture SC-26-02 (1.5kg)
The batch link is now established: Finished product batch ASL-20260210 was made from flour batch FL-26-0445, salt batch S-26-012, and starter culture batch SC-26-02.
Stage 3: Storage and Allocation
After production, finished goods go into storage. The system tracks:
- Storage location: which warehouse, zone, and bin location
- Batch number and expiry date, carried forward from production
- Available quantity: how much is available for sale (total minus any allocated to existing orders or quarantined stock)
When a sales order comes in, the system allocates stock using FEFO, so the batch with the nearest expiry date ships first, ensuring customers receive the freshest product possible while older stock moves out before it expires.
Stage 4: Dispatch
When goods are dispatched to a customer, the system records:
- Customer details: who received the goods
- Sales order reference: which order this dispatch fulfils
- Product, batch, and quantity: exactly which batches and how many units were dispatched
- Dispatch date: when the goods left your facility
- Delivery reference: courier tracking number, delivery note number, etc.
Practical example: Retailer X orders 80 loaves. Your system allocates Batch ASL-20260210 (the batch expiring soonest). A dispatch note is created showing 80 x Artisan Sourdough Loaf, Batch ASL-20260210, Expiry 17 Feb 2026. The goods are picked, packed, and dispatched.
Your system now has a complete chain: Flour from Supplier Ltd (Batch FL-26-0445) went into Production Order WO-5678, producing Batch ASL-20260210, of which 80 loaves were dispatched to Retailer X on Sales Order SO-9012.
Expiry Date Management and FEFO Allocation
For food manufacturers, managing expiry dates is as important as managing quantities. Having 500 units in stock is meaningless if 300 of them expire next week.
FEFO Allocation
First Expired, First Out means that when you pick stock for a sales order, the system automatically selects the batch with the earliest expiry date. This:
- Minimises the risk of stock expiring in your warehouse
- Ensures customers receive product with the longest remaining shelf life
- Reduces waste and write-offs
- Supports "minimum remaining shelf life" requirements from retailers
Many NZ retailers require a minimum remaining shelf life at the point of delivery, such as at least 75% of the total shelf life remaining. FEFO allocation, combined with expiry date visibility, helps you meet these requirements and avoid rejected deliveries.
Expiry Alerts
Good batch tracking software provides alerts for:
- Approaching expiry: products within X days of their expiry date, giving you time to prioritise them for sale or take other action
- Expired stock: products past their expiry date that should be quarantined and disposed of
- Slow-moving batches: batches that aren't moving fast enough and risk expiring before they sell
Short-Dated Stock Management
When a batch is approaching expiry, you have several options:
- Prioritise for dispatch by pushing it to the front of the allocation queue
- Discount and clear by offering it at a reduced price to move it quickly
- Rework. If possible, use it as an input for another product (e.g., short-dated bread becomes breadcrumbs)
- Donate by partnering with food rescue organisations
- Write off. If none of the above work, dispose of it and record the adjustment
Your inventory system should make it easy to see what's approaching expiry so you can make these decisions proactively rather than discovering expired stock during a stock take.
For a detailed comparison of FEFO vs FIFO allocation methods, see our guide: FEFO vs FIFO: Choosing the Right Stock Allocation Method.
Recall Management
Nobody wants to think about recalls, but having the systems in place to execute one quickly and accurately is essential. In a recall scenario, time matters. The faster you can identify affected products and customers, the faster you can act.
How a Recall Works
- Trigger. You become aware of a problem. This could be a customer complaint, a failed test result, a supplier notification, or an MPI directive.
- Identify affected batches. Using backward traceability (if the issue is with a finished product) or forward traceability (if the issue is with a raw material), identify every batch that could be affected.
- Identify affected customers. For each affected batch, identify every customer who received it, what quantity they received, and when.
- Quarantine remaining stock. Any affected product still in your warehouse is quarantined immediately, physically separated and marked as not available for sale.
- Notify customers. Contact every affected customer with the batch numbers, product details, and instructions (return, destroy, hold for collection).
- Notify MPI. Depending on the severity, you may need to notify MPI. For food safety issues, this is mandatory.
- Track the recall. Monitor the return/destruction of recalled product and document everything.
- Root cause analysis. Once the immediate crisis is managed, investigate the root cause and implement corrective actions.
What Your Software Needs to Do
In a recall scenario, your batch tracking software should let you:
- Enter a batch number (raw material or finished product) and instantly see the full traceability chain
- Generate a list of all affected customers with contact details, quantities, and dispatch dates
- Quarantine batches in the system so they can't be accidentally picked or sold
- Print recall notification documents
- Record the outcome of the recall (quantities returned, destroyed, etc.)
The difference between a system that can do this in 15 minutes and one that requires a day of spreadsheet work is significant. Recalls are stressful enough without also fighting your systems.
What to Look for in Batch Tracking Software
Not all inventory management software handles batch tracking equally. Here's what NZ food manufacturers should evaluate:
1. Mandatory Batch Assignment
The system should require batch numbers at receiving and production, not make it optional. If batch tracking is optional, your team will skip it when they're busy, and your traceability chain breaks.
2. Automatic FEFO Allocation
When picking stock for a sales order, the system should automatically suggest the batch with the earliest expiry date. Manual batch selection should be possible (for special circumstances) but automatic FEFO should be the default.
3. Full Forward and Backward Traceability
You should be able to start from any point in the chain (a supplier batch, a production order, a finished product batch, or a customer dispatch) and trace in both directions. If the system only supports one direction, it's not adequate for recall scenarios.
4. Expiry Date Tracking and Alerts
The system should track expiry dates at the batch level and provide configurable alerts for approaching expiry, expired stock, and minimum shelf life requirements.
5. Batch-Level Costing
You should be able to see the cost of each batch, not just the average cost of a product. Different batches of the same raw material may have different costs (due to price changes, different suppliers, or exchange rate movements). Batch-level costing gives you accurate margin data.
6. Quality Hold and Quarantine
The ability to place a batch on hold (preventing it from being allocated to orders) is essential for quality management. When a batch fails a quality check or is subject to a recall, you need to quarantine it in the system, not just put a "do not use" sticker on it in the warehouse.
7. Audit Trail
Every action taken on a batch (receipt, movement, allocation, adjustment, quarantine, disposal) should be recorded with a timestamp and user ID. This audit trail is what you show to MPI auditors and quality assurance reviewers.
8. Integration with Your Accounting System
Batch-level transactions need to flow through to your accounting system (Xero, in most NZ cases) correctly. Sales invoices should reference batch numbers, COGS should be calculated based on actual batch costs, and inventory valuations should reflect batch-level data.
A Practical Workflow Example: Flour to Bread to Retail
Let's trace a complete workflow to make this concrete. This example follows a NZ bakery from receiving flour through to delivering bread to a supermarket.
Monday: Receiving Flour
8:00 AM. A delivery of 1,000kg of high-grade flour arrives from NZ Flour Co.
The warehouse team receipts the delivery:
- Supplier: NZ Flour Co.
- Supplier batch: NZF-2026-0892
- Product: High Grade Flour
- Quantity: 1,000kg (20 x 50kg bags)
- Expiry: 10 August 2026
- Purchase order: PO-2340
- Storage location: RM-B-02 (Raw Materials, Bay B, Shelf 02)
The system creates a raw material batch record and updates stock on hand.
Tuesday: Production
5:00 AM. The production team starts a run of 500 Artisan White Loaves.
A production order is created (WO-6120) with the following BOM:
- 250kg High Grade Flour
- 162L Water
- 5kg Salt
- 5kg Yeast
The system allocates raw materials:
- Flour: Batch NZF-2026-0892 (250kg consumed from the 1,000kg received yesterday)
- Salt: Batch S-2026-044 (from existing stock)
- Yeast: Batch Y-2026-018 (from existing stock)
11:00 AM. Production completes. 500 loaves are produced and packaged.
Finished product batch assigned: AWL-20260211
- Product: Artisan White Loaf
- Quantity: 500 loaves
- Production date: 11 February 2026
- Expiry: 18 February 2026 (7-day shelf life)
- Storage location: FG-C-01 (Finished Goods, Cold Store, Section 01)
The traceability link is established: AWL-20260211 was produced from flour NZF-2026-0892, salt S-2026-044, and yeast Y-2026-018.
Wednesday: Sales Order and Dispatch
7:00 AM. A sales order comes in from Fresh Mart (a local supermarket chain) for 300 Artisan White Loaves.
The system creates Sales Order SO-8901 and allocates stock using FEFO:
- Batch AWL-20260211 (expiry 18 Feb), 300 loaves allocated
The picking team picks 300 loaves from FG-C-01, verifying the batch number during picking (scanning the batch label).
9:00 AM. The order is packed and dispatched.
- Dispatch note DN-4567 created
- Customer: Fresh Mart
- Product: 300 x Artisan White Loaf, Batch AWL-20260211
- Expiry: 18 February 2026
- Courier: Daily Delivery Co., Tracking ref: DD-88901
The sales invoice syncs to Xero automatically.
The Full Chain
If Fresh Mart calls next week with a quality issue on Batch AWL-20260211, you can instantly trace:
Backward: AWL-20260211 was made from flour NZF-2026-0892 (from NZ Flour Co., received 10 Feb), salt S-2026-044, and yeast Y-2026-018.
Forward: Flour batch NZF-2026-0892 was also used in Production Order WO-6125 (Wholemeal Loaves, Batch WML-20260212, 300 loaves, of which 200 were dispatched to Retailer B and 100 are still in warehouse). The remaining 500kg of flour from this batch is still in raw materials storage.
This is the power of batch tracking: complete visibility, in seconds, across the entire supply chain.
How Frostbyte Pro Handles Batch Tracking
Frostbyte Pro was built with NZ food manufacturers in mind. Batch tracking isn't a bolt-on module. It's integrated throughout the platform:
- Mandatory batch assignment at receiving and production, so your traceability chain is never broken
- Automatic FEFO allocation for sales order picking, with manual override when needed
- Full forward and backward traceability: trace from any point in the chain in either direction
- Expiry date alerts: configurable warnings for approaching expiry, with dashboard visibility
- Quality hold/quarantine: place any batch on hold with a single action, preventing it from being allocated
- Production order integration: BOMs, work orders, and actual consumption tracking create the batch links automatically
- Xero integration: batch-level transactions sync to Xero for accurate COGS and inventory valuation
- Recall reporting: generate affected customer lists and batch reports instantly
For a broader look at inventory management for food manufacturers, see our guide: Inventory Management for NZ Food Manufacturers. You can also explore the full Frostbyte Pro feature set to see how it fits your operation.
If you're a NZ food manufacturer looking for batch tracking that actually works, with MPI-compliant traceability, FEFO allocation, and seamless Xero integration, start a free trial of Frostbyte Pro. No credit card required.