RM4SCC (Royal Mail 4-State Customer Code) is the name of the barcode symbology used by the Royal Mail for its Cleanmail service. It enables UK postcodes as well as Delivery Point Suffixes (DPSs) to be easily read by a machine at high speed.
This barcode is known as CBC (Customer Bar Code) within Royal Mail.
PostNL uses a slightly modified version called KIX which stands for Klant index (Customer index); it differs from CBC in that it doesn't use the start and end symbols or the checksum, separates the house number and suffixes with an X, and is placed below the address.Singapore Post uses RM4SCC without alteration.
There are strict guidelines governing usage of these barcodes, which allow for maximum readability by machines.
They can be used with Royal Mail's Cleanmail system, as an alternative to OCR readable fonts, to allow businesses to easily and cheaply send large quantities of letters.
Each character is made up of 4 bars, 2 of which extend upward, and 2 of which extend downward. The combination of the top and bottom halves gives 36 possible symbols: 10 digits and 26 letters.
As the example right shows, the barcode consists of a start character, the postcode, the Delivery Point Suffix (DPS), a checksum character, and a stop character. The DPS is a two-character code ranging from 1A to 9T, with codes 9U to 9Z being accepted as default codes when no DPS has been allocated. The DPS can be found in Royal Mail's Postcode Address File.
For the purpose of calculating the checksum, the top and bottom halves of each character can be assigned the values shown in the table below. Each such value is derived by assigning weights of 4,2,1 and 0 to the extensions according to their position in the character, summing the weights, and taking modulo 6 of the sum. For example the symbol for 'B' has bottom half extensions of its first two bars, represented below as 1100, the sum of their weights being 4+2+0+0 = 6, modulo 6 of which is 0.
The check symbol is computed by summing the top and bottom half values separately, modulo 6, and combining the final sums to find the symbol. In the example above, the top half values are 2,0,1,1,4,5,1,2. This sums to 16 = 6×2 + 4. Thus the check symbol has a top value of 4. The bottom half values are 0,4,2,2,4,0,2,5, which sum to 19 = 6×3 + 1. The check symbol's bottom half value is 1, so it corresponds to the letter I.