How to Calculate Landed Cost Per SKU on Shopify (Spreadsheet + Formulas)
Published 2026-07-14 · by the TariffFox team
Your Shopify product cost fields show what you paid the supplier. They almost never show what that unit actually cost you by the time it hit your warehouse shelf. Import duties, freight, insurance, customs brokerage fees — every one of those line items eats into the margin you thought you had. Calculating landed cost per SKU is how you find out what you're really working with before you set a price, not after you've already sold a thousand units at the wrong number.
This guide walks through the exact components, the formulas, and a spreadsheet structure you can copy today.
What Is Landed Cost Per SKU (and Why Shopify Doesn't Calculate It for You)
Landed cost is the total cost of getting one unit of a product to the point where it's ready to sell — including every expense between the supplier's factory floor and your fulfillment center. Shopify's native cost-per-item field is a single number you type in manually. It doesn't pull freight invoices, duty rates, or brokerage fees. That gap is your problem to solve.
The core formula is straightforward:
Landed Cost = Unit Cost + Inbound Freight (per unit) + Import Duty (per unit) + Customs Brokerage (per unit) + Insurance (per unit) + Other Fees (per unit)
The complication is that most of those costs arrive as lump-sum invoices — one freight bill for an entire shipment containing dozens of SKUs in varying quantities. You have to allocate them.
Step 1 — Break Down Every Cost Component
Before you open a spreadsheet, list every cost category that applies to your shipments. Common ones include:
- Unit cost (ex-works or FOB price): What you paid the supplier per unit.
- Inbound freight: Ocean, air, or trucking from origin to your country's port or warehouse. This is typically quoted per container or per kilogram/CBM.
- Import duties & tariffs: Calculated as a percentage of the customs value (usually CIF — cost + insurance + freight). Rates vary by HTS/HS code and country of origin.
- Customs brokerage: The fee your broker charges to clear the shipment. Often a flat fee per entry, sometimes a percentage.
- Port and terminal handling fees: ISF filing, port congestion surcharges, drayage.
- Insurance: Typically 0.1%–0.5% of cargo value, depending on commodity and carrier.
- Last-mile or inbound delivery: Trucking from port to your 3PL or warehouse.
- Inspection or compliance fees: Lab testing, certificates of conformity, etc.
Not every shipment has all of these. Start with what applies to yours and add columns as needed.
Step 2 — Choose an Allocation Method
When a cost covers the whole shipment, you need to split it across SKUs. There are three practical methods:
By Unit Count
Divide the total cost by the total number of units in the shipment, then multiply by units per SKU. Simple, but it unfairly burdens small, light items if they share space with heavy ones.
By Weight or Volume (CBM)
Allocate freight costs in proportion to each SKU's weight or cubic volume. This is the most accurate method for freight because carriers price by weight or dimensional weight.
By Value (Cost of Goods)
Allocate costs in proportion to each SKU's total purchase value in the shipment. Often used for duties (since duty is a % of value anyway) and for insurance.
In practice, most merchants use a hybrid: weight/CBM for freight, value for duties and insurance, and unit count for flat brokerage fees.
Step 3 — Build the Spreadsheet
Here's a structure that works for most Shopify merchants importing goods. Set up one tab per shipment and a summary tab that rolls up into your Shopify cost update file.
Shipment Input Tab — Columns
| Column | Field | Notes |
|---|---|---|
| A | SKU | Match exactly to Shopify variant SKU |
| B | Product Name | For readability |
| C | Units in Shipment | Qty of this SKU in this PO |
| D | Unit Cost (supplier) | Ex-works or FOB price in your currency |
| E | Total SKU Value (=C×D) | Used for value-based allocation |
| F | Weight per Unit (kg) | Used for freight allocation |
| G | Total SKU Weight (=C×F) | Used for freight allocation |
| H | Duty Rate (%) | From your HTS code lookup |
| I | Freight Allocated (per unit) | Formula — see below |
| J | Duty Per Unit | Formula — see below |
| K | Brokerage Per Unit | Formula — see below |
| L | Insurance Per Unit | Formula — see below |
| M | Other Fees Per Unit | Manual or formula |
| N | Landed Cost Per Unit | =D+I+J+K+L+M |
Key Formulas (assuming Row 2 is your first data row)
Freight per unit (weight-based):
I2 = (G2 / SUM($G$2:$G$100)) * TotalFreightCost / C2
Duty per unit (value-based, on CIF value):
J2 = ((D2 + I2) * H2)
This applies the duty rate to the unit cost plus freight (a common customs valuation basis). Check with your broker — some countries use FOB value only.
Brokerage per unit (unit-count-based):
K2 = TotalBrokerageFee / SUM($C$2:$C$100)
Insurance per unit (value-based):
L2 = (E2 / SUM($E$2:$E$100)) * TotalInsuranceCost / C2
Landed cost per unit:
N2 = D2 + I2 + J2 + K2 + L2 + M2
Name your total-cost inputs (TotalFreightCost, TotalBrokerageFee, etc.) in a separate "Shipment Summary" block at the top or on a dedicated input tab. That way, updating one number recalculates everything automatically.
Step 4 — Push Landed Cost Back Into Shopify
Once column N is populated, you have two options:
- Manual CSV update: Export your Shopify products CSV, paste in the landed cost values to the "Variant Cost" column, and re-import. Tedious for large catalogs, but it works.
- Bulk update via an app: If you're managing a large or frequently changing catalog — especially one exposed to shifting tariff rates — a tool like TariffFox can scan your catalog, apply duty calculations at the variant level, rank SKUs by margin impact, and push repricing in bulk without a manual CSV cycle.
Either way, the goal is to make sure the "Cost per item" field in Shopify reflects true landed cost, not just supplier invoice price. Your margin reports, pricing decisions, and profitability analysis all depend on it.
Common Mistakes to Avoid
- Using FOB cost as your only cost input. FOB already excludes freight and insurance from the seller's responsibility — you still owe those.
- Forgetting currency conversion timing. If you pay your supplier in USD but operate in GBP or AUD, lock in the exchange rate at invoice date, not today's rate.
- Applying one duty rate to an entire shipment. Different SKUs often fall under different HTS codes with different duty rates. Especially watch for product bundles or kits — bundled items may classify differently than their components.
- Ignoring tariff changes mid-year. Duty rates change — sometimes with very little notice. Your Q1 landed cost calculation may be wrong by Q3 if a new rate schedule takes effect.
- Only running the calculation once. Freight rates fluctuate. Recalculate per shipment, not per product launch.
A Quick Sanity Check on Margins
Once you have true landed cost, plug it into a simple margin check:
Gross Margin % = ((Selling Price − Landed Cost) / Selling Price) × 100
For most physical product businesses, a gross margin below 30% on individual SKUs starts to create problems when you layer in platform fees, returns, and marketing spend. That threshold varies by category — consumer electronics typically run thinner, apparel and beauty typically run higher — but landed cost is the foundation of every honest margin number.
Frequently Asked Questions
What is the difference between landed cost and COGS?
Landed cost is the total cost to get a product to your warehouse, ready to sell. COGS (cost of goods sold) is an accounting figure that typically includes landed cost plus any additional direct costs (packaging, kitting, etc.) incurred before the sale. In many Shopify businesses they're treated as the same number, but strictly speaking, COGS can be slightly higher.
How do I find the correct duty rate for my products?
Look up your product's HTS (Harmonized Tariff Schedule) code on your country's official customs database — in the US, that's the USITC tariff database (hts.usitc.gov). Your customs broker can also classify products for you. Rates depend on both the product classification and the country of origin.
Can I automate landed cost calculations in Shopify?
Shopify doesn't have native landed cost calculation built in. You can automate parts of it with spreadsheet formulas connected to a regular CSV import, or use a third-party app that integrates with your catalog and applies per-variant cost calculations. Full automation — including live duty rate feeds — typically requires an app or a custom integration.
How often should I recalculate landed cost per SKU?
At minimum, recalculate per purchase order or shipment, since freight rates and quantities change. If you operate in a category affected by active trade policy changes (electronics, steel, textiles, consumer goods from certain origins), check duty rates at least quarterly. Even a 2–3 percentage point duty change can meaningfully shift your margin on high-volume SKUs.
→ View TariffFox on the Shopify App Store