A traceability lot code is the code that identifies a lot of food under FDA's food traceability rule, FSMA 204. The rule calls it a descriptor, often alphanumeric, that uniquely identifies a traceability lot within the records of the place that assigned it, and that place is the traceability lot code source. The code is assigned once, when a food is first packed, first received from a fishing boat, or transformed into something new, and then it travels with the food: every business that ships or receives that lot records the same code. In the example below, a salsa maker keeps its suppliers' codes for tomatoes, jalapeños and cilantro exactly as they came, and assigns its own, SSC-FS-261014-A, to the salsa it makes from them. Below are the definitions, when to assign a code, how to build one, and a free log.
The short version
- A traceability lot code (TLC) identifies one lot, uniquely, within the records of whoever assigned it.
- The traceability lot code source is the place where the code was assigned.
- A source reference, such as an FDA Food Facility Registration Number or a web address, can stand in for the source's location.
- Assign a new code when you initially pack a raw agricultural commodity, first receive fish on land, or transform a food.
- Don't assign a new code when you ship, and keep the code your supplier gave you when you receive.
- If you receive a listed food from someone the rule doesn't apply to and it has no code, you assign one.
- TaroStack keeps the supplier's lot code and your own on every lot, and each batch gets its own. More below.
The definitions
| Term | What the rule says it is |
|---|---|
| Traceability lot | A batch or lot of food that has been initially packed, received by the first land-based receiver, or transformed |
| Traceability lot code | A descriptor, often alphanumeric, used to uniquely identify a traceability lot within the records of its source |
| Traceability lot code source | The place where a food was assigned a traceability lot code |
| Traceability lot code source reference | Another way of giving FDA the source's location, such as an FDA Food Facility Registration Number or a web address |
All four come from 21 CFR 1.1310. The source reference matters in practice: instead of putting a supplier's full address on every record, a business can record the reference that leads FDA to it. FDA has proposed moving the compliance date to July 20, 2028, and Congress directed it not to enforce the rule before then; FDA says it will comply. More on the date is in FSMA 204 compliance date. This is general information, not legal advice.
When to assign one
You assign a traceability lot code when you initially pack a raw agricultural commodity (other than food from a fishing vessel), perform the first land-based receiving of food from a fishing vessel, or transform a food, and you don't assign a new one for other activities, such as shipping (21 CFR 1.1320). One exception runs the other way: if you receive a listed food from someone the rule doesn't apply to, you record a lot code for it and assign one if it doesn't have one, unless you're a retail food establishment or restaurant (21 CFR 1.1345(b)).
| What you do | New lot code? |
|---|---|
| Receive tomatoes from a packer | No: keep the packer's code |
| Make fresh salsa from them | Yes: the salsa is a new lot |
| Ship the salsa | No: ship it under the salsa's code |
| Receive cilantro from a farm the rule doesn't apply to, with no code | Yes: assign one |
| Repack a case of cilantro into smaller packs | Yes: repacking and relabeling count as transformation |
An example: a salsa maker's codes
Saguaro Salsa Co., a made-up salsa maker in Tucson, Arizona, I use in these examples, receives fresh produce with its suppliers' codes and makes fresh salsa:
| Lot | Traceability lot code | Lot code source | Assigned by |
|---|---|---|---|
| Roma tomatoes, 20 cases | AZPK-T-1012-07 | Desert Sun Packing, Nogales | The packer, at initial packing |
| Jalapeño peppers, 4 cases | AZPK-J-1012-03 | Desert Sun Packing, Nogales | The packer, at initial packing |
| Cilantro, 6 cases | SVG-C-1011-12 | Santa Cruz Valley Greens | The farm, at initial packing |
| Fresh salsa, medium, 480 tubs | SSC-FS-261014-A | Saguaro Salsa Co., Tucson | Saguaro, at transformation |
Saguaro's code is built from a product code, the date made and a run letter: SSC-FS for fresh salsa, 261014 for October 14, 2026, and A for the first run that day; the hot salsa made after it is SSC-FS-261014-B. The rule doesn't set a format, only that the code is unique within the records of its source. The tomatoes' code stays AZPK-T-1012-07 in Saguaro's records, because that's how the packer and FDA know it. How to design lot numbers in general is in how to create lot numbers, and what the rule asks you to record with each code in the key data elements for receiving, transformation and shipping.
Get the log
Download the traceability lot code log. Two sheets: lots you assigned, where you type a product code, the date made and a run letter, and the lot code fills in as code-yymmdd-run, red if it repeats, with the product, quantity, source, source reference and the lot codes it used; and lots you received, with each supplier's code exactly as it came, its source and the document. It's an ordinary Excel file with no macros, and it works in Google Sheets, LibreOffice and Numbers.
Where this stops working
A log is typed after the fact. On a busy day with two runs of salsa, the codes on the tubs, the codes in the log and the codes on the invoices are written three times by hand, and one transposed digit means the salsa can't be traced back to the tomatoes. The code also has to be on the case label, readable by the customer's receiving dock.
How TaroStack does it
TaroStack keeps the supplier's lot code and your own on every lot, and each batch gets its own.
Supplier codes kept as they came. Each delivery is received with the supplier's lot code alongside your own, and scanning a supplier's GS1-128 case label fills it in, so the tomatoes stay AZPK-T-1012-07.
A new code for each batch. A batch of salsa gets a lot of its own and records which lots it consumed, automatically, so the new code and the codes that went into it are on one record. More on how lots carry through is in what is lot tracking.
On the label and on the order. Lot labels print with GS1-128 barcodes, or as a ZPL file for Zebra printers, and each order records the lots each customer got as it ships, so one recall report goes from a supplier's code to every customer.
| The job | Log | In TaroStack |
|---|---|---|
| Supplier's lot code | Typed from the case | Scanned from the GS1-128 label |
| A new code for each run | Built in the sheet | Each batch's own lot |
| Which codes went into a batch | Typed after | Recorded automatically |
| The code on the case label | Written by hand | Printed with a barcode |
Lots, batches, lot labels and recalls are on every plan, from $49 a month. The first 30 days are free, with no credit card. If you'd like a hand setting up, ask, and we'll do it with you.
