← All posts

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

Anas N.10 min read
FSMA 204lot codelot code traceabilitytraceability lot codesmall food producersfood safety basics

If you've ever turned over a yogurt cup, a cheese wedge, or a bag of leafy greens and seen a string of numbers stamped near the date (L20260428-MVC-014, LOT B27, 20260428A), that's a lot code. It's the identifier a producer assigns to a single production run so that batch can be traced later.

This guide answers three questions in plain English:

  • What is a lot code on a product, and what does lot coding actually mean on food?
  • How is a lot code different from a Traceability Lot Code (TLC) under FSMA 204?
  • How do you assign one, and what happens if you can't?

What is a lot code on a product?

A lot code is a short string (usually a mix of date, facility, and sequence) that a producer prints, stamps, or labels onto a product (or its case) to identify a single batch.

The format is up to the producer. There is no universal standard. Most use one of three patterns:

  • Date + facility + sequence: 20260428-MVC-014 (most common for small producers)
  • Pure sequence: LOT-00014823
  • Encoded metadata: MVC-CHE-04282026-A1 (where the code itself carries facility, product, date, line)

On most consumer packaging the lot code sits next to (and is often confused with) the best-by date. The two are different. The best-by date tells the customer when to use the product. The lot code tells the producer which production run it came from: invisible to the customer, critical during a recall.

In food specifically, the lot code is also the connecting thread between the supplier's batch, your production run, and what shipped to which customer. That's why lot code traceability matters: without it, a contamination event in one input ingredient spreads suspicion across every batch you've ever made.

A lot code on food is an internal identifier. A Traceability Lot Code (TLC) is the FSMA 204 regulatory version of the same idea: same code, but it has to travel on shipping documents, not just on the case.


Diagram showing a Traceability Lot Code passing through Critical Tracking Events under FSMA 204: from initial packing or transformation at a small producer's facility, onto the shipping document, to the distributor, and to the retailer.

That's the whole concept. The rest of this guide unpacks the FSMA 204 version and how to set up lot coding so it survives an audit.

Why does FSMA 204 require lot code traceability?

In 2022, the FDA finalized the Food Traceability Rule under FSMA Section 204 (21 CFR §1.1300–1.1460). The rule applies to any food on the Food Traceability List: leafy greens, soft cheeses, shell eggs, fresh-cut produce, certain seafood, and a long list of others.

If a contaminated lot turns up at a retailer, the FDA wants to know, within 24 hours, exactly where it came from and exactly where else it went. The TLC is the thread the FDA pulls to unspool that answer.

Without a TLC, a recall takes a week of phone calls. With one, it takes a database query.

What does a Traceability Lot Code look like under FSMA 204?

Same formats as the everyday lot codes above. The FSMA 204 rule doesn't prescribe a structure. It only requires that the code is unique to that lot, assigned by whoever performs the "first" qualifying activity (more on that below), and preserved across every record that touches the lot.

So if you've already been doing lot coding for years using a date + facility + sequence pattern, you don't need a new format. You need to make sure that same code travels onto the shipping document, not just onto the case.

Pick one format and stick to it. The audit-killer isn't a bad format, it's three different formats across three different spreadsheets.

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 bookmark or send to whoever prints your labels.

When do you assign a Traceability Lot Code?

You assign a TLC at one of three "Critical Tracking Events" (CTEs):

  1. Initial Packing: you're the first to pack the food in its final container.
  2. First Land-Based Receiving: you're the U.S. importer or first land-based receiver of seafood.
  3. Transformation: you took listed-food ingredients and made something new (combined, processed, or repackaged).

If you're a small cheesemaker buying milk and producing wheels, you're a transformer. The TLC you assign to today's batch is yours, even if the milk came in with the dairy's lot code attached.

If you're a co-packer running someone else's recipe, you're an initial packer. Same rule.

If you're just receiving and re-shipping (a distributor), you generally don't assign a new TLC, you carry the supplier's forward.

Want to see this applied to a real product? How to assign a Traceability Lot Code walks through three worked examples (chevre, almond butter, and fresh-cut greens), with the exact format and where the code has to travel.

TLC vs lot number vs batch number: what's the difference?

This is where most producers get tripped up on their first audit.

TermWhat it isWhere it lives
Internal lot numberWhatever code you've been writing on cases for years, for your own operationInside your facility only
Batch numberA single production runYour production records
Traceability Lot Code (TLC)A regulatory identifier defined under FSMA 204Must travel on shipping documents, invoices, and BOLs to the next entity in the chain

Your existing internal lot number can become your TLC if it's already unique and gets passed to customers. Most don't: most are reused across runs or only live inside a single facility's records. If yours does, great. If not, the TLC sits alongside (or replaces) it.

What do you have to record alongside the TLC?

A TLC by itself is just a string. The rule requires you to attach Key Data Elements (KDEs) to it depending on which CTE you performed. The most common KDEs for a small producer running a transformation event:

  • The TLC of every input lot you used
  • The TLC you assigned to the output
  • Quantity and unit of measure
  • Date of the transformation
  • Location (where it happened)
  • A description of the food

The KDE list is the single most underestimated part of FSMA 204, but the TLC is what holds them all together.

The three mistakes I see most often

