Posted on

Product Codes

This is a general article about the different kinds of product codes used in business. It’s a subject that looks unimportant from the outside. From within a business getting codes right is vital.

Every trade historically had its own way of doing things, tea, coffee, wines, cheeses, auto spares and the military.

American gun-makers like Colt and Remington discovered the importance of precision made interchangeable parts in the 19th Century. A gun can be made by a craftsman taking some pre-made parts, making some others and then filing and trimming each part to fit. Alternatively each part can be precision made to fit from the start and mass production of precision parts works out much cheaper in the end. The military took up the cause of standardisation, especially in America and France. United States Military Standards are still something anyone who wants to sell to one of the worlds largest organisations needs to respect – and there are something over 30,000 of them.

Most of the supermarkets started as grocers. A grocer traditionally sells dry goods which might include tea, coffee, sugar, peppers and spices. They might stay away from bread which was the bakers specialist trade, and from cheese which was the domain of the dairy or cheesemonger – and certainly from meat with its strange cuts and rapid decay.

Then the tin can was invented and grocers could sell a wider range of goods, often shipped in by boat and railway. Beer and liquor came in bottles. Bread could be bought ready sliced and wrapped. Grocers shops didn’t need to know the specifics of a trade anymore. They could stock more lines, make better use of their time and resources and expand against the other trades.

Supermarkets were invented in the US and just after WWII the first opened in the UK. The supermarket could offer everything a shopper wanted under one roof. Working with efficient systems that would allow them to function with low margins the supermarkets tended to be cheaper than competitors and so they gradually took over.

A key to efficiency is the product code. Suppliers offer products with consistency under a code. Every time that code is used the same thing should be delivered. The process of coding and standards is the bedrock of how the economy runs.

Businesses make heavy use of product codes. There are two or three types of product code in common use. Industry standard GTIN-13 and Stock Keeping Units (SKU).

  • A GTIN is fixed and can only mean one thing. Supermarkets use GTIN barcodes to identify goods.
  • SKUs have no strict rules. Most brands will give their products a model number or manufacturer’s part number (MPN) and sometimes both – as HP Inc do. Distributors and retailers will frequently use the MPN but put some sort of extension on it – for instance to identify the manufacturer.

Model names and part numbers are old ideas dating back into the nineteenth century – think of engines and guns. The idea of barcodes and GTINs begins around 1970 when the ISBN (used for books) was made an ISO standard. Product identification was particularly acute for books because there are millions of products, titles can be long, there can be several editions and neither titles nor author names are guaranteed to be unique.

Where possible, a product will be recognised with the least ambiguity using the GTIN-13 code and its description.

The GTIN is a numeric code, normally visible on the product outer packaging as a numeric barcode. It is numeric because limiting codes to numbers makes the code simpler and less prone to misinterpretation than an alphanumeric code would be. Codes do have a checksum, but there is a small probability of a misread code passing a checksum test and that is highly undesirable.

Codes started off regionally so the GTIN is also known as a UPC, EAN, JAN or ISBN code. Having different organisations issuing codes with no common rules brought a danger of duplication or incompatibility. Different codes have been merged into one universal system administered by a not-for-profit organisation called GS1. Each GTIN should match precisely one kind of product – and that needs to be paired with a description. If there is a change in GTIN because there is a change in specification the description should reflect that.

GTIN numeric codes used in shops are 13 digits long which is rather more than most people can hold comfortably in memory. The code has to be long enough that it can be unique in international trade. If it were very much longer the labels wouldn’t fit on packaging. That is sometimes a problem so there is a short-code 8 digits long for products like chewing gum. There is a 14 digit code used for wholesale cases and container-loads.

Codes are allocated to brands and manufacturers in blocks. There are blocks GS-1 has set aside for books and CDs. There are also blocks for coupons, loyalty cards and so forth – things people might present at a till that are not products. Other than block allocation and that brands often map their blocks to products in a regular fashion the GTIN-13 has no great meaning.

Manufacturers and brands have to follow the rules of the system but otherwise what they do is up to them. GTIN codes sometimes change for no readily apparent reason. In electronic goods, perhaps the point at which the product is regionalised and the manual and power cord is packed changes from the China to the European warehouse. The code would change to invoke the new procedure. End user specification is unchanged. There might be differences in the packaging which would warrant a change in the photographs on a web-site. Other causes of a code change might be discounts, promotional gifts and cash-back offers, changes in warranty terms and other things that ought to get reflected in the text of a website. A GTIN probably shouldn’t change with a new batch – so as long as a cheese or beer is consistent it should keep the same GTIN. Inconsistency would demand a new code.

