Skip to content

Fifteen months is enough time to sort the tariff codes that split.

A new edition of the Harmonized System arrives on 1 January 2028, and the mapping from the codes you hold today is already published. We read it and counted what it asks for. A third of the affected codes move on their own. The rest are a question about the product, and that is a good thing to find out fifteen months early.

A code on every product, and a date when some of them change meaning.

Somewhere in your item master there is a column of six digit codes. Nobody thinks about it most of the year. It decides the duty you pay, the tax rate that attaches on some transactions, the figures in your trade statistics, and whether a product falls inside the scope of a reporting regime. For many finance teams it was populated once, by somebody who has since left, and has been copied onto new products ever since.

On 1 January 2028 some of those codes stop meaning what they mean today. The World Customs Organization has published the eighth edition of the Harmonized System, and the mapping between the codes you hold now and the codes that replace them is already available. There is an unusual amount of warning here, which is the opportunity: this is a change with a fixed date, a published specification, and fifteen months to work in.

Search the subject and the current answers describe the scope well and then advise starting early. That is reasonable advice and it stops just short of the useful part. The question a finance team actually needs answered is narrower: how much of this can a system do by itself, and what is left that needs a person. So we downloaded the correlation tables and counted.

How the 321 affected HS 2022 subheadings behave in the 2028 correlation tableA diagram in four bands. The first band states the scope: the eighth edition of the Harmonized System enters into force on 1 January 2028, with 299 sets of amendments, 428 new subheadings created and 172 deleted. The second band shows the result of reading Table II of the World Customs Organization correlation tables, which lists 321 HS 2022 subheadings: 125 of them move to a single HS 2028 subheading, which is a straight substitution a system can apply, and 196 of them divide into more than one subheading, which is 61 percent and requires a decision about each product. The third band shows that the attribute deciding each division is usually a physical product attribute rather than a finance attribute, giving four examples: subheading 4407.29 divides across seven timber species, 3915.90 across twelve polymer and contamination categories, 0306.33 across eight crab species and states, and 3002.41, vaccines for human medicine, across 38 subheadings of the new heading 30.07 by target disease. The fourth band states the systems consequence: because the same six digits mean different goods either side of the effective date, the code assignment on an item needs validity dates rather than a single current value, retired codes are deactivated rather than deleted, and each child code gets its duty or tax rate set deliberately.A LOOKUP FOR 125 OF THEM. A DECISION FOR 196.THE SCOPE, FROM THE WCO AMENDMENT PAGEIn force 1 January 2028. 299 sets of amendments. 1,229 headings and 5,852 subheadings. 428 new subheadings, 172 deleted.WHAT TABLE II CONTAINS, COUNTED FROM ITS OWN ROWS: 321 HS 2022 SUBHEADINGSMove to one new subheading12538.9%. A straight substitutionDivide into more than one19661.1%. A decision per product672 correlation pairs, onto548distinct new subheadingsWHAT DECIDES A DIVISION IS USUALLY A PRODUCT ATTRIBUTE, NOT A FINANCE ONE4407.29 into 7Timber species3915.90 into 12Polymer and contamination0306.33 into 8Crab species, live or chilled3002.41 into 38Disease targetedTwo more, 2107.10 and 2107.90, are listed against chapters with no source code, and the table does not say which goods move.The attribute usually lives in a supplier specification, so the real work is getting it into the item master as a field.THE SYSTEMS CONSEQUENCE: A CHANGE OF MEANING ON A DATEThe code assignment on an item carries validity dates, so a 2027 movement and a 2028 movement resolve differently.A retired subheading is deactivated and kept, because filed declarations and returns still reference it.Each child code gets its duty and tax rate set by a person, so an unset rate is visible rather than inherited.
Counts produced by reading Table II of the WCO correlation tables, corrigendum version of July 2026, and counting its rows. The scope figures on the top band are the WCO’s own, from its amendment page.

What the eighth edition changes.

The headline figures come from the WCO’s own amendment page. The HS 2028 amendments comprise 299 sets of amendments, resulting in a nomenclature of 1,229 headings and 5,852 subheadings. Compared with the HS 2022 edition, six new headings and 428 new subheadings have been created, while five headings and 172 subheadings have been deleted.

Those last two numbers are the ones to hold onto, because they describe two different jobs. The 428 new subheadings are places where goods now need to be put. The 172 deleted subheadings are codes that will still be sitting in your master data, on your filed declarations and in your returns, long after they have gone from the nomenclature.

