Standards/msi-plessey
MSI Plessey
Overview
MSI, also known as Modified Plessey, is a numeric-only, continuous, variable-length 1D linear barcode symbology derived from the original Plessey Code 1. It encodes only the digits 0–9 and supports no letters or symbols 1. The symbology is not self-checking, so one or two optional check digits are normally appended for integrity 1. Its primary application is inventory control — particularly the marking of storage containers and warehouse shelves 12.
History
MSI was developed by MSI Data Corporation, basing the design on the earlier Plessey Code symbology 15. Because of this lineage it is commonly called "Modified Plessey" 2. (Plessey Code itself originated with the British Plessey Company.)
Technical specification
- Character set: digits 0–9 only; no alphabetic or symbol support 1.
- Encoding: each digit is converted to its 4-bit binary-coded decimal (BCD) representation 1. A leading
1bit is prepended and two trailing0bits appended to form the full bit stream 1. - Module structure: each bit is printed as a bar/space pair three modules wide. A
0bit is a 1/3-width bar followed by a 2/3-width space; a1bit is a 2/3-width bar followed by a 1/3-width space 15. - Start / stop: start character is the bit
1(pattern110); stop character is00(pattern1001) 5. - Self-checking: MSI is a continuous symbology that is not self-checking 1.
- Check-digit options: MSI supports no check digit, or 1–2 check digits in several schemes 15:
- Mod 10 — uses the Luhn algorithm; the most common option 15.
- Mod 11 — two weighting variants: the IBM pattern uses repeating weights (2,3,4,5,6,7) and the NCR pattern uses (2,3,4,5,6,7,8,9) 15.
- Mod 1010 — two sequential Mod 10 (Luhn) check digits 15.
- Mod 1110 — a Mod 11 check digit followed by a Mod 10 check digit, giving maximum error detection 14.
Use cases
MSI's dominant deployment is inventory and warehouse management: it is used to mark storage bins, containers, and especially shelf edges in warehouse and retail stockroom environments 12. Its numeric-only nature suits internal stock-location numbering where alphanumeric data is unnecessary.
Implementations
- zint — C, ~771 stars, active in 2026. A barcode-encoding library supporting 50+ symbologies; lists "Plessey (MSI & UK)" / MSI Plessey among them 6.
- bwip-js — JavaScript, ~2.4k stars, active in 2026. A pure-JavaScript port of Barcode Writer in Pure PostScript (BWIPP) covering 100+ types; exposes MSI as
msi("MSI Modified Plessey") 6.
(The widely used python-barcode library does not support MSI 3.)
Comparison
- MSI vs. Plessey: MSI is a direct derivative ("Modified Plessey") of the British Plessey Code, sharing the BCD-oriented heritage but redefining the bar/space module structure and check-digit handling 12.
- MSI vs. self-checking codes: Unlike self-checking symbologies (e.g. Code 39), MSI carries no built-in per-character integrity, which is why a Mod 10 or Mod 11 check digit (or both, as Mod 1110) is conventionally added 1.
- Among compact numeric codes MSI is bulkier than Interleaved 2 of 5 because each digit consumes a fixed BCD-derived width, so where density matters ITF is usually preferred; MSI persists mainly by inertia in shelf-labelling systems 12.
Status
MSI is a legacy, niche symbology. It is no longer chosen for new general-purpose deployments but remains supported by commercial scanner SDKs and barcode-generation libraries (Cognex, Seagull/BarTender, zint, bwip-js), and still appears in established warehouse shelf-labelling systems 1256.
Sources
1 MSI Barcode — Wikipedia — Wikipedia, accessed 2026. 2 MSI Plessey barcodes — Cognex, accessed 2026. 3 Supported Formats — python-barcode documentation, accessed 2026. 4 MSI Plessey (Mod 1110) Generator — BarcodeGenerator.tech, accessed 2026. 5 MSI Barcode — HandWiki, accessed 2026. 6 zint — A barcode encoding library — GitHub (zint/zint), accessed 2026.
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal