ISO 6346 is an international standard covering the coding, identification and marking of intermodal (shipping) containers used within containerized intermodal freight transport. It establishes an standard visual identification system for every container which includes a unique serial number (with check digit), the owner, a country code, a size, type and and equipment category as well as any operational marks. The standard is managed by the International Container Bureau (BIC).
Contents |
[edit] Identification System
Example of an ISO 6346 conform container number |
[edit] Owner Code
The owner code consists of three capital letters of the Latin alphabet to indicate the owner or principal operator of the container. Such code needs to be registered at the Bureau International des Conteneurs in Paris to ensure uniqueness worldwide.
[edit] Equipment Category Identifier
The equipment category identifier consists of one of the following three capital letters of the Latin alphabet:
- U for all freight containers
- J for detachable freight container-related equipment
- Z for trailers and chassis
[edit] Serial Number
The serial number consists of 6 (Arabic) numeric digits, assigned by the owner or operator, uniquely identifying the container within that owner/operator's fleet.
[edit] Check Digit
The check digit consists of one (Arabic) numeric digit providing a means of validating the recording and transmission accuracies of the owner code and serial number.
[edit] Calculation Step 1
An equivalent numerical value is assigned to each letter of the alphabet, beginning with 10 for the letter A (11 and multiples thereof are omitted):
A | B | C | D | E | F | G | H | I | J | K | L | M |
10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 |
N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 34 | 35 | 36 | 37 | 38 |
The individual digits of the serial number keep their numeric value.
[edit] Calculation Step 2
Each of the numbers calculated in step 1 is multiplied by 2position, where position is the exponent to basis 2. Position starts at 0, from left to right.
The following table shows the multiplication factors:
1. nbr | 2. nbr | 3. nbr | 4. nbr | 5. nbr | 6. nbr | 7. nbr | 8. nbr | 9. nbr | 10. nbr |
20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 |
[edit] Calculation Step 3
a) Sum up all results of step 2
b) Divide them by 11
c) Erase all decimal digits of the division (i. e. make the result an integer value)
d) Multiply the integer value by 11
e) Subtract result of d) from result of a): This is the check digit!
If the final difference is 10, then the check digit becomes 0. To ensure that this does not happen, the standard recommends that serial numbers should not be used which produce a final difference of 10, however there are containers in the market which do not follow this recommendation, so handling this case has to be included if a check digit calculator is programmed.
Notice that step b) to e) is a calculation of the remainder found after division of a) by 11. Most programming languages have a modulo operator for this. Attention should be paid on how it is working in the language chosen; i. e. if it is giving back the decimal rest or the integer rest in order to get proper results. 11 is used as divisor because a container number has 11 letters and digits in total. In step 1 the numbers 11, 22 and 33 are left out as they are multiples of the divisor.
[edit] Example
C | S | Q | U | 3 | 0 | 5 | 4 | 3 | 8 | Calc. |
13 | 30 | 28 | 32 | 3 | 0 | 5 | 4 | 3 | 8 | |
x | x | x | x | x | x | x | x | x | x | |
1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | |
= | = | = | = | = | = | = | = | = | = | |
13 | 60 | 112 | 256 | 48 | 0 | 320 | 512 | 768 | 4096 | 6185 [a)] |
b) Division by 11: | 562.272... | |||||||||
c) Erase decimal digits: | 562 | |||||||||
d) Multiply by 11: | 6182 | |||||||||
a) minus d) = Check Digit: | 3 |
[edit] Code Sample
Below is a code Snippet implementing the above algorithm in MATLAB validating string "cid":
%% Step 1 char2num = [10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38]; msk = logical([1 1 1 1 0 0 0 0 0 0 0]); % mask separating digits from numbers cid( msk) = char2num(cid( msk)-'A'+1); % letters to numbers conversion cid(~msk) = cid(~msk)-'1'+1; % digit characters to numbers conversion vec = double(cid); %% Step 2 num = sum(vec(1:10).* 2.^(0:9)); %% Step 3 check_digit = mod(mod(num,11),10); valid = (check_digit==vec(11));
[edit] Practical Problems
In day-to-day business it happens that containers do appear which do not follow the ISO 6346 identification at all, however they are fully CSC safety approved containers. Usually these are "shippers owned" containers, which means that they are not owned by the carrier but supplied by the cargo owners (shippers). They may have no registered owner code and no category identifier and have no check digit. Generally it is not advisable not to follow ISO 6346 as this causes problems for the carriers and container terminals to correctly identify the equipment and to properly deliver the cargo, because computer systems require ISO 6346 conformant naming and as such missing prefixes are invented. For example YYYY at the carrier and XXXX at the terminal causes the equipment to mismatch.
[edit] Size and Type Codes
ISO 6346 also gives size and type codes for containers. When displayed on the container, the size and type codes shall be used as a whole.
The codes are compiled of the following elements:
- First character, representing the length (coded)
- Second character, representing the width and height (coded)
- Third and fourth character indicating the type of the container
The following is an overview of the most common codes:
ISO Type Group | ISO Size Type | ||
Code | Description | Code | Description |
20GP | GENERAL PURPOSE CONT. | 20G0 | GENERAL PURPOSE CONT. |
20G1 | GENERAL PURPOSE CONT. | ||
20HR | INSULATED CONTAINER | 20H0 | INSULATED CONTAINER |
20PF | FLAT (FIXED ENDS) | 20P1 | FLAT (FIXED ENDS) |
20TD | TANK CONTAINER | 20T3 | TANK CONTAINER |
20T4 | TANK CONTAINER | ||
20T5 | TANK CONTAINER | ||
20T6 | TANK CONTAINER | ||
20TG | TANK CONTAINER | 20T7 | TANK CONTAINER |
20T8 | TANK CONTAINER | ||
20TN | TANK CONTAINER | 20T0 | TANK CONTAINER |
20T1 | TANK CONTAINER | ||
20T2 | TANK CONTAINER | ||
22BU | BULK CONTAINER | 22B0 | BULK CONTAINER |
22GP | GENERAL PURPOSE CONT. | 22G0 | GENERAL PURPOSE CONT. |
22G1 | GENERAL PURPOSE CONT. | ||
22HR | INSULATED CONTAINER | 22H0 | INSULATED CONTAINER |
22PC | FLAT (COLLAPSIBLE) | 22P3 | FLAT (COLLAPSIBLE) |
22P8 | FLAT (COLL.FLUSH FOLDING) | ||
22P9 | FLAT (COLLAPSIBLE) | ||
22PF | FLAT (FIXED ENDS) | 22P1 | FLAT (FIXED ENDS) |
22P7 | FLAT (GENSET CARRIER) | ||
22RC | REEFER CONT.(NO FOOD) | 22R9 | REEFER CONT.(NO FOOD) |
22RS | BUILT-IN GEN. F. POWER SPLY OF REEF | 22R7 | BUILT-IN GEN. F. POWER SPLY OF REEF |
22RT | REEFER CONTAINER | 22R1 | REEFER CONTAINER |
22SN | NAMED CARGO CONTAINER | 22S1 | NAMED CARGO CONTAINER |
22TD | TANK CONTAINER | 22T3 | TANK CONTAINER |
22T4 | TANK CONTAINER | ||
22T5 | TANK CONTAINER | ||
22T6 | TANK CONTAINER | ||
22TG | TANK CONTAINER | 22T7 | TANK CONTAINER |
22T8 | TANK CONTAINER | ||
22TN | TANK CONTAINER | 22T0 | TANK CONTAINER |
22T1 | TANK CONTAINER | ||
22T2 | TANK CONTAINER | ||
22UP | HARDTOP CONTAINER | 22U6 | HARDTOP CONTAINER |
22UT | OPEN TOP CONTAINER | 22U1 | OPEN TOP CONTAINER |
22VH | VENTILATED CONTAINER | 22V0 | VENTILATED CONTAINER |
22V2 | VENTILATED CONTAINER | ||
22V3 | VENTILATED CONTAINER | ||
25GP | GP-CONTAINER OVER-HEIGHT | 25G0 | GP-CONTAINER OVER-HEIGHT |
26GP | GP-CONTAINER OVER-HEIGHT | 26G0 | GP-CONTAINER OVER-HEIGHT |
26HR | INSULATED CONTAINER | 26H0 | INSULATED CONTAINER |
28TG | TANK FOR GAS | 28T8 | TANK FOR GAS |
28UT | OPEN TOP (HALF HEIGHT) | 28U1 | OPEN TOP (HALF HEIGHT) |
28VH | VE-HALF-HEIGHT =1448 MM HEIGHT | 28V0 | VE-HALF-HEIGHT =1448 MM HEIGHT |
29PL | PLATFORM | 29P0 | PLATFORM |
2EGP | GEN. PURP. WITHOUT VENT WIDTH 2.5M | 2EG0 | HIGH CUBE CONT. (WIDTH 2.5M) |
42GP | GENERAL PURPOSE CONT. | 42G0 | GENERAL PURPOSE CONT. |
42G1 | GENERAL PURPOSE CONT. | ||
42HR | INSULATED CONTAINER | 42H0 | INSULATED CONTAINER |
42PC | FLAT (COLLAPSIBLE) | 42P3 | FLAT (COLLAPSIBLE) |
42P8 | FLAT (COLL.FLUSH FOLDING) | ||
42P9 | FLAT (COLLAPSIBLE) | ||
42PF | FLAT (FIXED ENDS) | 42P1 | FLAT (FIXED ENDS) |
42PS | FLAT (SPACE SAVER) | 42P6 | FLAT SPACE SAVER |
42RC | REEFER CONT.(NO FOOD) | 42R9 | REEFER CONT.(NO FOOD) |
42RS | REEFER CONT.(DIESEL GEN.) | 42R3 | REEFER CONT.(DIESEL GEN.) |
42RT | REEFER CONTAINER | 42R1 | REEFER CONTAINER |
42SN | NAMED CARGO CONTAINER | 42S1 | NAMED CARGO CONTAINER |
42TD | TANK CONTAINER | 42T5 | TANK CONTAINER |
42T6 | TANK CONTAINER | ||
42TG | TANK CONTAINER | 42T8 | TANK CONTAINER |
42TN | TANK CONTAINER | 42T2 | TANK CONTAINER |
42UP | HARDTOP CONTAINER | 42U6 | HARDTOP CONTAINER |
42UT | OPEN TOP CONTAINER | 42U1 | OPEN TOP CONTAINER |
45BK | BULK CONTAINER | 45B3 | BULK CONTAINER |
45GP | HIGH CUBE CONT. | 45G0 | HIGH CUBE CONT. |
45G1 | HIGH CUBE CONT. | ||
45PC | FLAT (COLLAPSIBLE) | 45P3 | FLAT (COLLAPSIBLE) |
45P8 | FLAT (COLL.FLUSH FOLDING) | ||
45RC | REEFER CONT.(NO FOOD) | 45R9 | REEFER CONT.(NO FOOD) |
45RT | REEFER HIGHCUBE CONTAINER | 45R1 | REEFER HIGHCUBE CONTAINER |
45UT | OPEN TOP CONTAINER | 45U1 | OPEN TOP CONTAINER |
45UP | HIGH CUBE HARDTOP CONT. | 45U6 | HIGH CUBE HARDTOP CONT. |
46HR | INSULATED CONTAINER | 46H0 | INSULATED CONTAINER |
48TG | TANK FOR GAS | 48T8 | TANK FOR GAS |
49PL | PLATFORM | 49P0 | PLATFORM |
4CGP | GP CONTAINER | 4CG0 | GP CONTAINER (WIDTH 2.5 M) |
L0GP | HIGH CUBE CONT. | L0G1 | HIGH CUBE CONT. |
L2GP | HIGH CUBE CONT. | L2G1 | HIGH CUBE CONT. |
L5GP | HIGH CUBE CONT. | L5G1 | HIGH CUBE CONT. |
[edit] Country Code (Optional)
The country code consists of two capital letters of the Latin alphabet as described in ISO 3166. It indicates the country where the code is registered not the nationality of the owner or operator of the container. The letters of the code shall not be less than 100 mm high.
[edit] Mandatory Operational Marks
Operational marks are intended solely to convey information requested for the movement of containers or give visual warnings. They relate to
- the weight of containers
- a symbol to denote air-surface container
- a sign warning of overhead electrical danger
- a height mat be for containers higher than 2.6m (8 ft 6 in)
[edit] References
- Bureau International des Containers: Containers BIC-Code (printed brochure)
- Container Numbering Guide
[edit] See also
The following is a list of further freight container related ISO specifications, where not all have an article assigned yet (you can help improve Wikipedia and start one):
- ISO 668 - Freight containers - Classification, dimensions and ratings
- ISO 830 - Freight containers - Terminology
- ISO 1161 - Freight containers - Corner fittings - Specification
- ISO 1496 - Freight containers - Specification and testing
- ISO 2308 - Hooks for lifting freight containers of up to 30 tons capacity - Basic requirements
- ISO 3874 - Freight containers - Handling and securing
- ISO 8323 - Freight containers - Air/surface (intermodal) general purpose containers - Specification and tests
- ISO 9669 - Freight containers - Interface connections for tank containers
- ISO 9711 - Freight containers - Information related to containers on board vessels
- ISO 9897 - Container equipment data exchange (CEDEX)
- ISO 10368 - Freight thermal containers - Remote condition monitoring
- ISO 10374 - Freight containers - Automatic identification
[edit] External links
- Bureau International des Containers (BIC)
- BIC Code Identifier
- Freight Container Check Digit Calculator (includes Java source code for download *Static Java Method does not convert "10" check digit to "0")
- ITCO technical questions
- List of owner codes (not the official BIC site)
- Online check digit calculator
- Russian maritime register of shipping - BIC representation
- Container numbers validator
- Get container dimensions and type by ISO code
- Online ISO 6346 validator
|