Changelog

Changes to the tariff data we serve, the government notices we read, and what shipped in the API, newest first. Data changes and notices marked "Affects our rates" change what the API returns; API changes are releases. Current API version v1.

Government notice No rate change Federal Register

Imposing Additional Duties To Offset Canadian Discrimination Against the Commerce of the United States With Respect to Alcoholic Beverages

Proclamation 11046 as published matches what is already modeled: Section 338, +50% on Canadian alcoholic beverages, effective 2026-08-22 under heading 9903.03.12 (start moved from 2026-08-19 by Proclamation 11056).

Proclamation 11046 imposes an additional 50% ad valorem duty under Section 338 of the Tariff Act of 1930 on the 63 Canadian subheadings listed in its Annex II, covering beer, wine, spirits and related goods, effective for goods entered on or after 12:01 a.m. ET on August 22, 2026 (moved from 2026-08-19 by Proclamation 11056, FR 2026-17294).

The published text matches what the API already carries under heading 9903.03.12, U.S. note 51(b)(1), including both exclusions: the duty does not apply to goods already subject to Section 232, nor to articles on the civil-aircraft list. The duty applies regardless of USMCA origination. Verified against live production on 2026-08-30: 2208.50.00 from Canada carries no Section 338 duty for entry dates 2026-08-19 through 2026-08-21 and carries the +50% under 9903.03.12 on and after August 22, 2026.

Government notice No rate change Federal Register

Imposing Additional Duties To Offset Canadian Discrimination Against the Commerce of the United States With Respect to Dairy

Proclamation 11047 as published matches what is already modeled: Section 338, +50% on Canadian dairy, effective 2026-08-22 under heading 9903.03.13 (start moved from 2026-08-19 by Proclamation 11056).

Proclamation 11047 imposes an additional 50% ad valorem duty under Section 338 of the Tariff Act of 1930 on the 52 Canadian dairy and related subheadings listed in its Annex II, effective for goods entered on or after 12:01 a.m. ET on August 22, 2026 (moved from 2026-08-19 by Proclamation 11056, FR 2026-17294).

The published text matches what the API already carries under heading 9903.03.13, U.S. note 51(b)(2), including both exclusions: the duty does not apply to goods already subject to Section 232, nor to articles on the civil-aircraft list. The duty applies regardless of USMCA origination. Verified against live production on 2026-08-30: the duty is absent for entry dates before August 22, 2026, including the suspended window of 2026-08-19 through 2026-08-21, and present on and after August 22, 2026.

Government notice No rate change Federal Register

Imposing Additional Duties To Offset Canadian Discrimination Against the Commerce of the United States With Respect to Motor Vehicles

Proclamation 11048 as published matches what is already modeled: Section 338, +50% on the motor-vehicle annex products of Canada, effective 2026-08-22 under heading 9903.03.14 (start moved from 2026-08-19 by Proclamation 11056).

Proclamation 11048 imposes an additional 50% ad valorem duty under Section 338 of the Tariff Act of 1930 on the Canadian products listed in its Annex II, effective for goods entered on or after 12:01 a.m. ET on August 22, 2026 (moved from 2026-08-19 by Proclamation 11056, FR 2026-17294). Despite the title, the annex reaches well beyond vehicles: 439 subheadings across chapters 4 through 97.

The published text matches what the API already carries under heading 9903.03.14, U.S. note 51(b)(3), including both exclusions: the duty does not apply to goods already subject to Section 232, nor to articles on the civil-aircraft list. The duty applies regardless of USMCA origination. Verified against live production on 2026-08-30: covered Canadian goods carry no Section 338 duty for entry dates before August 22, 2026, including the suspended window of 2026-08-19 through 2026-08-21, and carry the +50% on and after August 22, 2026.

Data change USITC

Russia aluminum Section 232 duty (200%) now resolved

Aluminum articles that are the product of Russia (HTS 9903.85.67, and derivative aluminum under 9903.85.68) now resolve with the 200% Section 232 duty under U.S. note 19 (Proclamation 10522). These Russia-specific headings supersede the generic 50% metals lane, so Russian-origin aluminum resolves at base + 200%, not base + 50%.

