The UPC or Universal Product Code has been in use since 1974. It was originally conceived as a way for modern supermarkets to keep track of the unprecedented number of items that moved through their checkout systems. Shortly after being introduced however, other industries recognized the utility and efficiency of the system and adapted it to their particular use. Today you’d be hard pressed to find a store or manufacturer anywhere in the world that doesn’t use some form of the UPC system.

In North America where the system began it has been refined to include two main variants of the original coding system with the UPC-A 12 digit system being the industry standard. The UPC-E variant consists of a six digit code and is mostly used on items too physically small to accommodate the standard 12 digit codes.



The UPC system is overseen by a non-profit company called GS1. Formerly they were issued by the UCC. When a manufacturer wishes to join the UPC system they pay a fee whereupon GS1 issues them a unique manufacturer identification number commonly referred to as the “company prefix”.



The first digit in the UPC code denotes the type of product as follows:

  • 0, 1, 6, 7 or 8 indicates a manufactured product that is not a drug.
  • 2 indicates a material destined for local usage for example in a store or a warehouse. The manufacturer code section of the barcode is used for item number and the product code part is used for weight or the price. The first digit of the product code section determines if that section is used for price or weight.
  • 3 indicates a drug. The code is referred to as the National Drug Code or more commonly, the UPN code.
  • 4 is used to indicate a non-food item such as a loyalty card.
  • 5 or 9 are used to indicate a manufacturer coupon or discount. In this case manufacturer code remains unchanged whereas the product codes first 3 digits are used as family code and the other 2 digits are the coupon code which also determines the discount amount.

Starting, middle and end bars give the barcode readers a structure about where the parts of the UPC code starts and ends.

Digits 2-6 are the manufacturer code. Manufacturer code or with its widely used name Company Prefix is a 5 digit number, used for the identification of the manufacturer company of the product. Company prefixes are issued by the international organization GS1, formerly they were issued by the UCC. (Just a side note: in the new GTIN specification which is currently used for GTIN codes by GS1, the length of the company prefix varies between seven and eleven digits.) Digits 7 through 11 are the product code which refers to a specific product. The final digit (digit 12) is the check digit.

Check digit is a calculated number in the UPC-A specification. It’s calculated as follows:

  • Sum the digits in odd numbered positions (1, 3, 5, 7, 9, 11) and multiply the result by three
  • Sum the digits in the even numbered positions (2, 4, 6, 8, 10) and add this to the result of the first step.
  • Calculate the module ten of the result of the second step.
  • Substract the result of the third step from 10, the number you find is the check digit.



There are four different symbols at work in a bar code: narrow and wide spaces and narrow and wide bars; with spaces being white and bars being black. Though designed to be read by computers barcodes are not encrypted and there are any number of websites that will teach the curious how to interpret the bars and spaces of a UPC label.



EAN or European Article Number (now renamed as “International Article Number”) is a superset of UPC codes. European regulators however added a 13th digit to the string which enabled the number of possible code combinations to expand from 1 trillion to 10 trillion; basically future-proofing the system against overuse. EAN-13 barcode numbers also indicate the country of the company which sells the product. It’s also possible to prefix a UPC code with a 0 in order to make it an EAN-13 code.



In 2005 GS1 instituted a change in the reading system of the UPC code they labeled the “Sunrise Initiative”. The change had to do with expanding the capability of UPC data structures to accommodate the longer 13 digit EAN codes. GS1 also suggested that all manufacturers, distributors and retailers upgrade their database structures to accommodate anticipated 14 digit structures as well. These changes were instituted to enable any company anywhere to scan any EAN or GS1 coded item with the goal of clearing away hurdles to global trade.

Love what we do? Share on social media, let your friends know about us