The trade relationship between the United States and Canada — long considered the most stable bilateral trade corridor in the world — has entered a period of sustained disruption. For most people, this is a news story. For engineering teams maintaining trade compliance software, it is an operational problem that lands directly in their codebase.

This post explains what is happening, what has changed in the tariff schedules as a result, and what engineering teams need to do about it.

What Is Actually Happening

The current escalation traces to US Section 232 actions on steel and aluminum, expanded and reapplied in 2025. Canada, which ships significant volumes of both commodities south, responded with retaliatory tariffs on a specific list of US goods. The US countered. The result is a layered structure of additional duties sitting on top of baseline HTS rates that had been stable for years.

This is not a clean on/off switch. The additional duties have been applied, suspended, modified, and reapplied on different product categories at different times. Section 301 actions against China, running in parallel, have created additional complexity because some goods flow through Canada and are subject to both regimes depending on origin determination.

What This Does to the HTS Schedule

The Harmonized Tariff Schedule does not change as frequently as trade policy does — but tariff actions are reflected in the schedule through additional duty columns, chapter notes, and statistical reporting numbers. Here is what has been moving:

The Engineering Problem This Creates

You don't know when Chapter 99 changed

USITC publishes updates to the tariff schedule, but there is no structured notification mechanism. You find out by checking. If your pipeline runs weekly or monthly, you may be serving stale duty rates for weeks after an update. In a period of active policy changes, that window matters.

The schema is not stable across updates

USITC has shifted field names and data structures in their published files across different schedule revisions. A pipeline that parsed cleanly against a six-month-old file may fail against the current one. This has happened in both 2024 and 2025 releases. Teams that had not built defensive parsing discovered it when their jobs started failing silently.

Chapter 99 is structurally different from the rest of the schedule

Most HTS chapters follow a consistent product hierarchy. Chapter 99 does not. It is organized around trade actions, not products, and its entries reference heading ranges in other chapters rather than describing goods directly. Many ingestion pipelines handle it incorrectly or skip it entirely — missing the additional duty layer entirely.

Rate calculation requires combining multiple sources

The effective duty rate on a given HTS code is not a single field. It is the base MFN rate, plus any applicable Section 232 additional duties, plus any applicable Section 301 additional duties, minus any exclusions that may apply. Getting this right requires correctly parsing Chapter 99 and cross-referencing the applicable action notices.

What Engineering Teams Should Do Now

Verify your Chapter 99 coverage

Query your own system for a few HTS codes in Chapters 72 and 76. Check whether the result includes applicable Section 232 additional duties. If it returns only the base MFN rate, your pipeline has a gap with direct compliance implications for your users.

Check your update frequency against the policy change cadence

HTS updates related to ongoing trade actions have been happening on a faster cycle than in stable periods. A monthly ingestion schedule adequate in 2022 may leave your application serving incorrect data for weeks at a time in 2026. Consider whether nightly ingestion is warranted for affected chapters.

Build change detection, not just ingestion

Knowing that the schedule updated is more useful than knowing you ran your pipeline. A diff against the prior version tells you which codes changed, which chapters were affected, and whether Chapter 99 moved. A pipeline that simply overwrites the previous dataset tells you nothing actionable.

Note on Canada: The Canadian Customs Tariff is maintained separately by the Canada Border Services Agency and has its own structure, update cadence, and classification system. For goods crossing the US-Canada border in either direction, both schedules are operationally relevant. TradeFacts.io is building Canada Customs Tariff support — that feature is on the roadmap and will be announced when it ships.

The Broader Point

The 2025–2026 US-Canada tariff situation is not an isolated event. It is an example of the general condition of trade policy: it changes faster than most engineering teams have planned for. The pipelines built against a stable tariff environment have structural assumptions baked in — update frequency, schema consistency, Chapter 99 handling — that are now exposed.

Teams that built defensively are watching the news and checking their dashboards. Teams that did not are finding out the hard way.

TradeFacts.io serves the full US HTS schedule as a normalized JSON API with nightly updates, stable schema, and change detection. When USITC publishes an update, we absorb the schema changes and your integration keeps working. The /changes endpoint returns a full diff of what moved and when. Tier 2 includes webhook delivery so you don't have to poll.

Stop maintaining a scraper. Start a free trial.

30-day free trial, no credit card required. Full HTS dataset, nightly updates, change detection included.

Request API Access