Part 1
Identification
GTIN Formats — Four Lengths, One Standard
| Format | Digits | Barcode type | Primary use |
|---|---|---|---|
| GTIN-8 | 8 | EAN-8 | Small items, outside North America |
| GTIN-12 | 12 | UPC-A | Consumer units in North America — the everyday "UPC" |
| GTIN-13 | 13 | EAN-13 | Consumer units outside North America — the everyday "EAN" |
| GTIN-14 | 14 | ITF-14 / GS1-128 | Cases, inner packs, groupings — never scanned at consumer POS |
Terminology cleanup: "UPC" and "barcode" are colloquial terms for GTIN-12 in North America. "EAN" means GTIN-13. "GTIN" is the umbrella standard that covers all four formats. The GS1 system uses GTIN everywhere; your retailer forms may say "UPC" but mean GTIN-12.
GTIN-14 Anatomy — Indicator Digit
A GTIN-14 is built from a GTIN-12 or GTIN-13 with one digit prepended — the indicator digit — and a recalculated check digit.
| Indicator digit | Meaning |
|---|---|
| 1 – 8 | Different packaging levels (inner pack, case, display shipper, pallet, etc.). GS1 assigns no fixed meaning per digit — each brand assigns these to its own hierarchy levels. One company's "1" may be an inner pack; another's may be a full case. |
| 9 | Variable-measure item — weight or quantity varies at point of sale (bulk, catch-weight) |
| 0 | Not a valid true indicator digit. A 14-digit string starting with 0 is a padded GTIN-12 or GTIN-13, not a GTIN-14. Adding filler zeros to a shorter GTIN does not create a new identifier. |
Source: GS1 US — An Introduction to the Global Trade Item Number (GTIN), Release 2.1
Check Digit Algorithm
Every GTIN ends in a single check digit calculated the same way, regardless of length.
Algorithm (works for GTIN-8, -12, -13, and -14):
Step 2: From the rightmost digit, assign alternating weights: ×3, ×1, ×3, ×1 … moving left.
Step 3: Multiply each digit by its weight. Sum all products.
Step 4: Check digit = nearest multiple of 10 at or above the sum, minus the sum.
Equivalently: (10 − (sum mod 10)) mod 10
Worked example (GTIN-13 without check digit: 629104150021):
| Position | 6 | 2 | 9 | 1 | 0 | 4 | 1 | 5 | 0 | 0 | 2 | 1 | Check |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Weight | ×1 | ×3 | ×1 | ×3 | ×1 | ×3 | ×1 | ×3 | ×1 | ×3 | ×1 | ×3 | — |
| Product | 6 | 6 | 9 | 3 | 0 | 12 | 1 | 15 | 0 | 0 | 2 | 3 | = 57 |
Next multiple of 10 above 57 = 60 → check digit = 60 − 57 = 3
Full GTIN-13: 6291041500213
Source: GS1 US — Check Digit Calculator (official document)
Packaging Hierarchy — Which GTIN Goes Where
| Pack level | GTIN format | Where it appears |
|---|---|---|
| Each (consumer unit) | GTIN-12 or GTIN-13 | POS barcode on the retail package; every retailer item-setup form |
| Inner pack | GTIN-14 (indicator 1–8) | Wholesale/distributor ordering; some retailer forms require it |
| Case (master carton) | GTIN-14 (indicator 1–8) | Warehouse receiving, EDI 856 ASN, warehouse management systems |
| Pallet (SSCC) | SSCC — 18 digits, not a GTIN | Shipping labels (GS1-128), EDI 856; identifies a specific shipment, not a product |
SSCC vs GTIN-14
Both are 14-digit-ish numbers on shipping labels and both involve cases — this is the most common source of confusion.
A GTIN-14 identifies a product (what's in the box — 12-count case of SKU X). It's permanent and reusable across every shipment of that case configuration.
An SSCC (Serial Shipping Container Code) identifies a specific physical pallet or container in a specific shipment. It's 18 digits, generated per shipment, and appears on the GS1-128 pallet label. Two pallets of the same product have different SSCCs.
Part 3
Retailer Quick-Reference
Required hierarchy, portal name, and the one thing that trips up new vendors — per retailer.
| Retailer | Portal / system | Required hierarchy | Keyed unit | Notorious gotcha |
|---|---|---|---|---|
| Walmart | Supplier One (supplierone.walmart.com) Replaced Item 360, September 2024 |
Each → Inner/Warehouse Pack → Case → Pallet; unique GTIN per level | Consumer unit (each) | Once an item is created in Walmart's catalog, its trade item hierarchy is permanent — an incorrect configuration can't be edited, only rebuilt as a new item, and changing the sellable quantity in a case requires acquiring a brand-new GTIN. Once GDSN-synced, dimensions also lock; corrections must flow through the data pool. (Dimension & Weight Integrity →) |
| Costco | Vendor Hub (hub.costco.com) | Item UPC + Case GTIN | Consumer unit (member-facing pack) | Costco's item setup is buyer-driven and barely publicly documented — its notorious data landmines (ASN lot codes, quantity mismatches at ~$10/carton) surface at receiving, not at setup. [EDI-vendor documentation, not Costco primary] |
| Whole Foods Market | Vendor Internet Portal / VIP (vip.wholefoods.com) for cost file maintenance; new item setup via Amazon Grocery Central (grocerycentral.amazon.com) | Consumer unit; 13-digit barcode required for all packaged products | Consumer unit (each) | Whole Foods gates US item-setup documentation behind supplier login — verify requirements directly in the portal; no publicly verifiable gotcha is listed here by design. |
| UNFI | SVHarbor (svharbor.unfi.com) | Consumer unit published via GDSN to GLN 0041130079153 ("UNFI Corporate"); Item Proposal in SVHarbor required to activate | Consumer unit (each) | Publishing to GLN 0041130079153 does not process the item — a separate Item Proposal must be submitted in SVHarbor, or the product sits inactive with no rejection notice. |
| KeHE | KeHE CONNECT® (connectsupplier.kehe.com) | Each + Sellable Case Pack + Warehouse Receiving Pack — every level requires its own unique GTIN-14 (ITF-14) | Case (ordering unit) | KeHE requires a unique GTIN-14 at every packaging level — creating it is solely the supplier's responsibility. The consumer unit UPC (GTIN-12) cannot serve as the case GTIN; errors surface at warehouse receiving, not at setup time. |
| Kroger | Kroger Item API (KIA) Certified providers: Syndigo, Salsify, 1WorldSync · legacy VIP mid-phase-out |
Consumer unit GTIN via certified provider syndication (Syndigo / Salsify / 1WorldSync) | Consumer unit (each) | Kroger no longer has one front door — new items now syndicate through one of three certified providers (Syndigo, Salsify, 1WorldSync) via the Kroger Item API, the legacy VIP portal is mid-phase-out, and Our Brands / Harris Teeter items can only go through Syndigo. |
Retailer systems verified June 2026 — these get renamed; check before relying.
Sources: Walmart — Supplier One HelpDocs (supplierone.helpdocs.io, confirmed via search-result text, June 2026) · Costco — Vendor Hub (hub.costco.com) · Whole Foods Market — vip.wholefoods.com; grocerycentral.amazon.com (US portals confirmed; content login-gated) · UNFI — 1WorldSync UNFI GDSN FAQ (updated 2024-02-19) · KeHE — KeHE AOM & GTIN Requirements, corroborated via Presence Marketing (pmidpi.com), 2025 · Kroger — KIA FAQ (thekrogerco.com, April 3, 2025); thekrogerco.com/vendor-suppliers/vendors/retail-vendors/ (June 2026)
Part 4
Compliance Horizon
GS1 Sunrise 2027 — 2D Barcodes
Sunrise 2027 is an industry readiness milestone, not a government mandate. GS1 is a voluntary standards body with no enforcement authority. The goal: all retail POS systems capable of reading GS1-compliant 2D barcodes by end of 2027. UPC linear barcodes remain valid at retail after the 2027 date.
The commercial stakes are real: major retailers — including Walmart, Target, and Kroger — have publicly committed to 2D-capable point-of-sale under GS1 US's Sunrise 2027 initiative. Non-readiness creates delist risk and reduced shelf placement, not a regulatory fine.
What counts as a compliant 2D barcode. Two approved formats: (1) a QR code with GS1 Digital Link URI syntax encoding your GTIN; (2) a GS1 DataMatrix with GS1 Application Identifiers. A marketing QR code pointing to a website URL without GS1 structure cannot be parsed at POS and does not satisfy the requirement.
Dual-marking requirement. Any product carrying a 2D barcode on-pack must also carry a traditional linear barcode until 90% of POS scanning solutions can read GS1-compliant 2D barcodes and capture the GTIN. As of mid-2026, that threshold has not been declared met.
FSMA 204 — Food Traceability Rule
Section 204 of FSMA requires additional lot-level recordkeeping for foods on the FDA's Food Traceability List (FTL). Covered foods include certain fresh fruits and vegetables, shell eggs, nut butters, finfish, crustaceans, and refrigerated ready-to-eat deli salads. The rule requires tracking Key Data Elements (KDEs) at each of seven Critical Tracking Events (CTEs): harvesting, cooling, initial packing, first land-based receiving, shipping, receiving, and transformation.
Enforcement date: July 20, 2028. The rule's compliance date is January 20, 2026. Congress barred FDA from enforcing the rule before July 20, 2028 in a funding law (Public Law 119-37, Div. B, Sec. 780, November 12, 2025), and a stopgap funding law (Public Law 119-103) carries that bar through December 11, 2026. It holds only as long as Congress keeps renewing it. FDA proposed the same date as a new compliance date (Federal Register, August 7, 2025; FR Doc. 2025-14967; Docket No. FDA-2014-N-0053) and has not made it final.
Part 5
Logistics Numbers
NMFC Freight Class
LTL freight class runs from 50 (densest, cheapest to ship per hundredweight) to 500 (lightest or most difficult, most expensive). Four factors determine class: density, handling, stowability, and liability. For most packaged food, density is the determining factor.
Step 1 — Calculate density:
Density (PCF) = Weight (lbs) ÷ Volume (ft³)
Example: 30 lb case, 18″ × 14″ × 10″ → volume = 1.46 ft³ → density = 20.5 PCF → Class 70
Step 2 — Look up the class:
| Density (lbs/ft³) | NMFC Class |
|---|---|
| 50 or greater | 50 |
| 35 – <50 | 55 |
| 30 – <35 | 60 |
| 22.5 – <30 | 65 |
| 15 – <22.5 | 70 |
| 12 – <15 | 85 |
| 10 – <12 | 92.5 |
| 8 – <10 | 100 |
| 6 – <8 | 125 |
| 4 – <6 | 175 |
| 2 – <4 | 250 |
| 1 – <2 | 300 |
| Less than 1 | 400 |
Source: NMFTA Docket 2025-1, effective July 19, 2025 · nmfta.org
DIM Weight Divisors
Parcel carriers charge the greater of actual weight or dimensional weight (DIM weight) — the space a package occupies expressed as pounds. The formula:
Billable weight = MAX(actual weight, DIM weight)
| Carrier / Service | Divisor | Notes |
|---|---|---|
| UPS (account / daily rates) | 139 | Ground, 2nd Day Air, Next Day Air |
| UPS (retail / walk-in rates) | 166 | UPS Store or counter rates without a contract; high-volume shippers can negotiate 139 |
| FedEx (domestic) | 139 | Ground, Home Delivery, Express |
| USPS | 166 | Priority Mail and Priority Mail Express confirmed; threshold >1 ft³ (1,728 in³). USPS Ground Advantage rule varies — verify at usps.com before relying on this row. |
| LTL freight | N/A | LTL uses density → freight class, not a DIM divisor — see NMFC table above |
UPS and FedEx divisors: corroborated secondary (packcalc.com March 2026, packizon.com) — ups.com timed out; fedex.com returned 403 during verification. USPS threshold (>1 ft³) confirmed primary via pe.usps.com/text/dmm300/Notice123.htm. Divisors verified June 11, 2026 · carriers revise in annual rate updates (Dec–Jan cycle) — reverify after June 2027.
TiHi
Ti is the number of cases per layer on a pallet. Hi is the number of layers stacked high. Together they define the pallet configuration a retailer expects on inbound shipments.
Example: Ti 12, Hi 8 → 96 cases per pallet
Retailers specify TiHi on purchase orders. Warehouse systems validate the configuration at receiving, not just the case count — shipping Ti 14, Hi 6 when the order called for Ti 12, Hi 7 can trigger a chargeback even when the total case count is identical — both are 84 cases.
Case Cube
Case cube is the volume of a master carton in cubic feet, used for warehouse slotting, pallet-build planning, and TiHi calculation.
Example: 18″ × 14″ × 10″ → 2,520 ÷ 1,728 = 1.46 ft³
1,728 = 12 × 12 × 12 — one cubic foot in cubic inches