One caution about sourcing. Published summaries of this edition do not all agree with each other, and some in circulation give a change count that the WCO page does not support. When a secondary summary and the primary page disagree on a figure, the summary is the thing that is wrong, and it is worth taking the scope from the page itself. The correlation tables have also already been corrected once since publication, by a corrigendum issued in July 2026, so a mapping downloaded earlier than that needs re-checking.

It is also worth being clear about which digits are in play. The European Commission describes the EU Combined Nomenclature as based on the Harmonized System of the WCO, comprising additional 8-digit subdivisions and legal notes created for the needs of the EU, with the HS itself covering about 5,000 commodity groups identified by a 6-digit code and applied by more than 200 administrations. So HS 2028 moves the six digit spine, and each national schedule is rebuilt on top of it afterwards. The six digit work can start now. The national digits arrive later.

We counted the correlation table.

The WCO publishes two correlation tables. Table I runs from the 2028 version back to the 2022 version. Table II runs the other way, from 2022 to 2028, and that is the direction a finance team needs, because it starts from the codes already in the item master. We downloaded both, read Table II in the document rather than through a summary, and counted its rows.

The table’s own note explains how to read it. HS 2022 subheadings sit in the left column and the corresponding HS 2028 entries in the middle. The prefix ex on a 2028 entry indicates that only part of the goods covered by that 2028 subheading corresponds to the 2022 subheading on the left. A note reading that all goods of the old subheading transfer indicates a full move. And a particular symbol marks the important case: it is used when a single HS 2022 subheading corresponds to more than one HS 2028 subheading, which means the goods covered by that old subheading are divided into separate categories, each going to a different new subheading.

That distinction is the whole operating question, so here is how it falls. Table II lists 321 HS 2022 subheadings. Of those, 125 correspond to exactly one HS 2028 subheading: every unit under the old code goes to one new code, and a system can apply that without asking anybody. The remaining 196 divide into more than one, which is 61 percent of the affected codes. Across all 321, the table carries 672 correlation pairs onto 548 distinct HS 2028 subheadings, so neither direction is a simple function.

How many HS 2028 subheadings each affected HS 2022 subheading corresponds to, counted from Table II of the WCO correlation tables, corrigendum version of July 2026. 321 subheadings in total.
Corresponds toHS 2022 subheadingsShareWhat it means for the remap
1 new subheading12538.9%A straight move. Every unit under the old code goes to one new code, and a system can apply it without asking anybody
2 new subheadings13742.7%The largest group. The goods divide in two, usually on one attribute, and each product has to be put on one side of it
3 new subheadings319.7%Still tractable per product, but no longer something a mapping table can finish on its own
4 new subheadings154.7%Typically a species, material or grade list
5 to 12 new subheadings123.7%Long attribute lists. Polymers, timbers, seed species and crab species sit here
38 new subheadings10.3%Subheading 3002.41, vaccines for human medicine, fanning out across the new heading 30.07
How many HS 2028 subheadings each affected HS 2022 subheading corresponds to, counted from Table II of the WCO correlation tables, corrigendum version of July 2026. 321 subheadings in total.

The shape of that distribution is the good news and the bad news in one picture. A little under two fifths of the work is free. The single largest group, 137 subheadings, divides exactly in two, which is the most tractable kind of decision: one attribute, two buckets, and a clear question to ask about each product. The long tail is small in count and expensive in effort.

The attribute that picks the new code is rarely a finance attribute.

Reading the divisions one by one turns up the part that matters most for planning, and it is not visible from the summary figures. When a subheading divides, the table says what it divides on. Almost always it is a physical fact about the product that the finance system does not hold.

The five most divided HS 2022 subheadings in Table II, with the attribute the division turns on. Read from the table’s own descriptions, which the WCO states are provided for reference purposes only and have no legal status.
HS 2022 subheadingDivides intoThe attribute that decides it
3002.41, vaccines for human medicine38The disease, or the combination of diseases, the vaccine is against. The new heading 30.07 names measles, rubella, varicella, polio, diphtheria, tetanus, hepatitis A and B, Hib, tuberculosis, pneumococcal, rotavirus, HPV, meningitis, typhoid, cholera, dengue, rabies, malaria, influenza, RSV and coronaviruses, with separate subheadings for the combined vaccines
3915.90, waste and parings and scrap of other plastics12The polymer, whether it is halogenated, and how contaminated it is. Propylene, ABS, PET, polycarbonates, polyethers and several resin families each get their own subheading, and the clean single polymer categories are defined by a new subheading note
1212.99, other vegetable products not elsewhere specified10The plant species, where the goods are seeds of a kind used for sowing. Lucerne, clover, fescue and Kentucky blue grass each move to their own subheading of 12.09
0306.33, crabs, live or fresh or chilled8The crab species and the state. Red king, other king, snow and other crabs, each split again between live and fresh or chilled
4407.29, other tropical wood sawn lengthwise7The timber species. Hevea, Merbau, Ipé, Tali, Okan and Doussié each get a subheading, with the rest left in Other
The five most divided HS 2022 subheadings in Table II, with the attribute the division turns on. Read from the table’s own descriptions, which the WCO states are provided for reference purposes only and have no legal status.

