MSI barcode generator
MSI, also called Modified Plessey, is a numeric-only symbology that survives in one place above all others: the shelf edge of a warehouse or a retail back room. It encodes digits and nothing else, it has no built-in check character, and it is not dense — a ten-digit MSI is noticeably wider than the same digits in Code 128. None of that has retired it, because inventory labelling has modest requirements and a great deal of installed equipment. If you are printing shelf labels into a system that already reads MSI, this is the symbol. If you are choosing freely, almost anything else is technically better.
Appearance
334 × 237 px in the PNG
Specification
- Character set
- digits
- Length
- from 1 to 40 characters
- Check digit
- not used by this symbology
Generate MSI barcodes in bulk
Got a whole list of values rather than one? Generate MSI barcodes in bulk
Where it is used
- Shelf-edge and rack location labels in warehouses and retail back rooms, where the number identifies a place rather than a product
- Inventory and asset tags in systems built around MSI-capable readers that have not been replaced
- Internal container and bin numbering, where the code never leaves the building and no external standard applies
- Legacy stock control installations whose numbering schemes and label stock were designed around it
How it compares
Against Code 128 there is no technical contest: Code 128 is roughly twice as dense for the same digits, carries letters as well, and includes a mandatory check character. Against Code 39 the comparison is closer — both are old, both are wider than they need to be — but Code 39 at least encodes uppercase letters, while MSI is confined to digits. What MSI does offer is a choice of check digit schemes, and that flexibility is precisely why it is still specified: an existing system may require modulo 10, modulo 11, or two check digits in a specific combination, and reproducing that exactly is easier in a symbology built for it. Choose MSI when a specification names it. Do not choose it on merit.
Common mistakes
- Adding a check digit the system does not expect, or omitting one it does. MSI has no default: modulo 10, modulo 11, modulo 1010 and modulo 1110 are all in use, and the reader will hand back whatever is encoded. An extra digit turns into part of the number, and a missing one causes rejection. This is settled by the receiving specification, not by preference.
- Assuming the check digit is verified for you. Most readers return the full string including the check character and leave verification to the application. A label with a wrong check digit therefore scans successfully and produces a wrong number, which is a quieter failure than a scan that does not work at all.
- Choosing MSI for anything that leaves the building. It carries no structure, no issuer, no uniqueness guarantee — nothing that makes a number meaningful outside the system that assigned it. For anything shipped, GS1 symbologies exist precisely to solve that, and an MSI number arriving at a partner's dock means nothing to them.
- Underestimating the width. MSI spends a lot of space per digit. A fifteen-digit location code becomes a long symbol, and on a narrow shelf label the usual response is to shrink the module until it stops reading reliably. If the number is long and the label is small, the symbology is the wrong choice, not the print size.
- Encoding anything but digits. There is no letter, no space and no punctuation in MSI. A location scheme that mixes an aisle letter with a bay number cannot be encoded as written; either the letter is mapped to digits by the system, or the symbology has to change.
Frequently asked questions
- Which check digit should I use?
- The one the reading system expects, and there is no way to deduce it from the symbol. Modulo 10 is the most common, modulo 11 appears in older installations, and the doubled variants exist for systems that wanted more protection. Check the specification for the equipment that will read the label; a guess produces labels that scan and are then refused.
- Is MSI the same as Plessey?
- It is derived from it. Plessey came first; MSI Data Corporation modified it, and the modified version is what almost everyone means today when they say Plessey. The original is essentially extinct outside a few very old installations, so a specification naming Plessey usually means MSI.
- Can MSI encode letters?
- No. It is strictly numeric — digits nought to nine and nothing else. If your numbering scheme includes letters, either the system maps them to digits before printing, or you need a different symbology; Code 39 and Code 128 both handle letters natively.
- Should I use MSI for new labelling?
- Only if something already requires it. Code 128 encodes the same digits in roughly half the width, includes a mandatory check character, and is read by every modern scanner. MSI's continued use is a matter of installed equipment and existing numbering, not of technical merit.
- Why is my MSI symbol so wide?
- Because the symbology uses four elements per digit with no compression of any kind. That is simply how it encodes, and it is the main practical reason MSI is confined to short numbers on labels where width is available. A long number in a narrow space needs a denser symbology, not a smaller module.