Barcodes – Part 2

Code 3 of 9 or Code 39

This is a very common generic barcode. It supports uppercase alpha and numeric and some special characters (space, $, %, /, +, -). This a reliable variable length barcode. Field must have an asterisk (*) as a start and end character. This barcode can be quite long considering then length of the field, so if you have a large amount of data and limited space to print barcode, you may want to look at other symbologies. This barcode is used as AIAG or LOGMARS.

Use this symbology often as there are many free 3of9 fonts available. These can be used with just about any software (Excel, Word, Crystal, etc.) simply by adding leading and trailing asterisks and changing the font.

There are options to have Full ASCII 3of9 barcode which supports above plus using 2 characters can support 128 ASCII characters.

Code 128

Code 128 is a very powerful bar code, combining an extensive character set and variable length with compactness and error checking. The character set contains all 128 ASCII characters. Error checking is at both character (parity) and also last character is a checksum. This error checking parity and checksum can be difficult to calculate manually. It is probably best to use software that will calculate them for you.

The Code 128 barcode code sets include: Code 128 code set A, Code 128 code set B, and Code 128 code set C. These different Code 218 code sets represent different character sets. The code sets within a Code 128 bar code is determined by the start bars. There are three different Code 128 start bars: code set A, code set B, and code set C. The start bars for each of the code sets is unique. This allows barcode scanners to auto discriminate between them.

Codeset A barcodes are used for alphanumeric data with uppercase letters only. Code set A includes lots of non-typeable control codes in it.

Codeset B barcodes are used for alphanumeric data including both uppercase letters/capital letters and lowercase letters, as well as the numbers 0-9, and punctuation marks. Code set B is very close to the full lower 128 ASCII character set.

Codeset C barcodes are numeric-only. Code set C symbols can contain only contain numbers, never letters. The advantage is that code set C symbols are narrower than code set A and code set B barcodes.

GSI-128 (formerly UCC/EAN128)

GS1-128 is an application standard and subset of the Code 128. This includes Serial Shipping Container Code (SSCC) which start with 00 and Global Trade Item Number (GTIN) which start with 01.

GS1-128 allows for storing Application Identifiers (AI) that allow for describing the item in more detail. AI can include: item number, lot number, weight, serial number, production date, expiry date, best before date, length/width/depth, etc. This can be very helpful as a single scan can provide a lot of information about the product.


Is a bar code symbology used mostly for items in retail environments. UPC is a numeric only barcode that includes check digit. It is a fixed length barcode. UPC-A is 12 digits. First digit of 0,1,6,7,8,9 are for most items. Next 5 digits would be vendor code. Next 5 would be product and last would be check digit. First digit of 2 re used for items that are sold by weight. Next 5 would be product. Next 1 would indicate weight (0) or price.  First digit of 3 would indicate National Drug Code (NDG).

This code could also be EAN-13 with extra digit to allow for more combinations by allowing more vendor codes.

Interleaved 2 of 5

Is a numeric only even number of digits barcode. This symbology is known to be susceptible to partial reads. You may want to have a fixed length barcode and validate the length and/or add a check digit to you value.


Codabar is widely used in libraries, blood banks, the cotton industry and transportation industries. Its character set consists of numbers 0 through 9, and punctuation characters + . – / : and $. Symbols a, b, c, d, t, n, * and e are used as start and stop characters.
Codabar is a numeric-only code, but different combinations of start and stop characters can be used to identify different types of labels. Codabar’s variable data length and extremely low error rate make for a versatile barcode.


PDF417 is a stacked linear barcode symbol format used in a variety of applications, primarily transport, identification cards, and inventory management. PDF stands for Portable Data File.

PDF417 is one of the formats that can be used to print postage accepted by the USPS. PDF417 is also selected by the airline industry’s Bar Coded Boarding Pass standard as the 2D bar code symbolism for paper boarding passes. It is also used by FedEx on package labels.

PDF417 is a stacked barcode that can be read with a simple linear scan being swept over the symbol. Other 2D codes, such as DataMatrix and QR are decoded with image sensors instead of uncoordinated linear scans. In practice, a PDF417 symbol takes about four times the area of a DataMatrix or QR Code


A Data Matrix code is a 2D barcode consisting of black and white “cells” or modules arranged in either a square or rectangular pattern. Error correction codes are often used to increase reliability: even if one or more cells are damaged so it is unreadable, the message can still be read. A Data Matrix symbol can store up to 2,335 alphanumeric characters. Note it does not support Kanji. Datamatrix can also be used for GS1-128 that will have smaller footprint.

Quick Response (QR) Code

QR codes may be used to display text to the user, to add a vCard contact to the user’s device, to open a Uniform Resource Identifier (URI), or to compose an email or text message. Users can generate and print their own QR codes for others to scan and use by visiting one of several paid and free QR code generating sites or apps. The technology has since become one of the most used types of two-dimensional barcode.