API change

Default pricing date is now US Eastern

When you call /resolve without an as_of, we now price for the current date in US Eastern time, matching how federal tariff actions state their effective times (12:01 a.m. eastern). Same-day changes, like a Section 122 sunset, now flip at midnight ET rather than midnight UTC. To price a specific shipment, pass as_of set to the entry date; note that a fixed past date always returns that day historical rates and will not reflect newer tariffs or sunsets.

Data change Federal Register

Section 301 tariff on products of Brazil (25%)

USTR imposed an additional 25% Section 301 duty on products of Brazil under HTS 9903.05.01 (U.S. note 50), effective 12:01 a.m. ET on July 22, 2026. Brazil-origin goods now resolve with the 25% stacked on the base rate (and Section 122 through its July 23 sunset). The note-50 exemptions are carved out, so in-transit goods, goods already covered by Section 232, civil aircraft, and pharmaceutical inputs are not over-charged.

Government notice No rate change Section 301 CBP CSMS

CSMS # 69302472 - GUIDANCE: Section 301 Duties on Certain Products from Brazil

CBP filing guidance for the Brazil Section 301 action already modeled; the rate, heading, effective date, and exemption headings all match what production returns.

CBP issued filing instructions for USTR's Section 301 action on Brazil: heading 9903.05.01, an additional 25% ad valorem on articles the product of Brazil, effective for goods entered on or after 12:01 a.m. ET on July 22, 2026, with exemptions at headings 9903.05.02 through 9903.05.09.

Everything in this guidance is already reflected in the API. One exemption is intentionally not applied automatically: heading 9903.05.02 covers goods that were already in transit before July 22 and entered before July 29, 2026. That test depends on a specific shipment's loading and entry dates, not on the tariff code and country of origin, so the API reports the full duty and leaves the in-transit claim to the filer. That window has now closed in any case.

Government notice No rate change CBP CSMS

CSMS # 69290648 - Information: Quota Bulletin 26-402 2027 Cotton Note 6

a tariff-rate quota bulletin covering opening dates and quantity allocation, which is outside the modeled scope of duty rates.

CBP published Quota Bulletin 26-404 for the 2027 cotton quota under Chapter 52 Additional U.S. Note 8. The quota period runs August 1, 2026 through July 31, 2027.

Quota bulletins set quantity limits and opening procedures. They do not change any duty rate, so nothing in the API moves. Quota quantities and fill status are outside what this API models.

Government notice No rate change CBP CSMS

CSMS # 69290703 - Information: Quota Bulletin 26-403 2027 Cotton Note 7

a tariff-rate quota bulletin covering opening dates and quantity allocation, which is outside the modeled scope of duty rates.

CBP published Quota Bulletin 26-403 for the 2027 cotton quota under Chapter 52 Additional U.S. Note 7. The quota period runs August 1, 2026 through July 31, 2027.

Quota bulletins set quantity limits and opening procedures. They do not change any duty rate, so nothing in the API moves. Quota quantities and fill status are outside what this API models.

Government notice No rate change CBP CSMS

CSMS # 69290728 - Information: Quota Bulletin 26-404 2027 Cotton Note 8

a tariff-rate quota bulletin covering opening dates and quantity allocation, which is outside the modeled scope of duty rates.

CBP published Quota Bulletin 26-402 for the 2027 cotton quota under Chapter 52 Additional U.S. Note 6 (cotton, rough or harsh). The quota period runs August 1, 2026 through July 31, 2027, opening Monday, August 3, 2026, with proration if the limit is exceeded at opening.

Quota bulletins set quantity limits and opening procedures. They do not change any duty rate, so nothing in the API moves. Quota quantities and fill status are outside what this API models.

Government notice No rate change Section 301 Federal Register

Notice of Action: Brazil's Acts, Policies, and Practices Related to Digital Trade and Electronic Payment Services; Unfair, Preferential Tariffs; Anti-Corruption Enforcement; Intellectual Property Protection; Ethanol Market Access; and Illegal Deforesta...

