Allocating Duty And Tariffs Separately From Freight By HTS Code

Metricuno
August 3, 2026
7 min read
Allocating Duty And Tariffs Separately From Freight By HTS Code — Duty is a % of declared value per HTS code, not a freight key. Here's how to allocate duty per SKU on top of per-unit freight for mixed containers.
Quick answer

Freight allocates by weight or volume; duty doesn't. Layer duty per SKU using each item's HTS rate and declared value so mixed-category containers land at the right cost.

Quick answer

Freight allocates by weight or CBM across a container; duty does not. Duty is an ad-valorem percentage of each SKU's declared value under its own HTS code, so you calculate it per SKU independently and then add it on top of the per-unit freight number. Never fold duty into the freight allocation key — mixed-category containers (apparel + accessories + hardgoods) will land wrong by 5-20% per SKU.

Definition

Allocating duty and tariffs separately from freight by HTS code

Calculating duty per SKU as a percentage of declared value under its HTS code, then layering it onto per-unit freight — not allocated by weight or volume.

Inbound freight is a shared cost you have to split across SKUs using a key like weight, cubic meters, or units. Duty is not shared — every SKU carries its own HTS classification and its own ad-valorem rate, applied to that SKU's declared customs value. In a mixed-category container, a $6 pair of socks (HTS 6115, ~13.5%) and a $60 aluminum water bottle (HTS 7615, ~3%) attract completely different duty per unit even if they weigh the same and take the same cube.

Getting this right means computing duty per SKU first, then adding per-unit freight, then adding brokerage, MPF, and HMF — in that order, without cross-contaminating the keys.

Most landed-cost sheets get freight right and duty wrong. The freight tab uses a clean weight-or-CBM split; the duty tab reuses the same key, applies a blended rate, and calls it done. That shortcut works on single-category containers and quietly destroys margin the moment you mix apparel with hardgoods.

Why duty doesn't follow the freight key

Ocean freight is a physical cost — the carrier charges you for the space and mass you occupy. Splitting a $4,200 container charge across SKUs by CBM or chargeable weight is defensible because that's literally how the carrier priced it.

Duty is a legal cost. CBP charges a percentage of each SKU's declared value under the specific HTS code you classify it as. Two SKUs that ship in the same carton, weigh the same, and cube the same can carry duty rates from 0% to 32% depending on chapter, country of origin, and any Section 301 or 232 layer that applies.

The blended-rate trap

Applying a single container-level blended duty rate (total duty ÷ total FOB, then multiplied per SKU) understates duty on high-rate items and overstates it on low-rate ones. Your apparel SKUs look artificially profitable and your accessories look artificially thin — you'll over-invest in the wrong catalog and starve the actual winners.

How to detect the leak in your current sheet

Pull your last three containers and check one thing: does the landed-cost column show the same duty rate for SKUs from different HTS chapters? If a knit top (Chapter 61) and a leather belt (Chapter 42) show the same effective duty percentage, you're allocating duty by freight key instead of by HTS.

Second signal: reconcile your sheet's total duty against the CBP 7501 entry summary. If they match at the container level but individual SKU CM looks off versus the P&L, the allocation is wrong even though the total is right. This is where HTS misclassification quietly overstates contribution margin on apparel — the total ties out, but per-SKU decisions get made on bad numbers.

The correct allocation sequence

Work SKU by SKU, not container-level. For each SKU: declared customs value × HTS duty rate = duty per unit. If the SKU is subject to Section 301, add that rate to the base HTS rate before multiplying — 301 is layered, not substituted. Country of origin matters here: same HTS code can carry two duty rates if you dual-source, so keep origin as a separate field on the SKU record.

Then separately allocate freight per unit using CBM or chargeable weight across the whole container. Add brokerage per line, add MPF (0.3464%, capped) and HMF (0.125%) as an ad-valorem layer on customs value, and only now sum to landed cost. The order matters because MPF and HMF are percentages of customs value, not of freight-inclusive cost.

