---
title: "TLC vs. KDE vs. CTE: the three FSMA 204 concepts producers keep mixing up"
description: "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."
canonical: https://fsma204hub.com/blog/tlc-vs-kde-vs-cte
published: 2026-05-26
updated: 2026-06-12
---

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

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](https://www.ifsqn.com/forum/index.php/forum/47-supply-chain-food-safety/), 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](/blog/what-is-a-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](/tools/tlc-check) 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](/tools/tlc-check) and it will tell you in 10 seconds what to switch to.

## KDE: the data

[Key Data Elements](/blog/retailer-fsma-204-questionnaire) are the fields you record about a TLC. The FDA publishes the [full KDE list per event type](https://www.fda.gov/files/food/published/FSMA%20Rule%20for%20Food%20Traceability%20-%202024-0520-CTEs-KDEs.pdf) 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](/blog/fsma-204-vs-harpc) are the four moments where FSMA 204 says you must capture KDEs.

There are four canonical CTE types:

1. **Receiving** (or harvesting, cooling, initial packing for RACs). When food on the Food Traceability List enters your facility, you capture the receiving KDEs.
2. **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.
3. **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).
4. **Shipping.** When the lot leaves your facility heading to a customer.

Important nuance most producers miss: **only foods on the [Food Traceability List](https://www.fda.gov/food/food-safety-modernization-act-fsma/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.

<img src="/blog/chevre-tlc-kde-cte-flow.svg" alt="Diagram tracing one lot of chevre through four FSMA 204 Critical Tracking Events: receiving the dairy's milk lot, transformation into 42 wheels with a new TLC, initial packing, and shipping to Whole Foods, with the Key Data Elements captured at each step." width="1600" height="860" />

| 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](/blog/how-to-pass-a-whole-foods-supplier-audit) 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](/tools/tlc-check) 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](/blog/what-is-a-traceability-lot-code).
- 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](/blog/retailer-fsma-204-questionnaire).
- If you're getting a [ReposiTrak invitation](/blog/repositrak-supplier-onboarding-playbook) 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](/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**

- FDA: [CTEs and KDEs for the Food Traceability Final Rule](https://www.fda.gov/files/food/published/FSMA%20Rule%20for%20Food%20Traceability%20-%202024-0520-CTEs-KDEs.pdf)
- FDA: [Food Traceability List](https://www.fda.gov/food/food-safety-modernization-act-fsma/food-traceability-list)

**Related on this site**

- [What is a Traceability Lot Code? A plain-English guide](/blog/what-is-a-traceability-lot-code)
- [The retailer FSMA 204 questionnaire: what they're really asking](/blog/retailer-fsma-204-questionnaire)
- [FSMA 204 vs. HARPC: what's the difference](/blog/fsma-204-vs-harpc)
- [ReposiTrak supplier onboarding: a 7-day playbook](/blog/repositrak-supplier-onboarding-playbook)

*Written by [Anas Marwan](/authors/anas-n), Co-founder of Darza Technologies. Last reviewed 2026-05-26.*

---

Source: https://fsma204hub.com/blog/tlc-vs-kde-vs-cte (https://fsma204hub.com)
