Tariff playbook · repricing

How to reprice after a tariff increase (the exact formula)

A duty revision does not announce itself in your Shopify reports. It quietly raises your landed cost, and a SKU that earned 40% last week starts shipping at a loss this week. Here is the exact math to recover your margin, the way to spot which products went underwater, and how to do it across a whole catalog instead of one row at a time.

7 min read Includes the worked formula Every rate cited

First, the one number that actually moved

When a tariff goes up, your retail price did not change and your supplier invoice did not change. What changed is the duty you pay at the border, which flows into landed cost: the all-in cost to get one unit onto your shelf, duty and freight included. Reprice against landed cost, not against the factory price, or you will under-recover every time.

The total duty rate on a single item is usually a stack of separate programs, not one figure. A China-origin good can carry its base HTS duty, a Section 301 add-on, and a Section 232 metals duty all at once. The first job is to add them into one total duty rate, then push that through two short formulas.

  Step 1 · landed cost
landed = unit cost × (1 + total duty rate) + freight per unit
  Step 2 · current margin (is it underwater?)
margin % = (price landed) ÷ price
  Step 3 · the recovery price
recovery price = landed ÷ (1 target margin)

Dividing by (1 − target margin) is the part people get wrong. Adding 40% on top of landed cost gives you a 28.6% margin, not 40%. To hold a 40% margin you divide by 0.60. That single division is the difference between recovering your margin and quietly bleeding it.

A worked example, end to end

Take a rechargeable product built around a lithium-ion battery pack, imported from China, sold for $25, costing you $10 a unit with $1 of freight. Your target margin is 40%. Overnight, the duty stack on HS 8507.60 lands at 43.4% (base 3.4% on this code, plus a Section 301 add-on, plus the provisional Section 122 surcharge). Watch what happens.

Li-ion battery pack · China origin
HS 8507.60 · target margin 40%
Unit cost (ex works)$10.00
Freight per unit$1.00
Total duty rate3.4% base + 25% Sec. 301 + 15% Sec. 12243.4%
Landed cost10 × 1.434 + 1$15.34
Current retail price$25.00
Margin at the old price(25 − 15.34) ÷ 25 = 38.6%38.6%
Recovery price to hold 40%15.34 ÷ 0.60$25.57

The product is now underwater against your own target: it earns 38.6% where you require 40%. The fix is not dramatic. Move the price from $25.00 to $25.57 and the 40% margin is restored. The hard part was never the arithmetic. It was knowing, on the morning it happened, that this specific SKU crossed the line at all.

Section 122 is provisional. The 15% surcharge used above is litigated (a US trade court struck it down and it is under appeal) and is set to expire 2026-07-24. It does not stack on top of Section 232, and it is waived for USMCA-qualifying Canada and Mexico goods. If it lapses, this SKU's duty stack drops and the recovery price falls with it, which is exactly why you reprice off a live duty figure rather than a number you memorised last quarter.

Don't do this math 400 times by hand

MarginGuard reads your HS codes, origins, and unit costs, then runs the exact per-SKU duty stack for you. Find every underwater product in one pass.

Scan your store free →

Which duties might be in your stack

You cannot reprice correctly until you know which programs apply to each item. The base duty comes from the exact HS code. The add-ons depend on origin and product category. Here are the live programs as of June 2026, with sources, so you can confirm rather than guess.

ProgramWho it hitsAdd-on rateNotes
Base / MFN duty All imports Varies Set per exact HS code in the USITC HTS schedule. Coffee (0901) is Free; a Li-ion battery (8507.60) is 3.4%. Look up your own code.
Section 301 China origin only +25% List 1/2/3 default. Carve-outs run higher: EVs +100%, solar +50%, semiconductors +50%, syringes +100%, Li-ion batteries +25%, permanent magnets +25%, natural graphite +25%.
Section 232 All countries +25% to +50% Steel (ch. 72–73) +50%, aluminum (ch. 76) +50%, copper (ch. 74) +50%, automobiles (8703) +25% (UK 10%, EU/Japan 15%). Applies to full customs value.
Section 122 Global (provisional) +15% Flat surcharge, litigated and set to expire 2026-07-24. Does not stack on Section 232; waived for USMCA-qualifying Canada/Mexico goods. Treat as temporary.
IEEPA / "reciprocal" 0 / void Struck down by the courts and currently void. Do not build any reciprocal-tariff number into your price.

Rates verified 2026-06-21. The base duty always varies by the exact HS code, so confirm yours in the HTS before repricing.

How to find which SKUs went underwater

The tariff change tells you a rate moved. It does not tell you which of your products it sank. To find the underwater SKUs, you work from the rate back into your own catalog:

  1. Map each SKU to its HS code and origin. The duty stack is driven by these two fields. A product imported from China and one imported from Vietnam under the same HS code can land at completely different costs.
  2. Recompute the total duty rate for each affected SKU using the live programs above. Only the items whose code or origin touches a changed program need new math.
  3. Recompute landed cost with Step 1, then recompute margin with Step 2.
  4. Flag every SKU whose new margin fell below your target. Those are your underwater products. Everything still above the line you can leave alone.
  5. Generate the recovery price with Step 3 for each flagged SKU, and decide product by product whether to lift the price, absorb the hit, or change the supplier.

The catch is scale. A revision to one Section 301 list can touch hundreds of HS codes at once. Filtering 600 SKUs by hand to find the 14 that crossed your margin line is exactly the kind of work that gets skipped until a quarter-end report shows the damage.

Doing it across a whole catalog

The single-SKU formula does not change at scale, but the workflow does. Across a catalog you want a repeatable pass, not a one-off spreadsheet:

  • Hold cost, freight, HS code, and origin per SKU in one place so a rate change can be applied uniformly instead of re-keyed.
  • Diff the duty schedules on a schedule — daily is reasonable, since revisions take effect on a stated date with little warning.
  • Only surface the crossings. You do not want a 600-row report; you want the handful of SKUs that fell below target since yesterday, with the recovery price already computed.
  • Keep it advisory. A repricing tool should hand you the number, never silently edit your live storefront. A wrong rate should cost nothing.

That is the entire job of MarginGuard. It stores the per-SKU inputs, diffs USITC HTS, Section 301, and the other live programs against your catalog every day, and emails you the morning a rate moves with the underwater SKUs and the exact recovery price for each. The formula on this page is the formula it runs — it just runs it on every product at once and computes the precise duty stack from your real HS codes, not an estimate.

See which of your SKUs are underwater right now

Point MarginGuard at your store and it computes the exact per-SKU duty and recovery price across your whole catalog. No edits to your live products, ever.

Scan your store free →
An honest note on these numbers

Every rate above is cited and was verified 2026-06-21, but tariff law moves. The base duty always varies by your exact HS code, so the example figures are illustrative, not your number. Section 122 is provisional — litigated and set to expire 2026-07-24 — so treat any duty stack that includes it as temporary. MarginGuard computes the exact per-SKU duty from your real codes and origins once installed; until then, confirm your own HS code in the USITC HTS before you change a price. This page is repricing guidance, not legal or customs advice.

Sources
  • Base / MFN duty by HS code — USITC HTS, 2026 Rev. 10 (hts.usitc.gov)
  • Section 301 China actions and carve-outs — USTR (ustr.gov/issue-areas/enforcement/section-301-investigations)
  • Section 232 steel, aluminum, copper, autos — Congressional Research Service IN12545 (congress.gov)
  • Section 122 surcharge, litigation and expiry — Skadden trade advisory (skadden.com)