← All posts

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.

Anas N.7 min read
FSMA 204traceability lot codeTLClot code formatworked examplessmall food producers

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.

No code handy? Try an example:

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.)

DecisionFor this chevre lot
What you assignA new output TLC: CHV-20260616-001
When you assign itAt transformation, when the milk becomes wheels
What you link it toThe dairy's input lot, e.g. FARM-MILK-20260612-A
Where it has to appearCase 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:

DecisionFor this almond butter lot
What you assignA new output TLC: ALB-20260616-001
When you assign itAt transformation, when almonds become butter
What you link it toYour incoming almond lot, even if you had to create that reference yourself
Where it has to appearJar 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.

DecisionFor this fresh-cut greens lot
What you assignA new output TLC: FCG-20260616-001
When you assign itAt packing, when cut greens go into the bag under your lot
What you link it toThe incoming romaine lot(s) you cut from
Where it has to appearBag 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:

  1. Reusing one code for multiple runs. CHV-202606 for 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.
  2. 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.
  3. Judging the output by the input. The almond butter trap. Always classify the finished product against the FTL.
  4. 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


Further reading

Related on this site

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