Look for a phrase first: BEST BY, USE BY, EXP, BB. The date next to it is the one to follow. The other letters and numbers on the same line are usually a lot or production code: they say when, where and on which line the food was made, not when it expires.
If a code is all you have, it often hides a production date as a day of the year (Hormel reads its example L18325 as lot, 2018, day 325). There's no universal decoder, because each company sets its own format. When you can't work it out, call the number on the package.
Date, lot number, time or plant?
A single inkjet line can carry four different things. Taking it apart piece by piece usually leaves one obvious date:
| What you see | Example | What it usually is |
|---|---|---|
| A phrase plus a date | BEST BY OCT 04 2027 | The date to follow. Best-by is a quality date; the date labels guide explains each phrase. |
| LOT, BATCH or a leading L | L18325 | A lot code. It identifies a batch for tracing and recalls. It may contain the production date. |
| Four digits under 2400, or HH:MM | 1432, 14:32 | A time, here 2:32 PM. Codes often end with the hour and minute of packing. |
| EST. or P- followed by digits | EST. 1234 | A USDA establishment number on meat (EST.) or poultry (P-): the plant that made it, not a date. |
| PACKED ON, MFG, PKD, born on | PACKED ON 09/20/26 | A production date. It tells you the food's age, not when to use it by. |
| A long run of digits with no phrase | 34631762 | A manufacturing code. Keep it if you need to check a recall. |
USDA calls these strings “closed or coded dates” and describes them as packing numbers for use by the manufacturer. Hormel puts it the same way: they “are not typically intended to be used by consumers.” The plant prefixes come from USDA rules: meat plants are marked EST. and poultry plants P-. For a line with several numbers on it, the which number is the date section of the main guide walks through a full example.
Codes are on packages for a reason. US rules require every low-acid canned food container to “identify in code the establishment where packed, the product contained therein, the year packed, the day packed, and the period during which packed.” That's one reason so many can codes contain a day of the year. In the EU, a lot mark “shall be preceded by the letter ‘L’” unless it's clearly distinct from everything else on the label, and it can be left off when the best-before or use-by date shows at least the day and month in plain form.
Real codes, read the way their makers read them
These are the only kind of examples worth trusting: codes the company itself explains. Each format belongs to that company alone, so don't apply it to another brand.
| Code | Company | How the company reads it | What it tells you |
|---|---|---|---|
L18325 | Hormel Foods | L is the lot code, 18 the year produced, 325 the day of the year | Made on day 325 of 2018: November 21, 2018 |
24820 | Neil Jones Food Company (canned tomatoes and fruit) | The last five digits of its eight-character can code: 248 is the Julian day, 20 the year canned. Add the 36-month shelf life. | Canned in early September 2020, best by September 2023 |
JUL2516 / A01212359 | Molson Coors (U.S. beers) | Line 1 is the pull date. Line 2: A is the production day of the week (Monday), 01 the brewery (Milwaukee), 21 the line, 23:59 the time | Pull date (best before) July 25, 2016, the last day it should be on sale |
L7016484CA2200 / BBD AUG 2018 | Molson Coors (Sol imports) | L for lot, 7 for the year, 016 for the Julian day, then codes for the country, brewery (C is Toluca) and line, and the time | Best before August 31, 2018: the pull date is the last day of the month shown |
22 SEP 2020 / 34631762 | Frito-Lay (in an FDA recall notice) | A “Guaranteed Fresh” date with an eight-character manufacturing code below it, on the front of the bag, top right | The date is the freshness date; the code identified which bags were recalled |
The Neil Jones example shows a trap. The company calls day 248 of 2020 September 5, but 2020 was a leap year, so day 248 was September 4. In other years it's September 5. A day-of-year count shifts by one from March onward in leap years, which is why it's worth using a converter that knows the year.
Two more brands explain their marks without publishing a full code example. Monster says its drinks carry no expiration code, only “a production or born on date.” Its FAQ says the first letter is the month made (A to L for January to December), the first two numbers the year, the next two the day, the next letter the plant, and the last four digits the time in 24-hour form. Hershey says its products carry an ink-stamped “BB” or “Best By” month and year, the month until which the product “is expected to be within its peak freshness.” More on that in how long candy lasts.
What the letters can mean
Search results are full of rules like “A is January, B is February,” and they contradict each other. In the codes above, a letter means something different at every company:
- A month. Monster's first letter, A to L for January to December.
- A day of the week. Molson Coors'
Ameans Monday, not January. - A lot. The
Lin Hormel's and Sol's codes, and the EU convention. - A plant or brewery. Monster's plant letter; Sol's
Cfor Toluca. - A line or shift, like the
L2in6263 L2 1432.
So treat a letter-for-month reading as a guess to test, not a rule. A guess passes only if the date it gives is in the past (the food was made before you bought it) and comes before any best-by date on the same package.
Julian codes: the day of the year
The most common date hidden in a code is a Julian date: the day of the year, from 001 for January 1 to 365 (or 366 in a leap year). It usually sits next to a one- or two-digit year, and the order varies:
- YDDD:
6263is day 263 of a year ending in 6: September 20 if the year is 2026. - YYDDD:
26263is day 263 of 2026. Hormel's18325works this way. - DDDYY: day first, then year, as in Neil Jones'
24820. Read the wrong way round, the same digits make a different date, so check which end looks like a recent year. - YYYYDDD: a full year and then the day,
2026263.
Type any of these into the Julian date converter, which also shows the year-last reading when the digits allow it, or look the day up on the Julian date calendar. On USDA-graded egg cartons the three-digit number is the required pack date; egg carton dates explains the rest of the carton. Cans have their own patterns, covered in how to read canned food codes.
Canadian two-letter month codes
Canadian labels use a different kind of letter code, and this one is a real date. Best-before dates put the year first (only when needed), then a two-letter month that works in English and French, then the day:
The months are JA FE MR AL MA JN JL AU SE OC NO DE, so 26 OC 04 is October 4, 2026. The traps are AL (April, from avril, not August), MA (May) versus MR (March), and JN (June) versus JL (July). The MA in BB/MA is different again: it's meilleur avant, French for best before. The full table and more examples are in the Canadian date section.
Born-on and production dates
A born-on, packed-on or manufactured date is the start of the clock, not the end. To turn it into a use-by day you need to know how long that product keeps, and only some makers say:
- Hershey: “Most confectionery products are at their best flavor for one year after manufacture,” less for products with nuts.
- Neil Jones: 36 months for all its canned products.
- Molson Coors: typically 18 to 26 weeks for its domestic packaged beers, and it prints the pull date for you anyway.
If the maker doesn't publish a shelf life, don't guess one from a stranger's blog. Ask the company, or for foods USDA covers, use the purchase-date times in the shelf life chart. The packed-on date guide shows how to count forward.
Most packages have a plain date somewhere near the code. FreshScan reads that printed date with your iPhone camera and sets lot numbers and packed-on dates aside, so the code doesn't get saved by mistake.
When you can't decode it
- Check every side. Campbell's, for example, prints its “Best Used By” date on the end of cans, on the lid or neck of jars, and at the bottom of the back of pouches. A readable date is often on a different face from the code. See where the expiration date is printed.
- Call the number on the package. Have the full code and the product name ready. Molson Coors and Hormel both point customers to their phone lines for code questions.
- Store brands: start with the store's customer service; the product may come from a contract packer.
- Keep the code for recalls. Recall notices identify affected products by date and code, as in the Frito-Lay notice above.
What FreshScan and the decoder do with codes
FreshScan reads printed dates, not lot numbers or Julian codes. When a label has a lot number or packed-on date next to a best-by or EXP date, it scores those down so they aren't mistaken for the date. It reads month-and-year dates such as BBD AUG 2027 as the last day of the month, and it reads Canadian two-letter months next to a phrase like BEST BEFORE or BB/MA. A code on its own, such as L18325, isn't read as a date; convert it yourself and type the date in.
The expiration date decoder on this site uses the same reader. If you type in a code with no readable date, it says no date was found and suggests that a short number such as 263 is usually a Julian pack date, with a link to the converter.
Questions people ask
How do you read an expiration date code with letters and numbers?
First look for a phrase such as BEST BY, USE BY, EXP or BB, and read the date next to it. The rest of the line is usually a lot or production code. If there is no phrase, look for a three-digit day of the year (001 to 366) with a one- or two-digit year beside it, which is usually the date the food was made, not when it expires. If you still can't read it, call the number on the package.
Is the lot number the expiration date?
No. A lot or batch number identifies a group of products made under the same conditions, so the company can trace them and find them in a recall. Some lot codes contain the production date, but none of them is the date to use the food by. Use the best-by, use-by or EXP date printed separately.
What does L mean before a number on food?
Usually lot. EU law says a lot mark is preceded by the letter L unless it is clearly distinguishable from the other information on the label, and some US companies use it too: Hormel reads its example L18325 as lot, year 2018, day 325. An L can also stand for a production line, as in L2.
Can I find the expiration date from a batch number?
Only if the manufacturer tells you how. A batch code may contain the production date, and a few companies publish how long their products keep, so you can count forward. Otherwise, call the number on the package with the full code and ask.
What does a letter in a date code mean?
It depends on the company. Monster says the first letter of its code is the month, A to L for January to December. Molson Coors uses a letter for the day of the week the beer was packaged, A for Monday. Other letters mark a lot, a line or a plant. Don't assume a letter is a month unless the maker says so.
Sources
- Code Dates Decoded — Hormel Foods. March 26, 2019. The L18325 example
- Interpreting NJFC Can Codes for “Best-By” Dates — The Neil Jones Food Company
- How to Read Code Dates — Molson Coors Beverage Company. PDF (2020), linked from molsoncoors.com/nutritional-information. U.S. market; includes Sol import codes
- Frequently Asked Questions — Monster Energy. The site blocks automated access; the production-code answer was confirmed from a search engine's excerpt of this page on October 5, 2026
- FAQs — The Hershey Company
- Frito-Lay Issues Voluntary Allergy Alert on Undeclared Milk in a Small Number of Ruffles Original Potato Chips — U.S. Food and Drug Administration (company announcement). August 21, 2020
- FAQs — Campbell's
- 21 CFR 113.60: Containers (container coding for low-acid canned foods) — Code of Federal Regulations, via Cornell Legal Information Institute
- Directive 2011/91/EU on indications or marks identifying the lot to which a foodstuff belongs — EUR-Lex. Articles 1, 3 and 5
- Food Product Dating — USDA Food Safety and Inspection Service. FSIS blocks automated access; the closed-dating wording was confirmed in the Texas DSHS reproduction of this fact sheet
- How to Find the USDA Establishment (EST) Number on Food Packaging — USDA Food Safety and Inspection Service. Confirmed from a search engine's excerpt of this page
- Date markings and storage instructions — Canadian Food Inspection Agency
- Shell Eggs from Farm to Table — USDA Food Safety and Inspection Service
- 21 CFR 107.20: Directions for use (infant formula use-by date) — Code of Federal Regulations, via Cornell Legal Information Institute