10 minute practical guide
ISO 6346 Container Check Digit: Formula & Example
Understand the ISO 6346 container-number format, letter values, modulo-11 check digit calculation and validation limits.
Free practical tool
Check up to 100 numbers at once
Paste a list of container numbers to see which pass, which fail, and the expected full number for every failure — then export the result as a CSV audit.
Validate container numbersISO 6346 check digit in brief
An ISO 6346 container number contains a three-letter owner code, one equipment-category letter, a six-digit serial number and one check digit. The check digit is calculated by mapping letters to ISO values, applying powers-of-two weights and reducing the sum modulo 11.
Container number format
A typical freight-container identifier has eleven characters. The first three letters identify the owner code, the fourth is the equipment-category identifier—commonly U for freight containers—the next six digits are the serial, and the last digit is the check digit. Printed spaces are not part of the number.
| Part | Characters | Example | Meaning |
|---|---|---|---|
| Owner code | 3 letters | CSQ | The registered owner or principal operator, allocated through the BIC |
| Equipment category | 1 letter | U | U = freight container, J = related equipment, Z = trailers and chassis |
| Serial number | 6 digits | 305438 | Assigned by the owner; carries no meaning about size, type or age |
| Check digit | 1 digit | 3 | Calculated from the other ten characters |
Letter values and position weights
Letters use numeric values beginning with A=10 while skipping multiples of 11. Starting at the leftmost character, each value is multiplied by 2 raised to its zero-based position: 1, 2, 4, 8 and so on. Digits retain their numeric value.
The skip is deliberate: it prevents two different letters producing the same remainder and cancelling each other out in the sum. The doubling weights make the checksum sensitive to both a wrong character and two characters swapped — the two mistakes humans and OCR engines actually make.
| Letters | Values |
|---|---|
| A B C D E F G H I | 10, 12, 13, 14, 15, 16, 17, 18, 19 |
| J K L M N O P Q R | 20, 21, 23, 24, 25, 26, 27, 28, 29 |
| S T U V W X Y Z | 30, 31, 32, 34, 35, 36, 37, 38 |
The gaps after K, U and before J are where the multiples of 11 have been skipped.
Check digit formula step by step
Convert the first ten characters to values, multiply each by its position weight, add the products, and divide the sum by 11. The remainder becomes the check digit; a remainder of 10 is represented as 0.
That last case is the single most common bug in home-made validators. Modulo 11 can return 10, which needs two characters, so the standard maps it to 0 — the one place where a valid check digit does not equal the raw remainder.
Worked validation example
CSQU3054383 is the example used in the standard itself. Converting and weighting gives products of 13, 60, 112, 256, 48, 0, 320, 512, 768 and 4096, totalling 6185. Dividing 6185 by 11 gives 562 with a remainder of 3, so the expected check digit is 3 — which matches the printed final digit.
| Position | Character | Value | Weight | Product |
|---|---|---|---|---|
| 1 | C | 13 | 1 | 13 |
| 2 | S | 30 | 2 | 60 |
| 3 | Q | 28 | 4 | 112 |
| 4 | U | 32 | 8 | 256 |
| 5 | 3 | 3 | 16 | 48 |
| 6 | 0 | 0 | 32 | 0 |
| 7 | 5 | 5 | 64 | 320 |
| 8 | 4 | 4 | 128 | 512 |
| 9 | 3 | 3 | 256 | 768 |
| 10 | 8 | 8 | 512 | 4096 |
| Sum | — | — | — | 6185 |
6185 ÷ 11 = 562 remainder 3 → check digit 3.
What a failed or valid check digit means
A failure usually indicates a transcription or OCR error, so compare the number with the container door and source document. A passing digit confirms arithmetic structure only; it does not prove ownership, availability, physical condition, location or shipment status.
Because the check digit is calculated from the number itself, anyone can invent a structurally valid container number in seconds. Container validation is a data-quality control, never a fraud control.
Put the guide into practice
Paste a list of container numbers to see which pass, which fail, and the expected full number for every failure — then export the result as a CSV audit.
Validate container numbersFrequently asked questions
Direct answers to the questions this topic raises most often in day-to-day operations.
What is the ISO 6346 check digit formula?
Check digit = (Σ character value × 2^position) mod 11, using zero-based positions 0 to 9 for the first ten characters, with letter values starting at A=10 and skipping every multiple of 11, and with a remainder of 10 written as 0.
Why does a remainder of 10 become 0?
The check character must fit in one digit. Modulo 11 can return 10, which needs two characters, so the standard maps that single case to 0. It is the one place where a valid check digit does not equal the raw remainder, and the most common bug in home-made validators.
Why do most container numbers have U as the fourth letter?
It is the equipment category identifier, and U is assigned to freight containers — the overwhelming majority of equipment on a Bill of Lading. J marks detachable freight-container-related equipment such as a clip-on generator, and Z marks trailers and chassis.
Can a container serial number contain letters?
No. Under ISO 6346 the six-character serial is numeric. A reference with letters after the category identifier is probably a booking number, an equipment interchange receipt number or an internal reference, and should not be validated with this formula.
Does a valid check digit prove the container exists?
No. The digit is derived from the number itself, so a structurally valid number can be fabricated instantly. It confirms that eleven characters are internally consistent — nothing about ownership, existence, condition, location or what is inside.
What should I do when a check digit fails?
Confirm you have all eleven characters, then compare the document against a photograph of the container door — scanned paperwork frequently turns 8 into B, 0 into O, 5 into S and 1 into I. If the door plate and document genuinely agree and the arithmetic still fails, report it to the carrier rather than editing the reference yourself.
Is the size and type code covered by the check digit?
No. The four-character size and type code beside the number is a separate ISO 6346 field and is not part of the checksum. Reading it is still worth doing: a B/L listing 45G1 equipment against a 20ft freight rate deserves a second look.
How reliable is the modulo-11 check?
Considerably more reliable than a modulus-7 scheme like the one used for air waybill numbers. The positional doubling weights make it sensitive to both substituted and transposed characters, which are the errors that actually occur when numbers are keyed or scanned.
Who allocates container owner codes?
Owner codes are allocated centrally through the Bureau International des Conteneurs. The prefix is a strong hint about the operator — most are recognisable to anyone in ocean freight — but this validation does not query the registry, so do not infer ownership or liability from a prefix alone.
When should container numbers be validated?
At the point the number first enters your system — the stuffing report or the shipping instruction — so an error never propagates. A container reference that does not exist on the carrier's manifest is a common cause of customs mismatch holds, and correcting a filed entry costs far more than checking a list.
Related tools, templates and guides
- Container number checkValidate up to 100 numbers and export a CSV audit.
- Bill of Lading parserValidate every container on a B/L automatically during extraction.
- Container types and sizesWhat the size and type code beside the number means.
- Container packing listAllocate cargo to validated container and seal numbers.