A case label tells whoever handles the case what's inside it without opening it: the product, how many, the lot, the date, and a barcode a warehouse can scan. For a small producer, it becomes a question the first time a distributor or a grocery chain's warehouse asks for "a GS1-128 label with lot and date". That barcode carries three things in one: the case's GTIN-14, its use-by or best-by date, and the lot. Below is what goes on a case label, how the GTIN-14 and its check digit are built, how the GS1-128 string is put together, a filled-in example for a salsa maker, and a free template that builds the string and the check digit by formula.
The short version
- Product name, SKU, how many units and the net weight, and who it's from.
- The lot and the date, in words and in the barcode.
- A case GTIN-14: an indicator digit, your GS1 company prefix and item number, and a check digit.
- The GS1-128 string: (01) GTIN-14, then (17) use-by or (15) best-by as YYMMDD, then (10) lot, last.
- The same lot that's on the units inside, so a recall can find every case.
- TaroStack prints lot labels with the GTIN, date and lot in a GS1-128 barcode, and reads them at receiving. More below.
What goes on a case label
| Field | Example | Why |
|---|---|---|
| From | Saguaro Salsa Co., Tucson, AZ | Who to call |
| Product | Fresh salsa roja, 16 oz tubs | What's inside |
| SKU | SR-16-CS | Your code, for your picking and theirs |
| Contents | 12 units, 12 lb (5.44 kg) | How many, and how heavy |
| Lot | SR-261012A | Which batch, for a recall |
| Use by | October 26, 2026 | When it must be gone |
| Case GTIN-14 | 10061414110010 | The case's own GS1 number |
| Barcode | (01)10061414110010 (17)261026 (10)SR-261012A | All three, scannable |
The lot on the case is the lot on every tub inside it; a case that mixes lots should say so, or better, not exist. How lot codes are built is in how to create lot numbers, and how a buyer reads the codes on a package is in how to read lot codes on food.
The case GTIN-14 and its check digit
A GTIN is the number under a retail barcode, and it comes from GS1: you license a company prefix and number your products with it. A case of the same tubs gets its own GTIN-14: an indicator digit for the packaging level, the company prefix and item number, and a check digit. How to get a prefix and what it costs is in GS1 barcodes for small food producers.
The check digit is arithmetic. Take the first 13 digits, multiply them by 3, 1, 3, 1 and so on from the left, add the results, and the check digit is whatever brings the total up to the next multiple of 10:
| Digits | 1 | 0 | 0 | 6 | 1 | 4 | 1 | 4 | 1 | 1 | 0 | 0 | 1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Weight | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 |
| Product | 3 | 0 | 0 | 6 | 3 | 4 | 3 | 4 | 3 | 1 | 0 | 0 | 3 |
The products add up to 30, already a multiple of 10, so the check digit is 0 and the GTIN-14 is 10061414110010. The example uses 0614141, the company prefix GS1 uses in its own examples; use your own, and never make one up.
The GS1-128 string
A GS1-128 barcode strings data together, each piece behind a two-digit application identifier, shown in brackets under the bars:
| Identifier | Means | Example |
|---|---|---|
| (01) | GTIN-14, fixed length | 10061414110010 |
| (17) | Use-by or expiration date, YYMMDD | 261026 |
| (15) | Best-by date, YYMMDD, instead of (17) on a shelf-stable product | |
| (10) | Lot or batch, variable length | SR-261012A |
The lot goes last because its length varies; anything after a variable-length field needs a separator character, and putting it at the end avoids that. A barcode printer or a barcode generator is fed the string without the brackets, 01100614141100101726102610SR-261012A run together, and prints the brackets in the human-readable line underneath. The template builds both.
A filled-in example
Saguaro Salsa Co., a made-up salsa maker in Tucson, Arizona, I use in these examples, ships two pallets of fresh salsa to a distributor, 20 cases of each:
| Product | Lot | Use by | Cases | Case GTIN-14 | Human-readable line |
|---|---|---|---|---|---|
| Fresh salsa roja, 16 oz tubs | SR-261012A | Oct 26, 2026 | 20 | 10061414110010 | (01)10061414110010 (17)261026 (10)SR-261012A |
| Fresh salsa verde, 16 oz tubs | SV-261013A | Oct 27, 2026 | 20 | 10061414110027 | (01)10061414110027 (17)261027 (10)SV-261013A |
Each of the 40 cases carries its own label, and the distributor's dock scans them in, lot and date included. What else a distributor or grocery buyer asks of a new supplier is in selling to grocery stores requirements.
Get the template
Download the case label template. Three sheets: your products, where the check digit and the case GTIN-14 fill in from the first 13 digits; a shipment sheet, where each line's product, GTIN, GS1-128 string and human-readable line fill in from the SKU, lot and date; and a printable 4 × 6 case label for the first line. The barcode itself comes from a label printer or a barcode generator fed the string. It's an ordinary Excel file with no macros, and it works in Google Sheets, LibreOffice and Numbers.
Where this stops working
A spreadsheet builds the string, but someone types the lot and the date for every line, and a typo on a case label is a case the distributor can't trace. With a few shipments a week, the labels, the lots the cases really hold, and the lots recorded against each customer drift apart.
How TaroStack does it
TaroStack prints lot labels with the GTIN, date and lot in a GS1-128 barcode, and reads them at receiving.
Lot labels from the batch. When an item has a 14-digit GTIN, its lot labels carry (01) the GTIN, (17) the use-by date and (10) the lot in a GS1-128 barcode, from the batch that made it, so nobody types the lot; without a GTIN, the label carries the lot code. Labels also come as a ZPL file for Zebra label printers. TaroStack doesn't issue GTINs; those come from GS1.
Scanning the other way. At receiving, scanning a supplier's GS1-128 case label fills in its lot and date, so your ingredients arrive with their lots recorded.
The lots each customer got. When the cases ship, the lots in them are recorded against the customer, so a recall is one report: which batches, which customers, what's still on your shelves.
| The job | Spreadsheet | In TaroStack |
|---|---|---|
| The lot on the label | Typed for each case | From the batch |
| A supplier's case label | Typed in at receiving | Scanned |
| Which customer got lot SR-261012A | Search the paperwork | One recall report |
| Zebra label printer | Set up by hand | A label file to print |
Lots, lot labels, scanning and recalls are on every plan, from $49 a month. The first 30 days are free, with no credit card. If you'd like a hand setting up, ask, and we'll do it with you.