The amount of data that can be stored in the QR code symbol depends on the datatype (mode, or input character set), version (1, …, 40, indicating the overall dimensions of the symbol), and error correction level. The maximum storage capacities are numeric 7089, alphanumeric 4096 and binary 2953.



Barcodes – Part 1

This the first part of several blog entries discussing barcodes. I am hoping to give you some idea:

  • What barcodes are
  • Why use barcodes
  • 1 Dimension (1D or linear) vs 2 Dimension (2D or matrix)
  • Various barcode symbologies


Barcodes are machine readable representation of data. These are generally printed or displayed. Barcodes come in different shapes, sizes and rules for coding/decoding. these are called symbologies. There is no one barcode symbology that is better than all others. there are pros and cons to each. I will discuss those in more detail later.

One of the major advantages of using barcodes is accuracy. While different symbologies may take different approaches to ensure the accuracy of the scan. This may include check digits, rules for decoding, etc. Generally barcode scanners will simply not read any invalid barcodes. This means that there should be some procedure that the company producing the barcode validate readability of barcodes. Once a barcode is successfully scanned then you can be confident that the right values have been read.

Another reason to use barcodes is speed. Scanning a barcode is almost always faster than entering values on keypad. One factor in the speed is the amount of data being read. more data generally takes longer. Different scanning methods will have varying speed on reading barcodes. 1D scanners using laser scanner will generally be faster than 1D using CCD reader. 2D scanning generally takes longer because complete image must be scanned for a read and image processing generally takes longer than linear read. Even slower may be using camera image and software to find and decode the barcode. Simpler usually scan quicker.

Barcodes are very cost effective. Simply by printing on packaging, labels or computer reports you can get benefit of barcodes. Barcodes can be used for inventory items, employee badges, bin locations, fixed assets, machine centers, documents, remittance advises, etc.

1D Barcodes are basically a series of bars that are read by a linear scan by laser or CCD reader. These bar codes generally contain small amounts of data (maybe up to 40 characters) Example:Sample Barcode

2D Barcodes use dots, squares and other geometric patterns in an arrangement that can contain much data. Example:Sample Barcode

In the next blog I will describe in more detail some of the most common barcode symobologies. Keep reading….




Bin Tracking

There can be substantial benefit to warehouse/shop floor operations that track bin location of inventory. The ability for the system to know where to find particular items, lots or serial numbers may reduce the time it takes to find the required goods. It also can support directed picking, so users can be guided as to where to go next. Bins can also help facilitate Physical Count/Stock Take

Sounds like a great idea. But the costs of bin tracking may exceed the benefits.  The small costs are the software costs associated with having ERP/WMS system that is capable of handling bins. The larger costs are going to be related to the effort to record bin numbers when processing all inventory movements.

  • Doing this manually could be very onerous.
  • Doing this with a portable terminal is better.
  • Doing this with scanning a barcode of the bin number is better.
  • Doing this with radio frequency scanning and real time updates is even better

Doing anything but last option also may have timing delays. if goods are moved but the update to the system does not get updated until “later” then for that period of time the system will be telling users wrong information. Goods are not located where system says they are and you may lose any productivity gains you were expecting by having bin tracking.

Timing and bin tracking go hand in hand. For example, shipping a sales order without bin tracking can update inventory later, maybe even hours after being picked. If you consider available inventory as on hand less open order, you will not really impact operations very much. If you are using bin tracking and you do not update picking until later, you will be telling staff to go to wrong location, have bad cycle bin counts, etc.

Bin tracking demands that almost every inventory movement be recorded in timely fashion. Every user that handles inventory probably needs to record in real time.

Many times I have advised companies to not use bins unless they are sure they need them. Implementing bin tracking can be more expensive than you think.

Physical Count (Stock Take)

ERP on hand inventory (book) can vary from actual inventory for many reasons: damaged inventory no longer usable, physical disappearance, paper disappearance, located in different warehouse/bin, etc. Regardless of the reason for the variance, these differences can have negative impact on the business. Examples include planning based on invalid data, lost sales and bad inventory turns.

Inventory counts can take place in two basic ways, full or cycle count. Full counts involve counting all items in the warehouse. Generally this can be disruptive as it is generally done when operations have ceased. Ceasing operations reduces count errors due to items being moved or used. It has the disadvantage of the soft and hard costs of shutting down. Some businesses find it necessary to do annual stock take to satisfy audit requirements.

Cycle counts is an alternative to doing a full count. The concepts is that if you count and correct smaller sets of inventory, you can increase your inventory accuracy with minimal disruption to operations. Doing cycle counts also gets book inventory corrected on a more timely basis. Cycle counts can be as simple as counting some aisles and bins on a regular basis and recording corrections. This can be effective for some businesses, but still may have an impact on operations unless counts happen after regular hours. But this approach may spend much time counting inventory that is not as important to the business as other items. It would be better to count items that are more important to the business more often. There are several techniques for determining “important” items. What is important to your business may be different that another company’s idea of importance. Things to look at may be: item inventory turns, gross margin, GMROI, value, exposure to on hand variance, etc. In most cases you will want to classify items as ABC where items that need to be counted more often being A, etc. You can then count a mix of A, B and C items on a regular schedule. It may also be a good idea to track when last counted, so you don’t count recently counted items more often that other items of same classification.

