Data structures; Commodity codes - uktrade/tariff-data-manual Wiki

Commodity codes

Commodity codes classify goods for import and export so traders can:

  • fill in declarations and other paperwork
  • check if there’s duty or VAT to pay
  • find out about duty reliefs

There are about 25,000 commodity codes in the UK Tariff. About 16,000 of the total number of commodity codes are declarable end-lines. An end-line is the most specific classification of a product.

Commodity codes contain 10 digits.

The first 6 digits are regulated by the World Customs Organization (WCO). This system is called the Harmonized System (HS). The system is used by more than 200 countries and economies as a basis for their Customs tariffs. Read more about the Harmonized System on the WCO website.

A revision takes place every 5 years. The most recent change took place in January 2022.

What commodity codes are made up of

The full list of products in the UK Tariff is called the 'goods classification'. Sometimes it is also referred to as the 'goods nomenclature' or 'nomenclature'.

The UK goods classification is divided into 21 sections. These are shown in the Tariff as Roman numerals. Section numbers do not form part of a commodity code.

graph G {
  node [shape=none]
  HS [label=<<TABLE CELLSPACING="0">
      <TD COLSPAN="2">HS chapter</TD>
      <TD COLSPAN="2">HS heading</TD>
      <TD COLSPAN="2">HS<BR/>subheading</TD>
      <TD COLSPAN="6">Managed by WCO</TD>
  CN [label=<<TABLE CELLSPACING="0">
      <TD COLSPAN="2">CN<BR/>subheading</TD>
      <TD COLSPAN="2">TARIC<BR/>subheading</TD>
      <TD COLSPAN="4">Managed by EU</TD>
  HS -- CN [color=none];

The first pair of numbers: the HS chapter

Within each section there are a series of chapters. The first pair of numbers in each commodity code shows which HS chapter of the Harmonized System it is in.

The second pair of numbers: the HS heading

Each HS chapter contains a series of headings. The second pair of numbers in each commodity code (digits 3 and 4) show which HS heading it comes under.

The third pair of numbers: the HS subheading

The third pair of numbers in each commodity code (digits 5 and 6) show which HS subheading it comes under.

The fourth pair of numbers: the CN subheading

The EU refers to its tariff as the combined nomenclature (CN).

The fourth pair of numbers in every commodity code (digits 7 and 8) show the CN subheading. The CN subheading is a further development of the Harmonized System. It's used to classify goods when they are declared to customs in the EU. This 8-digit nomenclature cannot be changed over a period of one year.

The fifth pair of numbers: TARIC codes

The fifth pair of numbers (digits 9 and 10) are known as TARIC codes.

TARIC is the tariff rate of the European Communities. The first 8 numbers are the same as the combined nomenclature. These 8-digit codes are broken down further into 10-digit codes.

If a commodity codes appears to have fewer than 10 characters

Commodity codes are sometimes shown with fewer than 10 characters. This is to represent a higher level in the classification hierarchy.

In these cases, the missing numbers are always zeroes.

For example, a commodity code written as 0102 is actually the 10-digit code 0102000000. Any spaces or dots added to commodity codes are for presentation purposes only.

Chapters 98 and 99 of the goods classification

Chapters 98 and 99 are part of the EU’s special coding system and are not defined by the WCO Harmonized System.

Chapter 98 is for statistical reporting purposes for industrial plant. No codes in this chapter have measures so traders cannot declare on them.

Chapter 99 contains codes for certain specific movements of goods. This includes things like personal effects belonging to a person moving house. Chapter 99 was optional for EU member states and the UK did not legislate for its use. It is not available for declarations but remains in the dataset.

Why the online tariff has indents

The Tariff originated as a printed document.

Indents were used to identify how many centimetres into the page the heading should appear.

This showed approximately how deep a commodity code was in the hierarchy.

The following image shows:

  • a hierarchy from the first commodity code in the Tariff down to the last end-line under the first major HS heading branch
  • a product line suffix for each commodity code
  • the indent for each commodity code
  • a description of the commodity code

The physical indent on the description matches the indent field. So, ‘Horses’ is a ‘child’ of ‘Live horses, asses, mules and hinnies’ and ‘Pure-bred breeding animals’ is a child of ‘Horses’.

The HS chapter and the HS heading use an indent of zero to show they are not indented.


Defining if a product is declarable: the product line suffix

A product line suffix is a separate pair of numbers shown beside the commodity code.

A value of 80 means the commodity code could in theory be declared. A value of less than 80, such as 10 or 20, means the commodity code is being used for grouping and structure purposes only. Measures can only be attached to codes with a suffix of 80.

A product is only declarable if both the following apply:

  • it has the product line suffix 80
  • it is an end-line (that is, it does not have any 'child codes' in the hierarchy)

In the following example, the declarable commodities are those with a D against them.

Although 0101 29 00 00 and 0101 00 00 00 have a product line suffix 80, they cannot be declared because they have child codes.


How new commodity codes are created

An origin defines the commodity code which a new commodity code was taken from.

When a commodity code is split in 2, the ‘origin’ is the parent commodity code.

It is mandatory that at least one origin is created for every new commodity code.

Absorbing old commodity codes

A successor defines the commodity code which an existing commodity code has been absorbed into.

It is not mandatory for a successor code to be created, though there is the option to create them.

Residual codes

When a commodity code is split into parts, a specific code and a residual code are created. The residual code is usually labelled 'other' in the hierarchy.

The following example shows commodity code 2001 90 70 00 has been split into 2 child codes:

  • the specific code is assigned 10 as the final 2 digits
  • the residual code is assigned 90 as the final 2 digits


If more child codes are added to the parent as siblings to 10 and 90, these are assigned 20, 30, 40 as the final 2 digits while space remains.

If a code is split on the last digit, rather than the last 2 digits, it is usually split into 1 and 9.

There are more than 6,500 residual codes in the database.

Business rules

Read the business rules that affect commodity codes in the system documentation.

⚠️ ** Fallback** ⚠️