There needs to be a flow of information from a brand through their distribution chain to the eventual retailer. What actually seems to happen is that the information might flow through the parts of the system within the brand’s control and get to the distributor but things often break down there. Codes don’t necessarily get from distributors to retailers. Small shops probably do not mind too much, after all the goods are on the shelf – although it is now more difficult to automate things. Failure to pass on the GTIN is problematic to Internet retailers because Google wants the codes on “Merchant Feeds” and will “disapprove” any with codes that don’t match.

It is not particularly easy to “just look up” a code.

GS1 does maintain a database called GEPIR of the codes it has issued – GTIN, Container Code (SSCC), Location Number (GLN) and some countries “Member Organisation” have made company names available. However there are over a million GS1 members and free queries to the database are usually limited to 20 per day. More than that requires membership and an undisclosed payment determined by whichever of the 111 member organisations (MO) you ask.

Supermarkets, distributors and container ports can obviously afford whatever subscription GS1 and/or its MOs ask. They probably don’t need to ask GEPIR because they can insist the brands provide accurate information. Since supermarkets have huge market power and brands and distributors are often paid 90 days in arrears they may actually be “fined” for getting it wrong.

Small businesses will find the whole thing a bit more difficult. There are websites that will look up codes but any free service can be wrong.

A general theory in the trade is that the customer doesn’t want or need the GTIN. Actually anyone wanting to index a book or record collection probably does, and of course there are five million small businesses in the UK many of which really need to be specifying the right codes to their suppliers, customers and to Google. The customer however generally wants one SKU/partnumber from a brochure or parts manual and to find one or two corresponding entries with price and availability on a seller’s website. If there are a dozen, the customer may become confused and has to pick up the phone (or go elsewhere).

The GTIN code gives certainty about the item. Brands that want to sell through supermarkets will probably have to have a GTIN-13 marked on them because that is how information flows through from barcode scanner to response by the point-of-sale (POS) terminal. Supermarket systems need GTIN-13.

Product Codes and Stock Keeping Units

Most organisations also have product-codes or “SKUs” as well as the GTINs. A Stock Keeping Unit (SKU) is effectively a private GTIN, but often a bit more informative.

SKUs can be purely numeric but mostly they are not because the information embedded in them would be more obscure that way. One way to look at it is that an SKU goes part of the way to being a description. If a barcode reader in a supermarket mangles a GTIN that is a bad problem. If a barcode reader in a factory or warehouse misreads an SKU that will often be self-evident to the operator

Spares and electronics distribution tends to use SKUs instead of a GTIN. Until quite recently spares rarely had a GTIN – they would never sell through a supermarket. As the logistics industry has converged on similar solutions, so having a GTIN is becoming important for spares too. At present, we are in a period of transition.

Some kind of code is needed though. We have conversations that go “you know the plastic cog on the end of the carriage rod” – well sometimes we do, other times we don’t. There are something like twenty five thousand models of printer and two million possible spares. Nobody could remember ten parts for each printer – let alone hundreds. That is without notebooks, TV, home theatre and all the other gadgets people might have. We have worked in computer engineering for many years and do not know all the parts – it’s impossible, you need a code. Sometimes the code is written on it. Other times that’s just a mould number.

Stock Keeping Units (SKUs) don’t have the formality of the GTIN, or the cost; blocks of GTINs do cost money. SKUs also tend to be a bit more memorable, usually based on the manufacturers product code or model number which is often alphanumeric. Very frequently an SKU does have a structure.

Brands and SKUs

Brands will give products a manufacturers part number or perhaps a model name – or both. What happens might grow organically.

Until 1984 Hewlett Packard only gave their products model numbers such as “200A” and the sort of people who dealt with laboratory instruments knew that was an audio oscillator. But when HP entered the computer mass market they knew names would be needed and so the 2686A was also christened the “LaserJet”. The LaserJet rather unexpectedly became very successful so its successor became “LaserJet II”, model 33440A. As HP realised there was a huge new market models diversified and we now have the LaserJet Enterprise M605N E6B69A.   LaserJet is a Sub-brand, M605 the “generic” model and the specific model with network but without any other option is M605N – and the model number is E6B69A. Model numbers are usually grouped together (but not always) so the M605DH is model L4W89A.

