Most tariff data providers mirror one source: the Harmonized Tariff Schedule published by the United States International Trade Commission. That file is authoritative, well-structured, and updated regularly. It is also, right now, a lagging indicator.
When a new tariff rate is imposed via executive order under IEEPA, Section 232, or Section 301, it takes effect the day the proclamation is published in the Federal Register. USITC updates the HTS schedule afterward — sometimes days later, sometimes weeks. During that window, any system reading from a raw HTS mirror is operating on stale data.
This is not a hypothetical. We tracked it on 9903.01.25, a Section 122 temporary surcharge that became effective February 24, 2026. The code exists in the HTS, but its rate is not yet reflected in base footnote references for the affected commodity codes. A lookup against the USITC file returns the pre-proclamation rate. The Federal Register says otherwise.
Why the Gap Exists
The HTS publication cycle is not designed for real-time updates. USITC maintains the schedule as a reference document, coordinating with CBP to ensure consistency with the Automated Broker Interface. That coordination takes time. A proclamation can create a new Chapter 99 rate — or modify an existing one — well before the tariff schedule reflects it in a way that downstream software can parse reliably.
The Federal Register is the authoritative legal source. The HTS is a codification of it. There is always a lag between the two, and during active trade policy periods, that lag has operational consequences.
The risk is asymmetric. If your software under-reports a duty rate because your data source has not caught up to a proclamation, your customer files at the wrong rate. CBP assesses on the correct rate. The importer pays the difference, plus potential penalties. Your platform takes the credibility hit.
The Three Types of Discrepancy
Not all gaps between the Federal Register and the HTS look the same. There are three distinct categories worth monitoring:
Rate differs. The overlay rate from a proclamation does not match what the HTS currently shows for the same Chapter 99 code. This is the most operationally dangerous type — both sources have a rate, but they disagree.
Footnote gap. The overlay code exists in the HTS index but is not yet referenced in the footnotes of the commodity codes it applies to. The rate may be correct in isolation, but the cross-reference that tells you which imported goods it covers has not propagated yet. This is where 9903.01.25 currently sits.
HTS code missing. The proclamation references a Chapter 99 code that does not yet exist anywhere in the published HTS. This happens when USITC creates a new subheading in response to a proclamation and the schedule update is still pending.
Detecting the Gap Programmatically
If you are building or maintaining tariff compliance software, monitoring for these discrepancies should be part of your data pipeline. The approach is straightforward: maintain a separate store of Federal Register-sourced rates, and diff it against what the HTS currently shows.
At TradeFacts, we built this as a queryable endpoint. The /api/discrepancies endpoint compares our curated IEEPA overlay — populated from proclamation text within hours of Federal Register publication — against the published HTS schedule, and returns every divergence with its type, both rates, and the source FR document:
GET /api/discrepancies
X-API-Key: your-tier4-key
{
"generated": "2026-04-01T14:00:00Z",
"total": 1,
"summary": {
"rate_differs": 0,
"footnote_gap": 1,
"hts_code_missing": 0
},
"discrepancies": [
{
"code": "9903.01.25",
"type": "footnote_gap",
"hts_rate": null,
"overlay_rate": "10%",
"overlay_description": "Articles subject to Section 122 temporary surcharge",
"overlay_source": "FR Doc 2026-03824",
"overlay_verified": "2026-02-24",
"note": "9903.01.25 exists in the HTS index but is not yet referenced in any base code footnotes."
}
]
}
You can also query individual codes directly. If your software is performing a duty calculation on a specific HTS code, you can check whether the IEEPA overlay has anything that applies:
GET /api/ieepa/9903.01.25
X-API-Key: your-tier4-key
{
"code": "9903.01.25",
"rate_provisional": "10%",
"source_document": "FR Doc 2026-03824",
"effective_date": "2026-02-24",
"verified_date": "2026-02-24",
"rate_status": "PROVISIONAL",
"disclaimer": "Sourced from Federal Register proclamations, maintained by TradeFacts editorial. Not sourced from USITC. Verify with CBP before filing."
}
The rate_status: PROVISIONAL field and disclaimer are intentional. Overlay rates are sourced from proclamation text and reviewed editorially, but they are not a substitute for CBP verification before filing. We surface the data and its provenance; the filing decision is yours.
The Broader Pattern
The HTS publication lag is not new, but it matters more right now than it has in years. IEEPA proclamations are being issued at a pace that publication cycles were not designed to accommodate. The window between a rate change taking effect and that change appearing in reliable, machine-readable form in the HTS has grown.
For teams running automated classification or duty estimation, the practical question is: what is your data actually based on? If the answer is whatever USITC published most recently, you have a gap. The size of that gap depends on how active trade policy has been since the last HTS update.
Monitoring the Federal Register directly, or using a service that does it for you, is the only way to know where you stand.
TradeFacts Tier 4 includes the IEEPA overlay and discrepancies endpoint. The FR monitor runs every four hours. When a new proclamation is detected, it extracts applicable codes and rates, flags them for editorial review, and pushes approved entries to the overlay within hours. See pricing →
Start a Free Trial
30 days, full access, no credit card required. API key in your inbox within minutes.
Request Free Trial