Standards/mailmark
Mailmark
Overview
Mailmark is Royal Mail's barcode and machine-readable-mail programme, introduced to replace the older Customer Barcode (rm4scc / CBC) and to add end-to-end tracking, delivery reporting and analytics to UK bulk mail [3]. Mailmark is published in two distinct barcode forms [1-jss, 3]:
- a 4-state barcode (an evolution of rm4scc adding Reed–Solomon error correction), and
- a 2D Data Matrix form called CMDM (Complex Mail Data Mark), built on Data Matrix ECC 200 [2].
Both forms carry far more than a destination postcode: they encode supply-chain and item identifiers that let Royal Mail report when mail enters the network and predict delivery [3].
History
Royal Mail published the Mailmark barcode definition documents in September 2015 [6, 7]. From January 2018 Mailmark began replacing the Customer Barcode (CBC / rm4scc) as the preferred barcode for Royal Mail's Retail and Network/Wholesale Access mail products [3].
Technical specification
4-state form
The Mailmark 4-state barcode retains the rm4scc four-state bar alphabet — tracker, ascender, descender and full-height bars — representing the 37 symbols 0–9, A–Z and space [5]. Two variants exist [3, 5]:
- Barcode L (Long) — ~78 bars (~89 mm), encoding up to 26 characters; intended for machine-readable Low-Sort and Unsorted Retail and Access 70 services [3, 5].
- Barcode C (Consolidator) — 66 bars (~76.2 mm), encoding up to 22 characters; intended for consolidated mail [3, 5].
Reed–Solomon error correction is applied over a Galois field of 32 values: Type L computes seven Reed–Solomon check numbers from 19 data numbers, while Type C computes six check numbers from 16 data numbers [5].
2D form (CMDM)
The Complex Mail Data Mark (CMDM) is a Data Matrix ECC 200 symbol (ISO/IEC 16022) using the C40 character set (0–9, A–Z, space) [2]. Three module sizes are used [2, 3]:
- Type 7 — 24×24 modules (letters; ~51 characters, ~6 for customer use).
- Type 9 — 32×32 modules (large letters; ~90 characters).
- Type 29 — 16×48 modules (large letters; ~70 characters).
Module size must be 0.5–0.7 mm [2]. As an ECC 200 symbol, CMDM uses the Reed–Solomon algorithm for error correction inherent to Data Matrix [2].
Encoded data
Both forms encode fields including a UPU/format & class identifier, supply-chain ID, item ID, destination postcode with Delivery Point Suffix, and return-to-sender postcode, plus optional customer content in the larger 2D types [3].
Use cases
- Machine-readable, trackable UK bulk mail under Royal Mail's Retail and Network/Wholesale Access portfolios [2, 3].
- Reporting and analytics: tracking mail/delivery status and predicting delivery dates for marketing and operational use [3].
- Access to Mailmark pricing/discounts, which require registration with Royal Mail [3].
Implementations
- OkapiBarcode — Java, ~394 stars, active 2025; general open-source generator. (RM4SCC is supported; Mailmark is not listed among its symbologies, so the 4-state alphabet can be produced but Mailmark's Reed–Solomon framing is not a documented feature) [1-okapi].
- Aspose.BarCode (commercial, Java / Python-via-Java) — documents generation and reading of Mailmark 4-state barcodes with Reed–Solomon error correction [1-aspose].
Comparison
Mailmark's 4-state form is a direct descendant of rm4scc: same four bar states and character alphabet, but with Reed–Solomon error correction and a richer data payload (supply-chain and item IDs, return-to-sender postcode) that RM4SCC lacks [3, 5]. Where the Dutch kix removes RM4SCC's start/stop/checksum, Mailmark instead adds structure on top of RM4SCC. The CMDM 2D form abandons the four-state bar approach entirely for Data Matrix ECC 200, paralleling how other posts (e.g. USPS) offer both linear and 2D options [2]. Within the broader four-state lineage, Mailmark sits alongside the australia-post-4-state and japan-post-4-state codes as a Reed–Solomon-protected national variant of the RM4SCC concept.
Fun facts
- Mailmark ships in two completely different machine-readable shapes — a striped four-state bar code and a square 2D Data Matrix — under one brand, letting mailers choose between the legacy four-state sorter ecosystem and a denser 2D code [1-jss, 2].
Status
Active and preferred. Mailmark is Royal Mail's current barcode standard and, since January 2018, the designated replacement for the older Customer Barcode (rm4scc / CBC) on Retail and Access mail [3].
Sources
1 Mailmark 4-State Barcodes — Documentation — Aspose 2 Royal Mail CMDM Mailmark — Barcode Guide — Seagull Scientific 3 Royal Mail Mailmark Barcode FAQ — IDAutomation/BarcodeFAQ 4 Royal Mail Mailmark — Just Solve the File Format Problem — ArchiveTeam 5 Mailmark 4-state barcode L encoding and decoding instructions (Sept 2015) — Royal Mail 6 Royal Mail Mailmark barcode definition document (Sept 2015) — Royal Mail 7 Mailmark 4-state barcode C encoding and decoding instructions — Royal Mail Wholesale
Deployments
No country reports mention this standard by name.