Timber species. Polymer type and contamination level. Crab species. The disease a vaccine is against. None of those live in a general ledger, and in most businesses none of them live in the item master either. They live in a supplier specification, a technical data sheet, a safety data sheet, or in the head of somebody in procurement or quality.

Which reframes the project usefully. This is not really a tariff code exercise. It is a product attribute collection exercise, and the tariff code is the output. That is a better way to spend the fifteen months, because an item master that holds the species, the polymer and the grade as fields can re-derive its codes for the ninth edition in an afternoon. One that holds only the code has to run the whole project again.

Two new subheadings arrive with an open feeder list.

There is one case in Table II that does not behave like the others, and it is worth knowing about because a mapping exercise built on normal assumptions will skip it silently. Two new subheadings, 2107.10 and 2107.90, covering food preparations, appear with no single source code in the left column at all. Instead the left column names chapters: applicable subheadings, in particular in Chapters 4, 7, 8, 9, 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 28, 29, 35 and 38.

The table explains that the creation of these subheadings entails the possible transfer of certain products currently covered by other headings of the nomenclature, and names 48 headings as examples while stating in terms that the list is not limited to them, spanning 17 chapters, from dairy constituents and spices through fats and oils to sugars, cocoa and modified starches. It then adds that the table includes all likely correlations identified during the discussions, without specifying the indicative type of goods transferred.

So for these two, the published mapping does not tell you which of your goods move. If you sell food preparations, or ingredients, extracts, mixtures or premixes that could be characterised as such, this is the one part of the exercise that cannot be driven from the table and needs a classification review against the new legal notes. Everywhere else in the table you are reconciling to a source code. Here there is nothing to reconcile to, which is exactly why it should go on the list early rather than being discovered in December 2027.

The field most item masters are missing.

Now the systems half, which is where this becomes a design question rather than a data entry one. A nomenclature edition is a change of meaning on a date. The same six digits describe one set of goods on 31 December 2027 and a different set on 1 January 2028, and both meanings are live at once for a while, because purchase orders placed in 2027 are received in 2028, stock is in transit across the date, credit notes are raised against invoices issued under the old edition, and comparatives are presented for both years.

Most code masters are not built to say that. Ours is a reasonable example, and worth being specific about because the gap is instructive. Rivane holds an entity scoped HSN and SAC code list, with a code, a description, a type, a link to a tax rate and an active flag, with create, read, update and delete behind the entity master data API. India’s HSN codes are themselves built on the WCO Harmonized System, so the six digit spine under them moves with HS 2028 like everything else.

Two things in that design are right for this. The active flag means a retired subheading can be taken out of use without being deleted, which is what the 172 deletions need. And the tax rate is a link rather than a value copied onto the item, so when a code divides, each child can be given its own rate in one place.

One thing in it is not enough, and it is the same thing missing from most implementations: the active flag is a boolean, not a validity period, and the code is unique per entity. A boolean can say this code is no longer in use. It cannot say this code meant one thing until 31 December 2027 and something else from 1 January 2028, and a uniqueness constraint on the code number means the two editions of the same number cannot sit side by side as separate rows. That is the structural change a nomenclature edition asks for, and the good news is that it is a small change made once, well before the date, rather than a reconciliation problem discovered afterwards.

The shape that survives an edition change

# An item master that can describe a change of meaning on a date.
# Shape only. No real product, supplier or entity.

tariff_code:                  # the nomenclature, not the product
  code: "4407.29"
  edition: HS2022
  description: "Other tropical wood, sawn or chipped lengthwise"
  valid_from: 2022-01-01
  valid_to:   2027-12-31      # retired by the 2028 edition, kept for history
  is_active:  false
  rate_link:  DUTY-TROP-STD

tariff_code:
  code: "4407.44"
  edition: HS2028
  description: "Doussié"
  valid_from: 2028-01-01
  valid_to:   null
  is_active:  true
  rate_link:  null            # deliberately unset until a person sets it