In any case you will want an easy way to record counts, investigate variances (if appropriate), recount and eventually post the variances. Your ERP system is only as helpful as the data accuracy.


Serial/Lot Numbers

Tracking serial and/or lot numbers in your ERP solution is not an option for many organizations. It is required. Either legal or customer service may dictate that you provide lot/serial tracing as part of your information system solution.

Does you ERP solution allow for tracking lot/serial numbers? If not then that may be the first thing that needs to be addressed. My experience indicates that trying to use different systems for ERP and for lot/serial numbers will be fraught with reasons for failure. See blog post Single Data Source ( Now that you have ERP solution that allows for recording serial/lot numbers how are you going to get accurate and timely data into the system?

I have seen companies that try and use manual approach to recording serial/lot numbers. Produce a picking slip, send it to the warehouse, pick the goods marking down not only the quantities shipped/used but also mark down serial/lot numbers. So far so good. Now send the paper back to the office to enter into ERP/MRP system. What happens if staff cannot read what was written? What happens when system says serial/lot number does not exist? Do you have to back and re-inspect shipment? Will you go and re get correct values? Can you even re-inspect? Probably not. Office staff may just pick any serial/lot number that shows up in ERP system so they can move on to next transaction. Now you have inaccurate data that may result in faulty recalls or analysis.

The best way to address this issue is to capture the serial/lot number at the point of transaction (PO Receipt, Shipping, Transfers, etc.). Not only should you capture the data, you should have the system validate in real time. If there is an issue with the serial/lot number you should resolve before moving on to next item. Using devices that allow for scanning the serial/lot # as a barcode is significantly faster and more accurate than trying to enter values. Integrating this data capture and validation directly with your ERP and MRP will result in meaningful and accurate data.





Timeliness of Information

Why is timeliness of your data is important

Let assume that you have the necessary skills and tools so that your data is accurate. That certainly is definitely a high priority. That is great.

But what if it is only accurate at end of the day, or when warehouse staff bring scanner or paper to computer so that values can be updated? You are still open to costly errors.

If you updating shipments minutes or hours after goods are shipped, are you open to credit limit issues or misinforming customer. Are your ancillary systems (EDI, web store, etc) reflecting timely data.

If you are updating inventory receipts later in the day is your order desk telling customers that you do not have stock when you actually do have inventory. This could be lost sales. Are you not expediting PO’s so that you will not have out of stock situations.

Are you updating put away, picking and bin transfers when they happen? If not then you may have system and staff looking for goods that are no longer where they should be. Maybe you even missed a transfer and you have an outage situation in one bin and extra stock in another location.

Are you planning inventory based on yesterday’s values? For many companies who are trying to keep minimal inventory levels but high fill rates not having timely data may result in costly outages.

Accurate inventory is important to companies, but accurate data that is not timely is not as beneficial as it could be. Should you be using Radio Frequency scanners to update your data in real time?


Single Data Source

Why you want to have a single data source for inventory and ancillary data.

Basically you have two choices when it comes to inventory data. You can have all your inventory, purchase order, sales order, etc. data in one place (likely your ERP solution) or you can have data stored in multiple places. Those other places could be pieces of paper, spreadsheets or other databases.

Having data in a single data source can offer many benefits:

  • A single source of data greatly reduces issues that may arise due to different values. it is possible that one system may have 14 on hand while others may have different values. How many decisions will be based on “wrong” inventory values? How accurate will these decisions be? How much time will you spend trying to reconcile these disparate systems? By keeping all you inventory and ERP in ONE system, you eliminate the risks of discrepancies – leading to improved business decisions.
  • With a single source of data you have the ability to take a modular approach to operations. For example, you could use RF Barcode solution to ship sales orders while using your existing ERP functions to receive Purchase Orders. You could even ship some orders using scanners while others get shipped using ERP functions. You can grow your use of functions if and when you need them. Maybe all you need is accurate shipping. Why pay for what you don’t need.
  • A single source of data allows you to use the existing ERP functionality and reporting that you are already familiar with. Why would you want to learn two, or more, user interfaces?
  • With a single source of data, you don’t have to worry about timing of data updates. maybe your spreadsheet or WMS does not reflect latest orders, inventory on hand, etc. Everybody in the organization is using same data to make business decisions.

Having redundant data can work, it just may not be worth all the effort. Especially if it is not necessary. Improve your operations while you leveraging your existing investment and simplifying your operations.

Comments or suggestions for other topics – contact