A lot number is a code a manufacturer puts on a group of items that were made together, from the same materials, under the same conditions. Everything carrying that code shares a history. If something is wrong with one of them, it is probably wrong with all of them, and that is the entire reason the code exists.
You will also see it called a batch number, a lot code or a batch code. They mean the same thing.
Lot, batch, serial, SKU
Four codes that get confused constantly, and they answer four different questions.
A SKU tells you what the item is. Every 500ml bottle of the same shampoo shares one SKU.
A lot number tells you which production run it came from. The bottles made on Tuesday have a different lot from the bottles made on Wednesday, even though the SKU is identical.
A serial number tells you which individual item it is. No two share one. Serials show up on things worth tracking one at a time: appliances, tools, electronics.
An expiry date tells you when it stops being good, and it is usually derived from the lot, because everything in the run was made at the same time.
A useful way to hold it: SKU is what, lot is when, serial is which one.
How to read a lot number
Here is the part most articles get wrong. There is no universal format. A lot number is whatever the manufacturer decided it should be, and two companies in the same industry will encode completely different things in the same number of characters.
So the honest answer to what a particular lot number means is: ask whoever made it. For food and drugs in particular, the manufacturer can decode it exactly and will usually tell you if you call.
That said, a few patterns show up often enough to be worth recognizing.
A date in plain form. 240517 is very often 17 May 2024, or May 17th if the maker is American. Ambiguous by design, unfortunately.
A Julian date code. 24137 means the 137th day of 2024. Common in food and pharmaceuticals because it is compact and unambiguous. The first one or two digits are the year, the last three are the day of the year, counted from 1 to 365.
A plant, line and shift code. Something like B2-0517-3 may be plant B, line 2, made on 17 May, third shift. Useful to the manufacturer, opaque to everyone else.
A sequential run number. LOT-4471 just means the 4,471st run. It carries no date at all and only means something against the manufacturer's own records.
If you have several units of the same product and their codes differ by a small amount, you can often work out which part is the date by comparing them. That is guesswork though, and for anything where the answer matters, guessing is not good enough.
Where to find it on the product
It is rarely next to the barcode, which is where people look first.
On packaged food, check the crimp on the bag, the bottom of the can, or a printed strip near the best-before date. On medicine, the carton end flap and the blister foil itself. On cosmetics, the base of the tube or the bottom of the jar, often stamped rather than printed. On industrial parts, a stamped or laser-etched mark on the part, and a separate label on the box, which is why the two can disagree once someone repacks something.
It is usually printed differently from the rest of the label: inkjet-sprayed, laser-etched or embossed, rather than part of the printed artwork. That is because it changes with every run while the artwork does not, and that difference in printing method is often the fastest way to spot it.
Why they are not standardized
It looks like an obvious thing to standardize, and there have been attempts. GS1 defines a standard way to carry a lot number inside a barcode, and in some regulated supply chains that is genuinely used.
But the code is primarily for the manufacturer's own use. It has to key into their production records, and those records are structured however that company structures them. A format that is convenient for a dairy with three lines is not convenient for a contract electronics manufacturer with forty. Nobody has enough leverage to force a common scheme on everyone, and the people who most need to decode a lot number already have the manufacturer's phone number.
If you are the one assigning them
Different problem, and you get to make it easy on yourself.
Encode the date, because that is the question you will ask most often and it makes the code self-describing when the system is down. Use a Julian or ISO-style date rather than an ambiguous one, so nobody has to guess whether 05 is the month or the day. Keep it short enough to read aloud over the phone, because at some point somebody will. Do not encode anything you would not want a customer or a competitor to work out, since the code is printed on the product and people do decode these.
And make the lot travel with the physical item rather than living only on the paperwork. A lot number recorded on a purchase order and then lost at put-away is the single most common reason a recall takes days instead of an hour. That is a bigger topic, and it is covered in lot traceability and what a recall actually asks of you.
The short version
A lot number identifies a production run. It is not a serial number and not a SKU. There is no standard format, so reading one from the outside is pattern-matching at best. If you need to know exactly what a code means, the manufacturer is the only reliable source. If you are the one issuing them, put the date in it and attach it to the item rather than to a document.
If the items you handle carry lots, the next question is usually whether your own records could survive a recall. Unit-level tracking is what makes that answerable, and kitting is where the chain most often breaks.
Lot numbers that survive the shelf
Lot and expiry data lives on the individual unit in Knowledge ERP, so a recall query is a lookup rather than an investigation. The 30-day trial runs on your real data.