How to assign a Traceability Lot Code: chevre, almond butter, and fresh-cut greens (worked examples)
Three worked examples of how to assign a Traceability Lot Code under FSMA 204, with the exact lot code format, when you assign it, and where it has to travel.
The TLC primer on this site answers what a Traceability Lot Code is. By far the most common follow-up question we get is the next one: okay, so how do I actually assign one to the thing I make?
This post is that companion. Three worked examples, one each for a soft cheese, a nut butter, and a fresh-cut produce operation, showing the exact format to use, the moment you assign the code, and where it has to travel afterward. If you make something else on the Food Traceability List, one of these three will map closely enough to copy.
If you only want the format and not the reasoning, here it is: product abbreviation + production date + sequence, for example CHV-20260616-001. The rest of this post is why that works and how it plays out for three real products.
The one format that works for almost everyone
FSMA 204 does not mandate a lot code structure. The rule only requires the code to be unique to the lot and preserved across every record. That freedom is where producers get stuck, so here is an opinionated default that has never failed an audit I have seen:
[PRODUCT]-[YYYYMMDD]-[SEQUENCE]
CHV-20260616-001
- Product abbreviation keeps codes readable at a glance on a case or a spreadsheet.
- Date in YYYYMMDD guarantees uniqueness across days and sorts correctly.
- Sequence (
001,002) keeps two runs on the same day from colliding.
Pick this, or something like it, and use it for everything. The audit-killer is not a clumsy format, it is three different formats living in three different spreadsheets. Before you commit, paste a sample into the validator below and it will tell you whether the code is unique and well-formed.
Quick check: does your lot code qualify?
Paste a code you currently print on a case or pallet label. No signup, nothing stored.
The same checker is available as a free standalone TLC checker you can send to whoever prints your labels.
Now the three examples.
Example 1: chevre (a transformation event)
You buy goat milk from a dairy and make fresh chevre. Soft unripened cheeses are on the Food Traceability List, so your finished chevre is a listed food.
Your role is transformer: you took an input (milk) and made something new (cheese). Transformation is the Critical Tracking Event where you assign a new output TLC, even though the milk arrived with the dairy's own lot code attached. (If the terms TLC, KDE, and CTE blur together here, the TLC vs KDE vs CTE breakdown untangles them.)
| Decision | For this chevre lot |
|---|---|
| What you assign | A new output TLC: CHV-20260616-001 |
| When you assign it | At transformation, when the milk becomes wheels |
| What you link it to | The dairy's input lot, e.g. FARM-MILK-20260612-A |
| Where it has to appear | Case and pallet labels, plus the shipping document and invoice to your buyer |
The two non-negotiables: the code is unique to this run (Friday's batch is CHV-20260616-002, not the same code reused), and it is written onto the paperwork that leaves your facility, not just stamped on the wheel. A TLC that only lives on the case fails the buyer's traceback question.
Example 2: almond butter (a listed product from an unlisted input)
You roast and grind almonds into jarred almond butter. Here is the trap: raw tree nuts in many forms are not on the FTL, but nut butters are. So even if your almonds arrived with no lot code at all, the moment you grind them into butter you have created a listed food that needs its own TLC.
Your role is again transformer (almonds in, butter out), so the assignment rule is the same as the chevre:
| Decision | For this almond butter lot |
|---|---|
| What you assign | A new output TLC: ALB-20260616-001 |
| When you assign it | At transformation, when almonds become butter |
| What you link it to | Your incoming almond lot, even if you had to create that reference yourself |
| Where it has to appear | Jar or case label, plus the shipping document and invoice |
The lesson almond butter teaches: do not let the input's status decide the output's. Check whether the finished product is on the FTL. Plenty of producers assume "my raw material isn't regulated, so I'm not either" and skip the TLC, then fail a buyer questionnaire because the jar on the shelf is a listed food.
Example 3: fresh-cut greens (you are the initial packer)
You buy whole heads of romaine, cut and wash them, and bag them as fresh-cut salad greens. Both leafy greens and fresh-cut produce sit on the FTL, and cutting fresh produce is a listed activity.
Your role here is closer to initial packing / creation: you are the first to put the fresh-cut product into its final consumer container under your own lot. You assign the TLC at that packing event.
| Decision | For this fresh-cut greens lot |
|---|---|
| What you assign | A new output TLC: FCG-20260616-001 |
| When you assign it | At packing, when cut greens go into the bag under your lot |
| What you link it to | The incoming romaine lot(s) you cut from |
| Where it has to appear | Bag and case labels, plus the shipping document to the retailer DC |
Fresh-cut greens also illustrate the highest-stakes version of this: leafy greens are the single most recall-prone category on the FTL. If a contamination signal hits and you cannot point to exactly which incoming romaine lots fed FCG-20260616-001, the recall stops being one bag run and becomes everything you have shipped.
The format mistakes that actually cause failures
Across the three examples, the same handful of mistakes account for nearly every problem:
- Reusing one code for multiple runs.
CHV-202606for the whole month collapses every June batch into one lot. Recall one, recall all. Always carry enough date and sequence detail to make each run unique. - Letting the code stop at the case. The TLC has to be on the shipping document or invoice that goes downstream. This is the difference between an internal lot number and a real TLC, and it is the exact distinction the primer walks through.
- Judging the output by the input. The almond butter trap. Always classify the finished product against the FTL.
- Three formats across three spreadsheets. Pick one structure and use it for chevre, butter, greens, and everything else. Consistency is worth more than cleverness.
The 60-second assignment checklist
Before your next run, confirm you can answer yes to each:
- You have one written TLC format and you are using it for every product.
- The code for this run is unique (date plus sequence, never a bare date).
- The code is linked to the input lot codes that fed it.
- The code is printed on the case and written onto the document that leaves your facility.
- You could produce a traceback for it in under an hour.
Not sure where the rest of your setup stands? The free FSMA 204 compliance score quiz grades your traceability across seven dimensions in about two minutes, including how clean your lot-code chain actually is.
Where to go next
- The TLC primer is the long-form explanation of what a Traceability Lot Code is and why FSMA 204 requires it.
- The TLC vs KDE vs CTE breakdown explains the three concepts these examples lean on.
- If a buyer just sent you a questionnaire, see what the retailer FSMA 204 questionnaire is really asking.
- Retailer programs raise the same bar in their own audits: how Whole Foods stacks four audits and Costco's supplier traceability requirements.
Further reading
Related on this site
- What is a lot code on food? The FSMA 204 TLC, explained
- TLC vs. KDE vs. CTE: the three FSMA 204 concepts producers keep mixing up
- The retailer FSMA 204 questionnaire: what they're really asking
Written by Anas N., Co-founder of Darza Technologies. Last reviewed 2026-06-16.
Frequently asked questions
- How do you assign a Traceability Lot Code?
- Pick a format that is unique per production run, usually product abbreviation + date + sequence (for example CHV-20260616-001), and assign it at the Critical Tracking Event where you first create or transform the food. Then write that same code onto the case label and onto the shipping document, invoice, or BOL that leaves your facility. The code does not have to follow any FDA-mandated structure; it only has to be unique and to travel downstream.
- What is a good lot code format for a small food producer?
- A product abbreviation, the production date in YYYYMMDD, and a sequence number covers almost every small operation: CHV-20260616-001. It is human-readable, sorts cleanly in a spreadsheet, and guarantees uniqueness as long as you bump the sequence for each separate run on the same day. Avoid bare dates and single letters, which collapse different runs into the same code.
- Do I assign a new TLC if my ingredient already came with one?
- Yes, when you transform it. If you turn goat milk into chevre or almonds into almond butter, you are performing a transformation Critical Tracking Event, so you assign a new output TLC and link it back to the input lot codes. If you only receive and re-ship a food without changing it, you carry the supplier's TLC forward instead of assigning a new one.
- Does almond butter need a Traceability Lot Code if raw almonds do not?
- Yes. Nut butters are on the Food Traceability List even though raw tree nuts in many forms are not. So the moment you grind almonds into butter, your finished product is a listed food and needs its own TLC and Key Data Elements, regardless of whether the input almonds arrived with a lot code.
- How do I keep lot codes unique across a day with multiple batches?
- Add a sequence number that resets each day and increments per run: CHV-20260616-001, CHV-20260616-002, and so on. The date keeps codes unique across days, the sequence keeps them unique within a day. Two runs that share a single code are the most common reason a one-lot recall expands into a full-product recall.
Read next
FDA's June 15 lot-level traceability meeting, explained
FDA's June 15 lot-level traceability meeting asks whether lot-level tracking works for small producers. What it is, what it changes, and what it does not.
7 min read
TLC vs. KDE vs. CTE: the three FSMA 204 concepts producers keep mixing up
TLC vs KDE vs CTE under FSMA 204, explained in plain English. What each term means, where it lives in your operation, and a worked chevre example.
9 min read
What is a lot code on food? The FSMA 204 TLC, explained
What a lot code on food actually is, how lot coding works, and how an everyday lot code differs from the FSMA 204 Traceability Lot Code (TLC).
10 min read