this is the source already modeled: Brazil Section 301, heading 9903.05.01, +25% on all products of Brazil, effective 2026-07-22, live in production since 2026-07-23.

USTR's Notice of Action imposes an additional 25% ad valorem on all products of Brazil under heading 9903.05.01, U.S. note 50, effective 12:01 a.m. ET on July 22, 2026, with exemptions at headings 9903.05.02 through 9903.05.09.

This action is already reflected in the API and is the pinned source for the Brazil Section 301 regime. Verified against live production on 2026-07-29: 6909.19.50.95 / BR returns 4% base + 25%, and 6404.11.90 / BR returns 20% base + 25%, both alongside the separate forced-labor duty under note 52. The in-transit exemption at 9903.05.02 is deliberately not applied automatically, because it turns on when a specific shipment was loaded and entered rather than on the tariff code and origin.

Government notice No rate change Section 301 Federal Register

Action by the United States in the Investigation Under Section 301 of the Trade Act of 1974 of Brazil's Acts, Policies, and Practices Related to Digital Trade and Electronic Payment Services; Unfair, Preferential Tariffs; Anti-Corruption Enforcement; I...

the Presidential memorandum directing the Brazil Section 301 action; the operative duty is USTR's Notice of Action, already live as 9903.05.01 at +25% since 2026-07-22.

The Memorandum of July 15, 2026 directs the United States Trade Representative to take action in the Section 301 investigation of Brazil's acts, policies, and practices related to digital trade and electronic payment services, tariffs, anti-corruption enforcement, intellectual property, ethanol market access, and deforestation. It is the directing instrument; it sets no rate and names no tariff heading.

The duty itself comes from USTR's companion Notice of Action (91 FR 45516), which imposes an additional 25% on all products of Brazil under heading 9903.05.01, U.S. note 50, effective 12:01 a.m. ET on July 22, 2026. That measure is already live in the API. No change results from this memorandum.

Government notice No rate change Section 232 CBP CSMS

CSMS # 69271650 - New Validation for Import Adjustment Offset for Section 232 Duties for Automobile and Medium and Heavy-Duty Vehicle Parts to Deploy July 18, 2026 – ACE CATAIR Error Dictionary Updated

an ACE entry-summary validation and CATAIR error-code update for the Section 232 auto-parts import adjustment offset; no rate, no Chapter 99 heading, and the offset is granted per importer license rather than resolvable from HTS and origin.

On July 18, 2026 CBP deployed a new validation in the Automated Commercial Environment for the Section 232 import adjustment offset on automobile and medium and heavy-duty vehicle parts, and posted an updated CATAIR Error Dictionary (V51) with new error codes covering the auto-part credit.

This is an entry-filing control. It checks that an importer's Automobile License declaration carries a sufficient balance and that duty is not also claimed on the corresponding Chapter 99 line. The offset itself is allocated per importer license, not per HTS code and country of origin, so it changes no published duty rate and is not something a rate API can resolve. Rates returned for automobile and vehicle-part codes are unchanged.

Data change

UK auto parts now resolve at the 10% Section 232 cap (9903.94.32)