Worked mini-example

Container has 2,000 knit tops (HTS 6109, 16.5%, $8 FOB) and 500 aluminum bottles (HTS 7615, 3%, $12 FOB), both from Vietnam. Freight per unit by CBM: tops $0.42, bottles $1.10. Duty per unit: tops $8 × 16.5% = $1.32; bottles $12 × 3% = $0.36. Landed cost per unit (before MPF/HMF/brokerage): tops $9.74, bottles $13.46. A blended 12.8% duty rate applied by freight key would have put duty at ~$1.02 on both — overstating bottle CM by $0.66/unit and understating top CM by $0.30/unit.

What to do with the fixed numbers

Once per-SKU duty is clean, three actions usually pay for the whole exercise. First, re-rank your catalog by true CM and shift media spend toward SKUs the blended rate was hiding. Second, review HTS classifications on your top 20 volume SKUs — a single chapter change on an apparel bestseller can move duty 5-10 points, and first-sale valuation on factory price can trim another 10-20% off the dutiable base.

Third, model the sensitivity. If a Section 301 hike lands next quarter, you now have the per-SKU rate table to recompute landed cost in an hour instead of a week — and you can decide which SKUs to reprice, which to absorb, and which to file for duty drawback on export volume without blowing your CAC ceiling. That's the whole point of separating the two allocations: duty becomes a lever you can pull per SKU, not a fixed line you carry.

Frequently asked

Frequently asked questions

Because HTS rates vary by 0-32% across chapters, a blended rate systematically overstates margin on high-duty SKUs and understates it on low-duty ones. Total duty ties out, but every per-SKU decision — pricing, media allocation, reorder — gets made on wrong numbers.

None of those. Duty is a percentage of each SKU's declared customs value under its own HTS code, calculated per SKU independently. Weight, CBM, and units are freight allocation keys and shouldn't touch the duty calculation.

They're ad-valorem layers applied to customs value, not to freight-inclusive cost. Calculate them per SKU right after duty (MPF at 0.3464% capped per entry, HMF at 0.125% on ocean cargo) and before you sum to landed cost. Most sheets skip this layer entirely.

Section 301 is additive, not a replacement. If a SKU has a 7.5% base HTS rate and falls under a 25% Section 301 list, the effective rate is 32.5% of customs value. Keep base and 301 as separate fields on the SKU record so you can model changes independently.

Split it. Same HTS code can carry two duty rates depending on origin — e.g. Vietnam versus China with 301 layered on. Track country of origin at the receipt level, not the SKU master, and allocate landed cost per receipt lot.

First-sale lets you declare the factory price rather than the vendor invoice price as customs value, which shrinks the base you multiply by the HTS rate. On a 16.5% apparel SKU with a 20% vendor markup, first-sale trims duty per unit by roughly 3.3 points of FOB — real money at container volume.

Not the forward allocation — you still land inventory at full duty. Drawback refunds should be booked against the original SKU's contribution margin retroactively, not as this quarter's revenue, so your CM history reflects the true economics of exported units.

Sub-$800 direct-to-consumer parcels that used to enter duty-free now carry the same HTS-based duty as bulk imports. You need to recompute landed cost on those SKUs with the full HTS rate applied per shipment, and the CAC math changes materially — model it before the policy shift lands.

At least annually, and any time you launch a new product category or change materials. A single chapter reclassification on a top-20 SKU can move duty 5-10 points, and misclassifications compound silently — the total on the 7501 still ties, but per-SKU margin drifts.

Yes. Freight-key changes (chargeable weight instead of CBM, per-parcel instead of per-container) but the duty logic is identical: percentage of declared value per HTS code, allocated per SKU, added on top of freight per unit.

See Metricuno on your data

Bring your stack — Google Analytics, Stripe, a CRM, anything — and we'll walk through the metric tree that turns your funnel into one number.