After looking at how a few dozen small producers track lots today, the same three mistakes keep coming up:

  1. Reusing the same TLC for two production runs. If you make Tuesday's wheel and Friday's wheel and call both MVC-04-2026, you've collapsed two lots into one. If one gets recalled, the other gets recalled with it. Always include enough date or sequence detail to make every code unique.

  2. Not passing the TLC to your customer. The TLC has to appear on the shipping document or invoice that goes downstream. If your buyer's questionnaire asks "what TLC did we receive?" and you can't tell them, the audit fails. This isn't optional under the rule.

  3. Tracking TLCs in a spreadsheet that nobody updates after Friday. A lot record only has value if it's complete and current. The single biggest predictor of an FSMA 204 audit failure is a system someone "means to update later."

Can you be FSMA 204 compliant without software?

You don't need software to be FSMA 204 compliant. You need a record. A spreadsheet with the TLC, input lot codes, KDEs, dates, and shipping references is technically enough. The reason most producers move off spreadsheets is that the relational lookups (which input lots fed which output batch, which output batch went to which customer, in what quantity) become unmanageable around the 50-batch mark, and a recall query that takes 6 hours of unstacking spreadsheets is worse than no system, because it's a system that lies under audit pressure.

This is the exact gap FSMA204Hub was built for, but if you're early enough that a spreadsheet still works, use the spreadsheet. Get the practice of assigning TLCs into your daily routine before you worry about tooling. The audits care about the data, not the database.

What will buyers check in your TLC system?

If you're submitting a retailer FSMA 204 questionnaire, the TLC question almost always shows up in three places:

  1. "Do you assign a unique Traceability Lot Code at every CTE?" (yes/no)
  2. "Provide a sample TLC and the KDEs you record with it." (free text)
  3. "Within how many hours can you produce a full traceback for a given TLC?" (the FDA's answer is 24; most retailers want 24 or better)

If you can answer all three with a real example pulled from this week's production, you're ahead of most of the supplier base. Retailer-specific programs raise the same bar in their own audits: see how Whole Foods stacks four audits and Costco's supplier traceability requirements.

Not sure where you stand overall? The free FSMA 204 compliance score quiz grades your traceability setup in about two minutes.

Is a "lot code" the same as a "traceability lot code"?

Almost, but not exactly, and this is the question that trips up most producers on their first call with a buyer.

In everyday operator language, a lot code is whatever identifier you stamp on a case: a date code, a julian date, a production sequence, or some combination. Plenty of small producers have been "doing lot coding" for years without realizing the term has a regulatory cousin.

A Traceability Lot Code (TLC) is the FSMA 204 version of that idea. It's a single code that:

  • is unique to a specific lot (no reuse across production runs)
  • gets assigned at a Critical Tracking Event (initial packing, first land-based receiving, or transformation)
  • travels downstream on every shipping document, invoice, or BOL, not just on the case

So the practical answer: your existing lot code can serve as your TLC if it's unique per run and you write it onto the paperwork that leaves the facility. If it only lives on the case (or you reuse it across batches), then "lot code traceability" under FSMA 204 means picking a real TLC and putting it on the documents your buyer actually sees.

Every TLC is a lot code. Not every lot code is a TLC.

The 60-second checklist

Before your next production run, confirm you can answer each of these:

  • You have a written TLC format and you're using it consistently.
  • Every output lot in the last 30 days has a TLC.
  • Each TLC is linked to the input lot codes that fed it.
  • Each TLC appears on the shipping document that left your facility.
  • You can produce a traceback for any of those TLCs in under an hour.

If you're missing more than one of those, the gap isn't the TLC itself, it's the routine around it. Fix the routine first.


Further reading

Related on this site

Last reviewed: June 16, 2026.

Frequently asked questions

What is a lot code on a product?
A lot code is a short identifier (usually a mix of date, facility, and sequence) that a producer prints, stamps, or labels onto a product (or its case) so a single production run can be traced later. On food, the same code travels onto packing slips, invoices, and shipping documents so a recall can be narrowed to one batch instead of the whole product line.
What is a lot code in simple terms (for food)?
A lot code is the unique label a food producer assigns to one batch. For example, 20260428-MVC-014 might mean 'made April 28 2026, at MVC facility, batch 14.' If a problem shows up at a retailer, the lot code tells everyone exactly which run it came from.
Is a lot code the same as a traceability lot code?
Almost. A 'lot code' is whatever identifier a producer stamps on a case. A Traceability Lot Code (TLC) is the FSMA 204 version: it has to be unique per production run and must travel on shipping documents, invoices, and BOLs (not just on the case). Your existing lot code can serve as your TLC if it's already unique and gets passed downstream.
Does FSMA 204 require a specific lot code format?
No. The rule only requires the code to be unique to that lot and preserved across every record. Most small producers use a date + facility + sequence pattern, for example 20260428-MVC-014. Pick one format and use it consistently across all production.
Who has to assign a traceability lot code?
Whoever performs one of three Critical Tracking Events: initial packing, first land-based receiving (for imported seafood), or transformation (combining, processing, or repackaging foods on the Food Traceability List). Distributors who just receive and re-ship usually carry the supplier's TLC forward without assigning a new one.
How long do you have to keep lot code traceability records?
Two years from the date the record was created. Under FSMA 204, the FDA can request your records and you must produce a sortable electronic spreadsheet within 24 hours of the request.
What happens if you can't produce a TLC during a recall?
The recall expands. If you can't identify which output batches came from a contaminated input lot, the FDA and your buyers have to assume every batch is suspect. That turns a one-lot recall into a full-product recall, and it almost always results in an audit failure on your next retailer questionnaire.

Read next