United Kingdom-origin automobile parts enumerated in HTSUS Chapter 99 U.S. note 33(j) now resolve to the UK 10% all-in tariff cap under heading 9903.94.32 (US-UK Economic Prosperity Deal, effective June 30, 2025; CBP CSMS #65475725; 90 FR 27851), replacing the global 25% auto-parts lane (9903.94.05) for these codes. Previously these UK parts were returned at the global 25% rate, overstating the total duty by up to 17.5 percentage points (e.g. 8708.10.30.20 GB: 27.5% before, 10% now). The cap covers the 267 subheadings enumerated in subdivision (j), including the 8708 parts series, specific 8706/8707 chassis and body codes, tires (4011), and motor-vehicle seats (9401.20). Codes outside the UK list, such as 8706.00.03, correctly remain on the global lane. The certification-based lane 9903.94.33 (note 33(q)) is not modeled. Rates for all other origins are unchanged.

Government notice No rate change Federal Register

Continuation of the National Emergency With Respect to Hostage-Taking and the Wrongful Detention of United States Nationals Abroad

renewal of a national-emergency declaration; imposes no tariff or duty change.

The President renewed the national emergency on hostage-taking and wrongful detention of U.S. nationals. This is a foreign-policy authority renewal with no tariff or duty-rate effect, so no rates in our data change.

Government notice No rate change Federal Register

Continuation of the National Emergency With Respect to Significant Transnational Criminal Organizations

renewal of a national-emergency declaration; imposes no tariff or duty change.

The President renewed the national emergency on significant transnational criminal organizations. This is a foreign-policy authority renewal with no tariff or duty-rate effect, so no rates in our data change.

Government notice No rate change Section 232 CBP CSMS

CSMS # 69252300 - GUIDANCE: Section 232 Copper Smelt and Cast Reporting Requirements

new ACE country-of-smelt/cast reporting fields for copper under Proclamation 11021; introduces no new duty rate or Chapter 99 measure.

CBP added new entry-reporting fields (country of smelt, country of cast) for certain copper classifications, effective July 30, 2026. This is a data-collection and filing requirement, not a rate change; the Section 232 copper duties themselves are unchanged.

Government notice No rate change CBP CSMS

CSMS # 69247555 - Notice from the U.S. Fish and Wildlife Service regarding Final Rule Amending 50 CFR Part 10 Shellfish Definition and Updated Tariff Flagging

Fish & Wildlife final rule updates a regulatory definition and tariff flagging for shellfish; no duty-rate change.

A U.S. Fish & Wildlife final rule updated the shellfish definition and related tariff flagging. No duty rates change.

Government notice No rate change Federal Register

Adjusting Imports of Commercial Aircraft, Jet Engines, and Aircraft and Engine Parts Into the United States

Proclamation 11040 makes a Section 232 finding on commercial aircraft/engines/parts and directs negotiations and monitoring; it imposes no rate, names no HTS, and sets no effective date.

Proclamation 11040 makes a Section 232 national-security finding on commercial aircraft, jet engines, and parts, and directs trade negotiations. It imposes no new duty and names no HTS codes, so no rates change today. We will flag it if a follow-on action sets rates.

Government notice No rate change CBP CSMS

CSMS # 69239974 - Harmonized System Update (HSU) 2615

Harmonized System Update; HTS code changes are ingested automatically by the USITC scrape, no manual data change.

CBP deployed Harmonized System Update 2615. HTS code additions and edits from these updates are picked up automatically by our data pipeline.

Data change

88 word-only rate texts re-read as structured references

Ninety headings express their duty entirely in words, with no number anywhere in the rate
text. Our internal check for unread rates required the text to contain a digit, so these
were never counted and never fixed. That filter has been removed.

Eighty-eight of the ninety now resolve to a structured reference recording which heading,
subheading, note or related article the duty defers to. No rate was invented, and nothing
is followed on your behalf.

Across the schedule, 243 duty rows now carry structured components, constraints or a
reference target. Four remain unread, and say so.

API change

Headings that state their rate in words now return a pointer

Some headings never state a number. They tell you to look somewhere else:

* `8206.00.00.00` (tool sets) — "the rate of duty applicable to that article in the set
subject to the highest rate of duty"
* `6103.22.00` (ensembles) — "the rate applicable to each garment in the ensemble if
separately entered"
* `9110.11.00.00` (watch movements) — "the rate applicable to the complete, assembled
movement"
* `9005.90.40.00` (optical parts) — "the rate applicable to the article of which it is a
part or accessory"

These used to come back as `rate_type: "unparsed"`, with the sentence in `raw_rate` and
nothing a program could act on. They are now `rate_type: "reference"` and carry
`base_tariff.refers_to`, alongside a `BASE_RATE_REFERENCE` warning,
`summary.base_rate_known: false` and a confidence of 0.5.

Eight pointer kinds are now recognised:

* `set_highest` — the highest-rated article in the set
* `ensemble_component` — each garment, rated as if entered separately
* `parent_article` — the article of which this is a part or accessory
* `assembled_movement` — the complete, assembled movement
* `absence_of_heading` and `absence_of_subheading` — the rate that would apply without it
* `heading` — a named heading, for example `{"targets": ["2009"]}`
* `note` — a named U.S. note, for example `{"note": "U.S. note 3", "basis": "repair_value"}`
* `self_subheading` — this subheading's own rate, optionally with `delta_percentage`,
`plus_percentage`, or `originating_in` for a trade-agreement rate

We record the pointer. We do not follow it. Resolving "heading 2009" on your behalf would
mean choosing one of its children for you, which is a classification decision, not a rate
lookup.

88 duty rows moved from unparsed to reference. Four rows remain unparsed across the whole
schedule: the drawback clauses of `9801.00.70` and `9801.00.80`, which genuinely state no
rate.

Data change

201 base duty rates re-parsed from the USITC source text

Duty rows whose rate text we could not previously read have been re-parsed through the
current grammar and now carry structured components, constraints or a reference target.

No rate value was invented. Every component is derived from the verbatim USITC text, and
any rate that could not be read in full is still reported as unreadable rather than
partially. Where a rate depends on something only the importer knows, we publish the terms
and decline to total them.

Ten watch and clock headings had been storing only the first two terms of a three-term
rate, which under-reported their duty. They now carry all three terms and are marked as
not machine-totallable.

API change

Compound duties no longer drop a term, and 201 rates now parse

Two correctness fixes and a large coverage improvement.

A duty carrying both a percentage and a per-unit component was classified from a
denormalised `compound_rate` flag rather than from the components themselves. When a
backfill set the components without the flag, the rate was demoted to `specific` and its
ad valorem side was silently dropped. Thirteen headings were affected, including
`9606.21.40.00` (buttons), whose rate is 4.6% plus 0.3 cents per line per gross.

Separately, ten watch and clock headings had been storing only the first two terms of a
three-term rate, which under-reported their duty.

The rate parser gained coverage for rate shapes it had always refused:

* Chapter 99 special-column rates qualified by a trade program, such as "$1.41/kg (PA)".
* Missing unit aliases: per metre, per linear metre, per pack, per article, per jewel,
per line per gross, per thousand pins.
* Rates with three or more terms, and rates charged on a metal content, a component of the
article, the fair retail value or the cost of repairs.
* The polarimeter-degree sugar formulas of Chapter 17, including their floors.
* Cross-references to another heading, subheading or U.S. note.
* Damage introduced by the source extraction, such as a soft-hyphen break inside a word.

Duties whose rate text contains a number and which we could not parse fell from 203 to 2.
A further 90 headings state their rate in words alone, with no number at all; those are
covered in V.1.0.7.

API change

Unreadable base duties are no longer reported as 0%

When a base duty could not be parsed, the API returned
`rate_type: "ad_valorem", percentage_component: null`, and `summary.notes` said
"Base duty is 0%" alongside `confidence.score: 1.0` and an empty `warnings` array. Any
client that reads a null percentage as zero computed a duty-free base. Our own AI tools
rendered those headings as "Free".

This affected 91 general-column headings, including beet sugar, and the lead, molybdenum,
tungsten and magnesium ores.

A base duty that is not a plain number now says so, on every endpoint including
`resolve_batch`:

* `summary.base_rate_known: false` — `applicable_ad_valorem_rate` excludes the base duty
and is a lower bound.
* `warnings[]` carries one of `BASE_RATE_UNPARSED` (we could not read it),
`BASE_RATE_NOT_CALCULABLE` (we read it but it needs inputs only you hold) or
`BASE_RATE_REFERENCE` (it defers to another heading or note), each with the source text
and, where relevant, `inputs_required` or `refers_to`.
* `confidence` gains a fourth factor, `base_rate`, which drops the score to 0.5.

A specific duty is no longer described as "Base duty is 0%" either. A rate of 68 cents per
head has no ad valorem component, but it is not a zero duty, and the note now says so.

`applicable_ad_valorem_rate` is unchanged in shape and remains a number.