A beer date code is the short run of numbers and letters printed on a bottle or can that tells you when the beer was packaged and, depending on the brewery, how long they expect it to taste its best. Learning how to read a beer bottle date code takes about two minutes once you know which format you are looking at: find the code, work out the pattern, then decode the month and year. The wrinkle is that no rule requires one format, so the brewery’s own legend always beats a rule of thumb.
Past that date, beer rarely becomes dangerous. It goes flat, oxidized, or skunky as hop aroma fades and oxygen creeps in through the cap seal. That is why the code matters most for a hop-forward IPA you want to drink this weekend, and hardly at all for a barrel-aged stout you bought on purpose.
Here is the process I run through, whether it’s a bottle in the fridge or a glass poured at a taproom.
Table of Contents
- What You Need
- Step-by-Step: How to Read a Beer Bottle Date Code
- 1. Find the Code on the Bottle or Can
- 2. Separate the Date From Nearby Numbers
- 3. Decode the Month and Year
- 4. Work Out Unfamiliar Letter-and-Number Codes
- 5. Check the Meaning of the Date
- 6. Verify and Estimate Freshness
- Common Mistakes That Ruin a Beer Date Code
- Frequently Asked Questions
- Why can’t I find a date code on my beer?
- Are beer date codes required to use the same format everywhere?
- Does the date on a beer bottle mean it should be discarded that day?
- Why does a beer date code sometimes use a month number greater than 12?
- Can a retailer’s freshness date conflict with the brewery’s code?
- What should I do if the brewery does not explain its date format?
- Conclusion
What You Need
You need far less than you would expect. Most codes decode with a phone camera and a month reference, and neither costs anything.
- The bottle or can itself, ideally cold and dry so condensation is not washing the print out.
- A phone camera or a small magnifier for faint inkjet codes.
- The brewery’s own code legend, usually printed near the code, on the case carton, or on the brewery website.
- A month-and-year reference. Step 3 below has one built into the worked examples.
- The style of the beer, which tells you how much the date actually matters.
You do not need a paid decoding app. The free ones guess, and the guess is only ever as good as your assumption about the format.
Step-by-Step: How to Read a Beer Bottle Date Code
Six steps, in order. The first three decode nearly every code you will meet in a liquor store, and the last three tell you whether the answer means what you hoped.
1. Find the Code on the Bottle or Can

The code is printed on the container, not the label artwork, so rotate it under light rather than reading it flat on the shelf.
- Bottle neck: the most common spot, just below the crown cap or on the neck label itself.
- Bottle shoulder: a sloped area between the neck and the body. Coors Light is a familiar example that puts its code here rather than low on the bottle.
- Bottle base: some breweries ink or emboss a code on the heel or punt of the glass.
- Bottom rim of a can: pull the can up and look at the flat lid, just inside the rim.
- Side of a can: printed vertically next to the barcode, often running along the seam.
- Case carton: a 12-pack or case usually carries its own code plus the lot number for the whole shipment.
If a code looks smudged, dry the surface gently rather than rubbing it, then take a photo and zoom. Inkjet print at canning-line speed often spreads by a single stroke, which is what turns a 1 into a 7 and a 0 into an 8.
2. Separate the Date From Nearby Numbers
Isolate the run of characters that could plausibly be a calendar date, and ignore the rest until the date makes sense.
A barcode contributes twelve or thirteen digits right beside the code, and brewery lot or batch numbers add more. Those numbers exist for traceability and recall, not for your calendar. Ignore any string that starts with letters you cannot resolve as a month, and ignore a block that is clearly a product or plant code.
Write the characters down exactly as printed, in the order they appear. Do not sort them, do not drop a character that looks odd, and do not assume a leading zero is noise. A code written as 250614 keeps its zero for a reason. If the label gives you no legend at all, this separation step is how to read a beer bottle date code using nothing but the characters themselves.
3. Decode the Month and Year

