The secret information inside UPC barcodes

Some people believe all Universal Product Codes (UPCs) contain the number 666, representing the number of the beast or the anti-Christ.

Snopes cites the relevant Bible verse: “No one could buy or sell unless he had this mark, that is, the beast’s name or the number that stands for his name” (Revelation 13:17-18).

In a story on UPCs and this theory, The New Republic quotes from Revelation, which discusses the End Times:

“He forced everyone, small and great, rich and poor, free and slave, to receive a mark in his right hand or in his forehead, so that no one could buy or sell unless he had the mark, which is the name of the beast or the number of his name.” What is that number? “Let he that has wisdom count the number of the beast, for it is the number of a man, and his number is 666.”

As interesting as this sounds, it stems from a misinterpretation of the bars that appear on UPCs. They were interpreted to read as 666. But in reality they are just separating marks or guide bars, which look like the bars that represent sixes but are slightly different and have no numeric meaning.

Scanners read the width of the bars and the gaps between the bars in a UPC to convert them into a number that represents the product.

I’ll describe the UPC-A version of the barcode, which is used in the United States for most retail products. Other types of barcodes exist for some product categories, like books, and in countries outside the United States.

Number system digit: This number determines the product’s category.

  • 0, 1, 6, 7, 8: Most products
  • 2: Products sold by variable weight, such as produce and meat; determined by individual retailers or warehouses
  • 3: Pharmaceuticals sold by National Drug Code (NDC) number
  • 4: For retailer use; indicates loyalty cards or store coupons
  • 5: Coupons
  • 9: Reserved

Manufacturer code: This set of five numbers is assigned to a manufacturer by GS1, a nonprofit that governs the assignment of U.S. UPCs.

Product code: The manufacturer determines this set of five numbers; it can be any code the manufacturer desires.

Check digit: This number is determined by a formula. The scanner calculates this formula on its own and then checks against the numbers it scanned to determine whether it scanned the correct digits. If there was an error—say, due to a smudge on the package—the check digit won’t match, and the product will scan with an error.

Note that the information conveyed only identifies the manufacturer and the product.  No pricing or other information is provided. At a retail location, the register will look up the product information and cross-reference it to find the right price or any other information. There are no series of sixes or any other information included in a UPC that can somehow personally identify a shopper. Furthermore, these codes have not been affixed to people, as some have feared.

Some other notes and resources:

1. Using UPCs in syndicated data like Nielsen and IRI: I usually look for the 10 digits represented by the manufacturer code plus the product code. Most U.S. products that I’ve worked with start with a zero as the number system digit, and those leading zeroes are omitted by Nielsen and IRI. There have been a few instances where I have worked with products that contain a non-zero number system digit, and one must be careful to include those digits when searching.

2. If you need to obtain UPCs for your products, talk with GS1. There are some UPC resellers who can sell single UPCs, but that will make it hard to do business with anyone but the smallest of retailers.

3. Wikihow has a good tutorial on UPCs, and Keyence can help you decipher the bars in case you don’t trust the numbers printed below them.