TLC vs. KDE vs. CTE: the three FSMA 204 concepts producers keep mixing up
A plain-English untangle of the three terms at the center of FSMA 204. What each one is, where it lives in your operation, and a worked chevre example that shows all three in action.
Last week a small RTE-fish producer pinged me on a forum with the kind of question we get every other week. It went, more or less:
"Do we need to write KDEs for every step in production? Is BBD enough as a TLC? And do all my suppliers need to provide GS1 barcodes?"
That's four FSMA 204 acronyms in two sentences (TLC, KDE, BBD, GS1) and the producer is conflating at least two of them. They're not alone. The same conflation shows up in three of the most-replied FSMA 204 threads on IFSQN, in our compliance score quiz dropoff data, and in roughly every conversation we have with a new producer in their first week of buyer onboarding.
This post is the untangle. By the end you'll know what each term means, where it lives in your operation, and how to spot the three most common mis-mappings. If you only have 30 seconds, scroll to "the one-paragraph map" below and stop there.
The one-paragraph map
TLCs, KDEs, and CTEs operate at three different layers of your traceability system, and they're not interchangeable.
A TLC (Traceability Lot Code) is an identifier. One unique alphanumeric string that names one specific production batch. Think of it like a license plate.
A KDE (Key Data Element) is a data point you record about that TLC. Quantity, date, location, supplier, recipient. KDEs are the fields you fill in. Think of them like the registration record attached to the license plate.
A CTE (Critical Tracking Event) is a moment in your workflow where you must capture KDEs against a TLC. Receiving an ingredient, transforming a batch, creating a new finished product, shipping it out. Think of it like the four times you're required to update the registration.
Put together: at each CTE (moment), you capture KDEs (data) about a TLC (identifier). That's FSMA 204 in one sentence.
The rest of this post is the longer version, with examples and the common mistakes.
TLC: the identifier
The Traceability Lot Code is the field that didn't exist on most producer spreadsheets two years ago and now decides whether you pass a 24-hour traceback request.
A TLC is:
- One unique alphanumeric string per traceability lot. Not per product, not per day, not per shift. Per lot.
- Assigned at exactly three moments under FSMA 204: when you initially pack a Raw Agricultural Commodity, when you first receive a fishing-vessel food on land, or when you transform a food into a new product.
- Printed on your case and pallet labels so downstream traders can read it without opening your records.
A TLC is not:
- A date. Two batches made on the same day must have different TLCs.
- A best-by date (BBD). The BBD tells consumers when the product stops being at its best; the TLC tells the FDA which batch shipped where. They serve different audiences and the FDA distinguishes them explicitly. Our TLC Validator flags this confusion as the #1 failure mode.
- A SKU code, a product description, or a generic batch number. SKU + date + sequence together can form a TLC; none of them alone qualify.
- Required to follow any specific format. FDA does not require GS1 or a GTIN-based TLC. But ReposiTrak, Whole Foods, Costco, and Wegmans portals all assume one, so retailer-side pressure pushes toward GTIN even when FDA's rule doesn't.
If your current lot code is a date, a single letter, or the word "BATCH," paste it into the TLC Validator and it will tell you in 10 seconds what to switch to.
KDE: the data
Key Data Elements are the fields you record about a TLC. The FDA publishes the full KDE list per event type but the short version is:
| KDE | What it captures | Example |
|---|---|---|
| Traceability Lot Code | The identifier (see above) | CHV-20260520-001 |
| Quantity | How much | 42 wheels |
| Unit of measure | Of what | wheels of chevre |
| Date | When the event happened | 2026-05-20 |
| Location identifier | Where it happened | Your facility's FDA registration number |
| Sender / receiver | Who handed it off, who received it | Supplier name + address, retailer DC + address |
| Product description | What it actually is | Fresh chevre, 8 oz, plain |
Different CTEs require slightly different KDE sets. Receiving emphasizes ship-from + supplier-lot. Transformation emphasizes input-to-output linkage. Shipping emphasizes ship-to + shipment identifiers.
KDEs are not:
- The TLC itself. The TLC is one of the KDEs you record; the other KDEs describe it.
- Anything you make up. They're a defined list per CTE in the FDA rule.
- A burden to record if you're already running a real lot system. Producers running spreadsheets sometimes already capture 80% of the KDEs without knowing they have a name.
CTE: the moment
Critical Tracking Events are the four moments where FSMA 204 says you must capture KDEs.
There are four canonical CTE types:
- Receiving (or harvesting, cooling, initial packing for RACs). When food on the Food Traceability List enters your facility, you capture the receiving KDEs.
- Transformation. When you cook, mix, blend, age, repackage, or otherwise turn one or more input lots into a new output lot, you record the input-to-output linkage. This is the CTE where you assign a new TLC even if your input lot already had one.
- Creation (also called initial packing). When you assign a TLC to a finished product for the first time (typically when it leaves the production line into inventory).
- Shipping. When the lot leaves your facility heading to a customer.
Important nuance most producers miss: only foods on the Food Traceability List trigger CTEs under FSMA 204. A non-FTL ingredient (like, say, salt or sugar in your chevre brine) doesn't generate its own CTE record. But if your finished chevre is on the FTL, the chevre's full CTE chain matters.
A worked example: one wheel of chevre, traced through
Imagine you make small-batch chevre. Here's how TLC + KDE + CTE play together for one lot shipped to Whole Foods.
| Step | CTE | TLC involved | KDEs captured |
|---|---|---|---|
| 1 | Receiving | Your dairy supplier's TLC: FARM-MILK-20260512-A | Quantity (200 gal), date (2026-05-12), supplier ID, your receiving facility ID, product description ("raw goat milk") |
| 2 | Transformation | Input TLC: FARM-MILK-20260512-A. New output TLC you assign: CHV-20260520-001 | Input quantity (200 gal), output quantity (42 wheels), date (2026-05-20), transformation facility, input-to-output link |
| 3 | Creation (assigning TLC at first packing) | CHV-20260520-001 | Final product description, quantity packed, date packed, facility ID |
| 4 | Shipping | CHV-20260520-001 | Quantity shipped (12 wheels of the 42), date shipped, your facility ID, Whole Foods DC ID, shipment reference number |
That's the same TLC (CHV-20260520-001) showing up in three different CTEs, each capturing a different KDE set. If Whole Foods or the FDA asks "which lot was affected" three weeks from now, you point to that TLC and walk them through all four records in under an hour. That's the 24-hour traceback test passing.
The three most common mis-mappings
If you only fix three things after reading this post, fix these:
Mis-mapping #1: using a BBD as the TLC. A best-by date is a shelf-life marker for the consumer. A TLC is a production identifier for traceback. They serve different purposes. Two batches of the same SKU produced a week apart often share the same BBD (same shelf-life math) but must have different TLCs. Keep the BBD on the consumer label; assign a proper TLC for your records.
Mis-mapping #2: treating KDEs as a separate paperwork burden. KDEs are the columns in your existing receiving log, production log, and shipping log. You're probably already capturing most of them. The FSMA 204 work is naming them, linking them to the TLC, and making sure they're present at every CTE, not adding a parallel records system.
Mis-mapping #3: thinking every step in production is a CTE. It isn't. The four CTEs (receiving, transformation, creation, shipping) are the only moments that trigger FSMA 204 records. Stirring, aging, holding, and inspecting are not CTEs. If you're trying to record KDEs at every internal handoff in your plant, you're overshooting the rule.
Where to go next
- If you want to know whether your current lot code qualifies as a TLC, the TLC Validator gives you a yes/no in 10 seconds plus the format to switch to if no.
- If you want the long-form explanation of what a TLC is and how to assign one, see the TLC primer.
- If your buyer just sent you a questionnaire that's full of KDE and CTE terminology, see our breakdown of what retailers are really asking for.
- If you're getting a ReposiTrak invitation from Erewhon, Wegmans, or Whole Foods this month, the survival playbook is there.
- If you want to know how the rest of your FSMA 204 stack ranks, take the 3-minute Compliance Score quiz at /score. It scores you across seven dimensions, including how clean your TLC-KDE-CTE chain actually is.
The three letters get confused because they live close together in the FDA rule, in every consultancy explainer, and in your supplier portal. Once you separate them by layer (identifier, data, moment), the rest of FSMA 204 stops being a vocabulary fight and starts being a records problem you can actually solve.
Further reading
Related on this site
- What is a Traceability Lot Code? A plain-English guide
- The retailer FSMA 204 questionnaire — what they're really asking
- FSMA 204 vs. HARPC: what's the difference
- ReposiTrak supplier onboarding: a 7-day playbook
Written by Anas N., Co-founder of Darza Technologies. Last reviewed 2026-05-26.
Read next
What your retailer's FSMA 204 questionnaire is asking for
A plain-English breakdown of the data retailers want under FSMA 204: what to send, what to skip, and the three fields that decide your shelf space.
8 min read
What the FDA's June 15 lot-level traceability meeting means for small producers
The FDA is asking whether its lot-level tracking rule is too hard for small producers. You can tell them, but if you want to speak you have to register by June 5. Here's what the meeting is, what it changes, and what it doesn't.
7 min read
ReposiTrak supplier onboarding: a 7-day playbook
A small producer's survival guide to ReposiTrak. What it checks, what to answer fast, the four traps that cost a week, and a day-by-day plan.
9 min read