Most American and Canadian codes are six digits read as MMDDYY, and many breweries worldwide print YYMMDD instead. Here are six real-looking codes decoded twice over.
| Code as printed | Format | Date it means |
|---|---|---|
| 250614 | YYMMDD | 14 June 2025 |
| 140625 | DD/MM/YY, common on European imports | 14 June 2025, the same date written the other way round |
| 101320 | MMDDYY in the US, DD/MM/YY in Europe | 13 October 2020 under either reading |
| A1518 | Month letter, then day and two-digit year | A is the first month, so 15 January 2018 |
| 213 | Julian day-of-year | 1 August in a common year, 31 July in a leap year |
| 18137 | Two-digit year followed by Julian day | 17 May 2018, the 137th day of that year |
The 101320 row is the useful one. When the day is 13 or lower, MMDDYY and DD/MM/YY can land on the same calendar day, so a code that looks ambiguous is often not. When the first two digits are 13 or higher, only one reading is possible, and you can stop worrying about which convention your beer uses.
None of this is legally standardised. Some countries and some packages use different sequences, so treat the table as a strong starting point rather than a rule.
4. Work Out Unfamiliar Letter-and-Number Codes
When a code does not fit any calendar pattern, it is usually one of four things, and you can usually tell which from the shape.
- Month as a letter. A through L stand in for January through December. So
B0922reads as February in 2022, once you know the day sits between the letter and the year. - A Julian day. Three digits between 001 and 366 count the days from January 1. Two digits in front often give the year, as in 18137.
- A batch or lot code. Longer alphanumeric strings are internal production identifiers. They may embed a date, a plant, a line, and a shift all at once. Molson Coors publishes its own structure openly: a 14-character batch code printed on the bottle neck or the bottom of the can, where the leading block carries the packaged-on date and the remaining characters identify the production run.
- A brewery-specific sequence. The only reliable fix is the brewery’s own legend. Formats do change over time at the same brewery, so a code you learned last year can decode differently this year.
The Julian reference you need is simple. Day 001 is 1 January, and each month starts where the last one ends.
| Month | Day numbers in a common year | Day numbers in a leap year |
|---|---|---|
| January | 001 to 031 | 001 to 031 |
| February | 032 to 059 | 032 to 060 |
| March | 060 to 090 | 061 to 091 |
| April | 091 to 120 | 092 to 121 |
| May | 121 to 151 | 122 to 152 |
| June | 152 to 181 | 153 to 182 |
| July | 182 to 212 | 183 to 213 |
| August | 213 to 243 | 214 to 244 |
| September | 244 to 273 | 245 to 274 |
| October | 274 to 304 | 275 to 305 |
| November | 305 to 334 | 306 to 335 |
| December | 335 to 365 | 336 to 366 |
5. Check the Meaning of the Date
The words printed next to the code decide what the number means, and reading the number before those words is how people talk themselves into a mistake.
| Wording on the label | What it tells you | Can you override it? |
|---|---|---|
| Born On, Bottled On, Packaged On, Canned On | The day the beer went into the bottle or can | No, but the beer may well taste good well past it |
| Best By, Best Before, Fresh Until | The brewery’s estimate of peak quality | Yes, with reason. This is a flavour promise, not a safety line |
| A bare code, no words | Usually a packaging date, but the brewery defines it | Ask the brewery or check the case carton legend |
| Use By or Expiration | Rare on beer, common on other groceries | Follow it, and treat it as the stricter of the two readings |
Alcohol is generally sold as a best-before product rather than a use-by one, though labelling rules differ by country. A “best before” date describes quality. It is not the day the beer becomes unsafe, and a date that says otherwise is worth reading twice.
6. Verify and Estimate Freshness
Now do the arithmetic that actually matters: subtract the decoded packaging date from today, then compare the result against the style. The first bottle of a new brewery takes some working out; the second takes about ten seconds.
Breweries typically aim for peak quality within three to nine months of packaging. That window is generous for a clean lager and optimistic for a fresh-hop IPA, which loses its best aroma weeks earlier than the printed date suggests.
| Style | Typical freshness window after packaging | Ages well? |
|---|---|---|
| Pale lager, pilsner, session beer | 3 to 6 months | No, it flattens fast |
| Hop-forward IPA or hoppy pale ale | 1 to 3 months | No, aroma goes first |
| Sour, wild, or Brett-fermented beer | 6 to 12 months | Often, if you like where it is going |
| Imperial stout, barley wine, strong ale | 12 months or more | Yes |
Storage beats the date every time. A beer that sat in a hot car for an afternoon is worse off than one four months past its date that lived in a fridge. Keep bottles cold, dark, and upright, and leave them nowhere that sees sunlight, because lightstruck hop character tastes like skunky cardboard and no vintage date undoes it.
When you cannot confirm the format, the brewery is the authority. Their website often publishes the legend, and the contact email or phone number on the label is the fastest way to a straight answer.
Common Mistakes That Ruin a Beer Date Code
Almost every misreading comes from one of six assumptions. Here they are, with the correction next to each.
- Assuming every brewery uses the same format. Macro lager, imported lager, and craft ale all tend to do it differently. Check the label legend before you commit to a reading.
- Reversing day and month. A code with 13 or higher in the first two digits is MMDDYY or DD/MM/YY, not YYMMDD. When the first pair is 12 or lower, look for a year-like pair at the start or the end.
- Reading the letter O as a zero. In a printed code they look identical, and the difference can move the date by years. Check whether the character width and ink coverage match the other zeros.
- Treating a packaging date as a spoilage date. The code says when the beer was made. Nothing about that tells you when it stops being drinkable.
- Counting age from the purchase date. Beer spends most of its shelf life sitting in a warehouse and on a truck. Age is measured from the packaging date.
- Ignoring two-digit year rollover. On an older bottle, a 25 might mean 2025 or 1925. Antique glass carries mould numbers and other stamps that look like dates to anyone reading them cold.
If you remember only three things: read the characters in the order they are printed, identify the format before you interpret the numbers, and let the brewery’s legend settle any argument your decoding started.
Frequently Asked Questions
Why can’t I find a date code on my beer?
Some breweries print no date at all, especially smaller craft producers who rotate beer quickly and never expect a bottle to be kept. Others ink the code onto a part of the container you have not turned yet, such as the can’s bottom rim or the bottle’s heel. If the container is genuinely blank, treat the purchase date as the packaging date and buy one bottle to drink now rather than one to save.
Are beer date codes required to use the same format everywhere?
No. There is no single international standard for beer date codes, and rules vary by country as well as by brewery. Most American and Canadian packaging uses MMDDYY, many breweries print YYMMDD, and European imports commonly use DD/MM/YY. Some use letters for months, some use Julian day numbers, and some print a batch code that only the brewery can fully parse.
Does the date on a beer bottle mean it should be discarded that day?
No. Beer past a best-by date is a flavour question rather than a safety one, and alcohol stops the growth of the bacteria that spoil food. The date marks the brewery’s estimate of peak quality. Whether a beer is still good past it depends on the style and on how the beer was stored, so an old bottle kept cold and dark can taste better than a fresh one that sat warm.
Why does a beer date code sometimes use a month number greater than 12?
That usually means the code is not written month first. In a YYMMDD code the digits you read as a month come after a two-digit year, so 250614 means the fourteenth day of June 2025. Some codes also mix formats, or use a Julian day count that runs up to 366. Check where the year digits sit before deciding a number is impossible.
Can a retailer’s freshness date conflict with the brewery’s code?
It can. Retailers and distributors sometimes apply their own rotation rules and print a later handling date on the case carton than the bottle inside carries. When the two disagree, trust the bottle or can, since that is the code the brewery applied at the packaging line. A case date that is earlier than its own bottles usually signals a reprint or repack rather than a genuine conflict.
What should I do if the brewery does not explain its date format?
Start with what the code itself rules out: if a pair of digits exceeds 12 in the first position it cannot be a month, which tells you the year comes first. Then look for printed words such as Born On or Best By next to the code, and check the brewery’s website for a code legend. If nothing resolves it, contact the brewery using the address on the label and they will usually tell you what their plant prints.
Conclusion
Read the code in the order it is printed, identify the format before you interpret any of it, and then check the words next to it to see whether it is a packaging date or a quality estimate. The first two steps take under a minute and settle almost every bottle you will ever pick up. When the format still refuses to make sense, ask the brewery, since nobody knows their own plant codes better than they do.