item_tariff_assignment:       # the product, and when each code applied to it
  item: ITM-004812
  assignments:
    - code: "4407.29"
      valid_from: 2022-01-01
      valid_to:   2027-12-31
    - code: "4407.44"
      valid_from: 2028-01-01
      valid_to:   null
      decided_by_attribute: species
      attribute_value: "Doussie (Afzelia spp.)"
      source: "WCO Table II, corrigendum version, July 2026"
      approved_by: USR-0042

item_attributes:              # the fields the next edition will ask about again
  item: ITM-004812
  species: "Doussie (Afzelia spp.)"

# The rules that make the above hold:
#   a movement resolves its code by posting date, not by current value
#   a retired code is deactivated, never deleted
#   a child code starts with no rate, so an unset rate is visible
#   one old code may point at many new codes, and the reverse

What to put in place over the next fifteen months.

  • Pull the list of distinct tariff codes actually in use, not the list of codes in the master. Most item masters carry codes nobody has shipped against for years, and the live list is usually a fraction of the stored one. That list is the real size of the job, and it is worth knowing before anybody estimates anything.
  • Join your live code list against Table II first. The codes that do not appear in it are untouched, and for many businesses that will be most of them. This is the cheapest possible first step and it tells you whether you have a small project or a large one.
  • Split what remains into the straight moves and the divisions. The straight moves can be applied as data, and reviewed in bulk. The divisions are the only part that needs a person, and separating them stops the easy 125 from consuming the attention the hard 196 need.
  • For each division, write down which product attribute decides it before deciding anything. The table tells you: a species, a polymer, a disease, a grade. Writing the attribute down converts an open classification argument into a specific question somebody in the business can usually answer from a spec sheet.
  • Find out where that attribute already lives. Species and polymer are often in a technical file, a supplier specification or a safety data sheet rather than in the ERP. The useful outcome of this exercise is getting the attribute into the item master as a field, so the next edition is a re-derivation rather than a fresh project.
  • Add validity dates to the code assignment rather than overwriting it. A nomenclature edition is a change of meaning on a date, and an item master that stores only the current code cannot describe an order placed in 2027 and received in 2028.
  • Keep the retired codes. The 172 deleted subheadings still appear on every invoice, declaration and return you have already filed, and a code master that deletes them breaks the documents that reference them. Deactivate rather than remove.
  • Re-point the tax and duty rates deliberately, one split at a time. When a code divides, the rate that hung off the old code does not automatically belong to all of its children, and this is the step where a silent cost error enters.
  • Leave the national digits until the national schedules are published. The HS is the six digit spine, and the EU Combined Nomenclature, the US schedule and every other national tariff add their own subdivisions on top. Six digit work can start now; eight and ten digit work cannot finish until each administration publishes.
  • Treat the correlation table as a map and not as authority. The WCO says in the table itself that the descriptions are provided for reference purposes only and have no legal status, so a contested classification still needs the legal notes, the General Interpretative Rules and, where the money is material, a binding ruling.

Where this goes wrong.

  • Running the remap as a find and replace. It works for the 125 straight moves and silently mis-states the 196 divisions, because a divided code has no single successor and whichever child the script picks will be right for some products and wrong for others.
  • Taking a scope figure from secondary coverage. Published summaries of this edition disagree with each other, and some circulate a change count that the WCO’s own amendment page does not support. The page states 299 sets of amendments, and when a summary and the primary text disagree the summary is the thing that is wrong.
  • Assuming the correlation is settled because it is published. The tables we read are the versions including a corrigendum issued in July 2026, which means the mapping itself has already been corrected once since publication. Anything built on an earlier download needs re-checking rather than trusting.
  • Overwriting the code on the item and considering the job done. The item is now right for 2028 and has quietly become wrong for every open purchase order, in transit shipment, pending credit note and prior period comparison that still refers to the old meaning.
  • Deleting the retired subheadings from the code master. The codes are gone from the nomenclature, not from your history, and a filed declaration that references a code with no row behind it is harder to defend than one that references a row marked inactive.
  • Letting the duty or tax rate ride along with the code without review. A split exists because the goods were different enough to separate, and that is frequently because they are treated differently. Carrying one rate onto every child is the most likely way for this change to cost money.
  • Starting with the eight digit codes. The national schedules are derived and they land later, so detailed work done early against a guess at the national subdivision is work that gets done twice.
  • Treating the open ended cases as ordinary rows. The two new food preparation subheadings are listed against chapters rather than against source codes, and the table says in terms that it does not specify which goods transfer. A mapping exercise that expects a source code for every target will quietly skip them.