Most people use HPs model names but they can be ambiguous at times, and then you need the model number. A GTIN won’t help because HP’s lookup service “PartSurfer” doesn’t take GTINs.

SKUs used in trade and by distributors typically contain:

  • A two or three letter abbreviation of the brandname.
  • The brandnames model name or at least the main letter-number part of it.
  • The origin and condition of items will usually be somewhere within an SKU
  • There might be some category or classification information – PR for printer for instance.

The SKU can be kept stable if the GTIN changes to no apparent purpose. It need not change just because they decide to do regionalisation in Germany rather than China. The SKU should probably only change if there is some customer- significant alteration in what the product delivers and even then the change might be a suffix. In spares, we see changed GTINs (and sometimes actual manufacturers part numbers) all too frequently.

Some computer systems, particularly older ones, limit product codes to 15 characters. That is often enough because anything much longer verges towards being a description not a code.

Supermarkets can make a rule: no GTIN, no product listing.

A rule like that can’t apply to art and craft, or to spares. Even if we limited ourselves entirely to new products from brands they don’t all have GTINs – yet.

We can be sceptical about the quality and price of things not sold by brands. Generally brand quality control does achieve a better product than compatible or “refurbished” even though most of the parts may be made by subcontractors and brands may well recycle parts from things like fusers.

However a spares system needs to be flexible. It needs to be able to deal with “pulls” and refurbished materials and that kind of thing isn’t going to have a true GTIN.

Of course it is possible to re-use one of the manufacturers GTINs, perhaps with a suffix. So far as we know there is no law against doing that – although since it is likely to cause confusion there possibly ought to be. It is certainly against the spirit of things because there is too much danger that “used” is mistaken for “new”. Pirate GTINs are a bad idea.

So if there isn’t a GTIN then an SKU will have to take its place. GTIN’s are recognisable by being purely numeric but it isn’t entirely impossible for an SKU to be so as well so it is probably sensible to have a flag saying which is being used.

The GTIN and / or SKU identify an item. However GS1 don’t make it easy to get a listing of what code has been assigned where and although there are a few people trying to build comprehensive lists it is for brands and manufacturers to tell their customers what is assigned where. Brands, distributors, retailers and search engines all need to pass on the GTIN so people know when they are comparing like with like.

That does leave a nasty problem – GTIN’s are too long for humans to easily remember them. A hint here is to use the last four to six digits – although the same five digit end will occur hundreds of times in the global system they are very unlikely to recur in a small group of products – and if they ever do the difference will probably stand out.

To sum up:


Products intended for consumer sale have bar codes which contain a GTIN. Although it might be best to start calling them GTIN’s, alternative names are UPC, EAN, JAN or ISBN code.

GTINs should give accurate repeatable results every time they are used. If you buy the same GTIN and get different goods, something went wrong.

If you are a brand or a manufacturer you have to buy a block of GTINs to use. GS1 is a big bureaucracy and has inflexible ways. If you sell a dozen products the cost of the GTIN need not be onerous. Customers like supermarkets need to know what GTIN-13 to use at the checkout.

If you will ship in cases then that needs a GTIN-14. Customers like supermarkets need to know what GTIN to buy and accept at their delivery bay.

GTINs are fixed. You can’t put a prefix or suffix on a GTIN.

You can put supplementary codes such as an SKU on a box but there is no guarantee anyone will read them. Big logistic systems expect to work with the GTIN


A Stock Keeping Unit or “SKU” is informal and need not have any significance outside an organisation – although typically a whole industry will be using rather similar things. It would be better if they devised a set of standards and all used the same thing – but without either a dominant supplier, dominant customer or a trade group to make them, they won’t.

SKU’s are typically alphanumeric and quite highly structured – there can be a lot of embedded meaning.   A typical approach to building an SKU is to have a three character prefix giving the manufacturers initials or mnemonic, an allowance of up to 10 digits for the model and a couple of trailing numbers to indicated special packaging or the condition of the item – A, B or C class returns. The SKU should reflect any important changes and this is often done by giving it a suffix.

SKU’s are not necessarily reliable. That is one reason big organisations like supermarkets don’t like them.