Landed cost for Shopify
Price your Shopify products
on landed cost, not supplier cost
The unit cost your supplier quotes is not the cost of the product you actually sell. By the time a SKU is on your Shopify shelf, it has absorbed freight, duty, brokerage, and a handful of fees that most merchants discover the hard way. Here is how to build a landed-cost model you can price against — and get the duty half right on the first try.
The landed-cost formula
Five components, one number per SKU
Landed cost is not complicated in theory. It is complicated in practice because four of the five components are fixed or easy to quote, and one — duty — depends on a classification call that most merchants skip. Here is what each piece looks like.
Landed cost per unit = supplier cost + freight share + duty + brokerage & inland + insurance
Supplier unit cost (FOB)
What the supplier charges per unit at their dock. Easy number — this is usually on the purchase order. If you bought EXW instead of FOB, add origin inland to this column so freight math starts from the port.
International freight (allocated per unit)
Divide the total container or air-freight cost across the units in the shipment. For mixed-SKU containers, allocate by cubic meters or weight, not by unit count — otherwise small SKUs subsidize large ones.
Duty — the part most models get wrong
Duty is the customs value multiplied by the rate tied to the HTS code and country of origin, plus any active Section 301, Section 232, or AD/CVD overlay. A 25% Section 301 surcharge on a 6% base rate turns a clean line into a 31% line. This is where ImportPilot earns its keep — guided classification, the right rate stack, and a rationale you can defend.
Brokerage, MPF, HMF, inland freight
Customs brokerage fee, Merchandise Processing Fee, Harbor Maintenance Fee if it's ocean, and inland delivery from port to warehouse. Usually allocated per shipment and divided across units.
Insurance (if you buy it)
Cargo insurance premium divided across the shipment. Small number per unit, but worth a line — especially for high-value or fragile products.
Where ImportPilot fits in your model
The duty line, done properly
We do not replace your landed-cost spreadsheet. We replace the guess in the duty column with a number that is backed by a real classification. You plug it into your model and the rest of the math stays where it lives today.
Classify your full catalog
Upload a Shopify CSV, classify every row, export an enriched file with HTS codes, country of origin, base duty, and overlay rates. Drop it straight into your landed-cost sheet.
Duty that reflects origin
Change the country of origin on a saved product and the duty stack recomputes. Useful for modeling a sourcing switch before you commit to it.
Alerts when inputs change
When Section 301 lists update or base rates move, affected products get flagged. Your landed-cost model gets re-run before the next shipment clears, not after.
Rationale you can share
Every duty number comes with an HTS code, a rationale, and a breakdown. Share it with your finance lead, your broker, or anyone asking how you got that number into the cell.
Get the duty half of landed cost right
Classify one SKU free. See the duty stack. Plug it into your sheet.
Landed cost FAQ
What is landed cost for a Shopify product?
Landed cost is the total cost of getting one unit of a product onto your Shopify pick-and-pack shelf, ready to sell. It includes the supplier unit cost, international freight, duty, customs brokerage, insurance, and any inland delivery from port to warehouse. If you price off the supplier unit cost alone, you are not pricing the product you actually sell — you are pricing the ghost of it.
How do I calculate landed cost per SKU?
For each SKU: take the supplier unit cost, add a per-unit share of ocean or air freight, add the duty based on the HTS code and country of origin, add a per-unit share of brokerage and inland freight, and add insurance if you buy it. ImportPilot handles the duty half of that calculation — the trickiest part — so you can plug a defensible number into your spreadsheet model.
Why is duty the hardest part of landed cost to get right?
Because it depends on two variables most Shopify tools ignore: the HTS classification (which chapter and subheading the product falls under) and the country of origin (which decides which overlays apply). Freight is a quote. Brokerage is a line item on an invoice. Duty is an interpretation — and interpretations need rationale if you want the number to hold up.
Should I bake duty into the product cost or track it separately?
Bake it in for pricing decisions. Track it separately in your accounting for tax and COGS reporting. The Shopify retail price you publish should reflect landed cost; the books should still show the components so you can analyze margin shifts when tariffs move.
What happens to landed cost when Section 301 rates change?
If your affected SKUs are in ImportPilot, they get flagged when a 301 list changes. You see the new duty on each affected product and can decide whether to absorb the change, re-price, or switch sourcing. If your catalog is not tracked anywhere, you find out when the next invoice clears — usually too late to adjust Shopify prices without taking a margin hit on inventory in flight.
Keep reading
Related guides
Add HS codes to Shopify products
Bulk classification and Shopify CSV export so every variant has a defensible code.
Read guideCountry of origin for Shopify imports
Origin is the single biggest lever on the duty component of your landed cost.
Read guideWhy is my Shopify duty wrong?
The mistakes that break landed-cost models after the first shipment clears.
Read guide