Data and API considerations.

  • Give the code assignment on the item a validity period, with a valid from and a valid to, rather than a single current value. This is the one structural change that a nomenclature edition really asks for, and it is what lets the same product carry the 2022 code for a 2027 movement and the 2028 code for a 2028 one.
  • Keep the code master separate from the assignment. A code is a fact about the nomenclature, with its own active window. An assignment is a fact about a product, with its own window. Collapsing the two is what makes a split hard to express.
  • Store the deciding attribute as a field on the item, not in the rationale text. Species, polymer, grade and target disease are the things the next edition will ask about again, and a field can be queried while a note cannot.
  • Model the rate link as a link from the code rather than a value copied onto the item. When the code divides, the children need their own rates, and a copied rate has to be chased across every item that holds it.
  • Expect a many to many relationship between editions and store it that way. Table II carries 672 correlation pairs from 321 old subheadings onto 548 new ones, so neither direction is a function and a single foreign key cannot hold it.
  • Keep the provenance of each reclassification: which table and which version it came from, who approved it, and the attribute value that drove it. A corrigendum has already changed this mapping once, and the rows you can re-derive are the rows you can correct cheaply.
  • Make the code field wide enough and typed loosely enough for national subdivisions. Six digits is the HS, eight is the EU, ten is common elsewhere, and a column sized for one of those will fail on another.

What an auditor or a customs officer will ask for.

  • For each product that moved: the old code, the new code, the attribute value that decided it, the date the new code takes effect for your movements, and who approved it.
  • The version of the correlation table relied on, including whether it was the corrigendum version, and the date it was downloaded.
  • The list of codes in use that Table II does not touch, which is the positive evidence that those products were considered and correctly left alone.
  • For each divided code: the reasoning for each child chosen, with a reference to the legal note or ruling where the division was not obvious from the specification.
  • The retired codes, still present and marked inactive, reconcilable to the declarations and returns that reference them.
  • The rate re-pointing decisions, showing that each child code was given a rate deliberately rather than inheriting one from the parent.

Six questions for your next master data review.

  • How many distinct tariff codes are actually in use across our live items, and how many of those appear in Table II?
  • If somebody asks in 2029 which code a product carried on a shipment in December 2027, can our item master answer, or has the field been overwritten?
  • For each of our codes that divides, do we hold the attribute that decides the split as a field, or does somebody have to open a supplier specification?
  • When a code splits into three, does each of the three get a rate reviewed by a person, or does the rate follow the code automatically?
  • Can we deactivate a tariff code without deleting it, and do our historical documents still resolve against it?
  • Who owns this in our organisation: finance, trade compliance, or whoever happens to be editing the item master that week?

A new edition is a good reason to finish the item master.

The encouraging thing about this change is how knowable it is. The date is fixed and published. The mapping is published, including a correction already applied. The scope is stated by the body that wrote it. And the single most useful fact about the work, that 125 of the 321 affected subheadings move on their own and 196 need a decision, is something you can establish for your own product range in an afternoon by joining your live code list against one table.

The work that remains pays for itself beyond customs. Getting species, polymer, grade and the other deciding attributes into the item master as fields, giving a code assignment the dates it was valid, and keeping retired codes rather than deleting them are all things a well built item master should have anyway. They make duty and landed cost explainable, they make a historical declaration defensible, and they mean the next edition is a query rather than a project. If it helps to see how the code master, the rate links and the tax determination fit together, the Rivane tax management page walks through it.

Sources

A note on how this was researched. Both WCO correlation tables were downloaded as PDFs and read directly rather than summarised, and every count in this article was produced by parsing the rows of Table II, corrigendum version of July 2026, and classifying each HS 2022 subheading by how many HS 2028 subheadings it corresponds to. The counts are therefore ours and not the WCO’s: the figures attributed to the WCO are the scope figures on its amendment page, which were read on that page. The parse was checked against the document by hand, including the cases where a footnote or a wrapped description contains a code that is not a correlation target, which a naive read of the text would miscount. Where a secondary summary of this edition disagreed with the WCO page on a figure, the page was taken as correct and the summary was not used. The worked splits named in the table above are described from the table’s own entries, and the WCO states that those descriptions are for reference only and have no legal status, so nothing here is a classification opinion about any particular product. No suitable public posts on X were found on this topic during research, so none are embedded and none were invented. Statements about Rivane describe what is built and shipped today, including the limit stated above, and the item shape in the code panel is a shape rather than a screenshot of a live record. Rivane has no public customers to cite and none are implied. Nothing here is customs, tax or legal advice, and a classification that carries real duty should go to a specialist and, where the amounts justify it, to a binding ruling.