# RM4SCC

> Source: https://docs.barcoder.ai/docs/standards/rm4scc
> research date 2026-06-03 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [RM4SCC — Wikipedia](https://en.wikipedia.org/wiki/RM4SCC)
- [RM4SCC Barcode Specifications — BarcodeFAQ.com](https://www.barcodefaq.com/barcode-properties/symbologies/rm4scc/)

## Overview

**RM4SCC** (Royal Mail 4-State Customer Code), known internally by Royal Mail as **CBC** (Customer Bar Code), is a height-modulated, four-state barcode symbology developed by the United Kingdom's Royal Mail for automated mail sorting <sup>[1][1], [3][3]</sup>. Unlike conventional width-modulated 1D barcodes (UPC, EAN, Code 128), RM4SCC encodes information through the **vertical position and length of each bar** — its "state" — rather than bar width <sup>[3][3]</sup>. The symbology encodes the destination **postcode plus a two-character Delivery Point Suffix (DPS)**, allowing automated sorting equipment to route a letter to an individual delivery point <sup>[1][1]</sup>.

RM4SCC is the **ancestor of an entire family of national postal four-state codes**, including the Dutch [KIX](https://docs.barcoder.ai/docs/standards/kix), the [Australia Post 4-State](https://docs.barcoder.ai/docs/standards/australia-post-4-state), and Royal Mail's own successor [Mailmark](https://docs.barcoder.ai/docs/standards/mailmark); Singapore Post uses RM4SCC without modification <sup>[1][1]</sup>.

## History

RM4SCC was developed by Royal Mail in the early 1990s as part of a mail-automation modernisation programme and entered operational use across UK sorting centres around 1993–1995 <sup>[5][5]</sup>. It was deployed on services such as Royal Mail's **Cleanmail**, which lets businesses send large quantities of letters cheaply, and was associated with the **Mailsort** automation suite <sup>[1][1]</sup>. From January 2018 Royal Mail began replacing the Customer Barcode (CBC/RM4SCC) with the newer [Mailmark](https://docs.barcoder.ai/docs/standards/mailmark) barcode programme <sup>[7][7]</sup>.

## Technical specification

**Four-state bar structure.** Each RM4SCC character is built from **four bars**, where every bar occupies one of four states <sup>[1][1], [4][4]</sup>:

- **Tracker** (also "track"/short bar) — occupies only the middle third of the symbol height.
- **Ascender** — tracker plus an upward extension (top two-thirds).
- **Descender** — tracker plus a downward extension (bottom two-thirds).
- **Full** (ascender + descender) — spans the full symbol height.

Within each four-bar character, two bars carry ascenders and two carry descenders, giving 36 valid combinations used to represent the **10 digits (0–9) and 26 letters (A–Z)** <sup>[1][1]</sup>.

**Symbol layout.** A complete RM4SCC symbol consists of <sup>[1][1], [4][4]</sup>:

1. a **start bar** (a single ascender bar),
2. the encoded **postcode**,
3. the two-character **Delivery Point Suffix (DPS)** ranging from `1A` to `9T`,
4. a **checksum character**,
5. a **stop bar** (a single full-height bar),

all enclosed by a quiet zone.

**Checksum.** The check character is computed by treating each data character's four bars as having weights **4, 2, 1, 0** from left to right. The top halves (ascenders) and bottom halves (descenders) are summed **separately, each modulo 6**, and the two resulting values select the check symbol <sup>[1][1], [4][4]</sup>.

## Use cases

- Automated sorting of business bulk mail under Royal Mail's Cleanmail and Mailsort programmes <sup>[1][1]</sup>.
- Encoding UK postcode + delivery-point suffix so mail can be machine-sorted to a single letterbox <sup>[1][1]</sup>.
- Adoption beyond the UK: Singapore Post uses unaltered RM4SCC, and several national posts based their own four-state codes on it <sup>[1][1]</sup>.

## Implementations

- **OkapiBarcode** — Java, ~394 stars, active in 2025; open-source generator supporting Royal Mail 4-State (RM4SCC) among 50+ symbologies <sup>[6][6]</sup>.
- **cfax/rm4sccdec** — Python (OpenCV/NumPy), ~71 stars, last commits 2015; an image **decoder** for RM4SCC, described by its author as not production-ready <sup>[8][8]</sup>.
- **antonscheffer/as_barcode** — PL/SQL, ~27 stars; package that generates RM4SCC, Australia Post 4-State and KIX postal codes <sup>[6][6]</sup>.
- **productdevbook/etiket** — TypeScript, ~409 stars, active 2026; zero-dependency generator with a four-state engine covering RM4SCC, KIX, Australia Post and Japan Post <sup>[6][6]</sup>.

## Comparison

RM4SCC is the **root of the four-state postal family**. The Dutch [KIX](https://docs.barcoder.ai/docs/standards/kix) code is essentially RM4SCC stripped of its start bar, stop bar and checksum, with house number and suffix separated by an `X` <sup>[1][1]</sup>. The [Australia Post 4-State](https://docs.barcoder.ai/docs/standards/australia-post-4-state) code adapts the same height-modulated four-state principle but adds a Format Control Code, an 8-digit Delivery Point Identifier and Reed–Solomon error correction [[2-aus]]. Royal Mail's own [Mailmark](https://docs.barcoder.ai/docs/standards/mailmark) 4-state barcode extends RM4SCC with Reed–Solomon error correction and richer supply-chain data, and is its designated successor <sup>[7][7]</sup>. The US **Intelligent Mail barcode** and Canada Post's **PostBar** are also cited as RM4SCC derivatives <sup>[1][1]</sup>.

## Fun facts

- The "4-State" in the name refers to the four bar positions/lengths used to encode data, in contrast to the variable bar *widths* of ordinary linear barcodes <sup>[3][3]</sup>.
- RM4SCC carries the internal Royal Mail nickname **CBC** ("Customer Bar Code") — the same "CBC" later cited as the system Mailmark replaced <sup>[1][1], [7][7]</sup>.

## Status

**Legacy / being phased out.** RM4SCC remains technically valid and is still widely understood, but Royal Mail began superseding the Customer Barcode with the [Mailmark](https://docs.barcoder.ai/docs/standards/mailmark) programme from January 2018, making Mailmark the preferred barcode for UK bulk mail <sup>[7][7]</sup>.

## Sources

[1] [RM4SCC — Wikipedia](https://en.wikipedia.org/wiki/RM4SCC) — Wikipedia
[2] [RM4SCC Barcode Specifications — BarcodeFAQ.com](https://www.barcodefaq.com/barcode-properties/symbologies/rm4scc/) — IDAutomation/BarcodeFAQ
[3] [Royal Mail (RM4SCC) Barcodes — Barcode Xpress](https://www.accusoft.com/barcodes/royal-mail-barcodes/) — Accusoft
[4] [Royal Mail Barcode (RMS4CC) — Knowledge Base](https://www.morovia.com/kb/Royal-Mail-Barcode-RMS4CC-10630.html) — Morovia
[5] [The history of RM4SCC barcode](https://free-barcode.com/barcode/barcode-history/history-rm4scc-barcode.asp) — Free-Barcode.com
[6] [OkapiBarcode](https://github.com/woo-j/OkapiBarcode) — GitHub (woo-j)
[7] [Royal Mail Mailmark Barcode FAQ](https://www.barcodefaq.com/usps-postal/royal-mail-mailmark/) — IDAutomation/BarcodeFAQ
[8] [rm4sccdec](https://github.com/cfax/rm4sccdec) — GitHub (cfax)

[2-aus]: https://barcodeguide.seagullscientific.com/Content/Symbologies/Australia_Post_4-State_Barcode.htm

[1]: https://en.wikipedia.org/wiki/RM4SCC
[2]: https://www.barcodefaq.com/barcode-properties/symbologies/rm4scc/
[3]: https://www.accusoft.com/barcodes/royal-mail-barcodes/
[4]: https://www.morovia.com/kb/Royal-Mail-Barcode-RMS4CC-10630.html
[5]: https://free-barcode.com/barcode/barcode-history/history-rm4scc-barcode.asp
[6]: https://github.com/woo-j/OkapiBarcode
[7]: https://www.barcodefaq.com/usps-postal/royal-mail-mailmark/
[8]: https://github.com/cfax/rm4sccdec

## Deployments

_No country reports mention this standard by name._
