In this article
Landed cost per unit is what one unit cost you once it was on your shelf: the supplier's price plus freight, duty and fees, divided by the number of units. Say a store buys 600 mugs at $8.00 each. The extra costs come to $942.00, which adds $1.57 per unit, so each mug lands at $9.57. At a $16.00 price, that moves the margin from 50.0% to 40.2%.
Why the supplier price is not your cost#
Every Shopify variant has a Cost per item field, and it holds one number. Shopify's profit reports read that number at the time of sale, and its help center calls the field static, so the reports show a point in time (Shopify help: profit reports, checked 14 Oct 2026). If that number is the supplier's price, your profit is overstated on every sale.
Here is the mistake in its plainest form. A shop prices everything at twice the supplier's price and believes it earns a 50% margin. Freight and duty were never added to the cost. The real margin is lower. Nobody sees it until the year-end numbers disagree with the bank, and by then a whole season of prices has gone out on the wrong cost.
A margin is the share of the price you keep after cost: (price minus cost) divided by price. Shopify's help center uses the same formula, with net sales in place of price. Only the cost changes, and landed cost is the cost that should go in.
One product, one shipment#
Start simple. One product, one freight bill.
| Cost line | How we get it | Amount |
|---|---|---|
| Goods | 600 units x $8.00 | $4,800.00 |
| Freight | From the carrier invoice | $540.00 |
| Duty | 6.5% of $4,800.00 (assumed rate and base) | $312.00 |
| Customs broker | From the broker invoice | $90.00 |
| Extra costs | $540.00 + $312.00 + $90.00 | $942.00 |
| Landed total | $4,800.00 + $942.00 | $5,742.00 |
| Landed cost per unit | $5,742.00 / 600 | $9.57 |
The same answer in two steps:
Extra cost per unit = 942.00 / 600 = 1.57
Landed cost per unit = 8.00 + 1.57 = 9.57
Now the margin. Say the mug sells for $16.00.
Supplier cost only: (16.00 - 8.00) / 16.00 = 0.500 = 50.0%
Landed cost: (16.00 - 9.57) / 16.00 = 6.43 / 16.00 = 40.2%
Per unit, the profit falls from $8.00 to $6.43, which is the $1.57 you added. Over 600 mugs that is $4,800.00 against $3,858.00, a difference of $942.00. It is exactly the extra costs, which gives you a check: your total profit should fall by the extra costs, no more and no less.
Several products, one freight bill: three answers#
Real shipments carry more than one product, and then the question is how to split a shared freight bill between products that differ in price, size and weight.
Take one $600.00 freight bill covering two products.
- Product A: 400 units at $5.00 each, 0.2 kg per unit. Goods value $2,000.00, weight 80 kg.
- Product B: 200 units at $20.00 each, 1.5 kg per unit. Goods value $4,000.00, weight 300 kg.
Totals: 600 units, $6,000.00 of goods and 380 kg.
By value: A = 600 x 2,000 / 6,000 = 200.00 B = 600 x 4,000 / 6,000 = 400.00
By weight: A = 600 x 80 / 380 = 126.32 B = 600 x 300 / 380 = 473.68
By units: A = 600 x 400 / 600 = 400.00 B = 600 x 200 / 600 = 200.00
| Basis | A share | A per unit | B share | B per unit |
|---|---|---|---|---|
| By value | $200.00 | $0.50 | $400.00 | $2.00 |
| By weight | $126.32 | $0.32 | $473.68 | $2.37 |
| By units | $400.00 | $1.00 | $200.00 | $1.00 |
One bill, three answers. Product B gets $2.00 a unit by value, $2.37 by weight and $1.00 by units. None of them is the right answer on its own. The right one is the basis that matches why the carrier charged you.
If the carrier priced the shipment by weight, split by weight. Product B is heavy, so it caused most of the freight. If the cost behaves like a percentage of price, such as insurance, split by value. Splitting by units fits only when the items are alike in size and price.
The full table: goods, freight and duty together#
Now add duty. Say the duty is 6.5% of each product's own goods value. That makes it $130.00 for A and $260.00 for B, $390.00 in total, with no allocation needed because it follows each product's value.
A: 2,000.00 x 0.065 = 130.00 B: 4,000.00 x 0.065 = 260.00
| Line | Goods + duty | Freight | Landed total | Per unit |
|---|---|---|---|---|
| A, freight by value | $2,130.00 | $200.00 | $2,330.00 | $5.83 |
| A, freight by weight | $2,130.00 | $126.32 | $2,256.32 | $5.64 |
| B, freight by value | $4,260.00 | $400.00 | $4,660.00 | $23.30 |
| B, freight by weight | $4,260.00 | $473.68 | $4,733.68 | $23.67 |
Check the total both ways. By value: $2,330.00 + $4,660.00 = $6,990.00. By weight: $2,256.32 + $4,733.68 = $6,990.00. Both equal goods $6,000.00 plus freight $600.00 plus duty $390.00.
The choice of basis moves the margin. Say A sells for $12.00 and B for $45.00.
| Product | Price | Margin at supplier cost | Margin, freight by value | Margin, freight by weight |
|---|---|---|---|---|
| A | $12.00 | 58.3% | 51.4% | 53.0% |
| B | $45.00 | 55.6% | 48.2% | 47.4% |
Using the supplier price, B looks almost as good as A, with 55.6% against 58.3%. Split freight by weight and B drops to 47.4% while A holds at 53.0%, and the whole gap exists because B is heavy, which is the reason to split by weight whenever the carrier charged by weight.
There is a cost to this. Weight-based splitting needs a weight for every product, from your supplier's carton data or from your own scale. If you do not have them, you have data entry to do before the method works. A value-based split is less accurate for heavy, cheap items, and needs nothing but prices.
Duty, and the value it is charged on#
We use a flat 6.5% above because the method is the point, not the rate. Duty rates, and the value they apply to, depend on your country and on the product. Some countries charge duty on the goods alone, and others charge it on goods plus freight and insurance, so the only safe source is the paperwork your customs broker gives you for this particular shipment.
The base changes the answer. In the one-product example, suppose the duty base were goods plus freight:
Duty = 6.5% x (4,800.00 + 540.00) = 0.065 x 5,340.00 = 347.10
Extra costs = 540.00 + 347.10 + 90.00 = 977.10
Extra per unit = 977.10 / 600 = 1.6285
Landed cost = 8.00 + 1.6285 = 9.6285, about $9.63
That is six cents a unit above the $9.57 from the first table, from the base alone. Ask your accountant how recoverable taxes, such as VAT or GST, should be treated for your country. We make no claim on that here.
The invoice that arrives after you started selling#
Freight invoices often turn up a week or more after the goods. By then you may have sold part of the shipment, and those units left with a cost that was too low.
Say 400 of the 600 mugs have sold when a $60.00 freight invoice arrives. You have two choices.
Spread over all 600 units: 60.00 / 600 = 0.10 a unit
Sold units: 400 x 0.10 = 40.00
Units on hand: 200 x 0.10 = 20.00
Push it all onto the 200 left: 60.00 / 200 = 0.30 a unit
Spreading it over all 600 lifts the cost of the 200 units on hand to $9.67. Pushing it all onto those 200 lifts them to $9.87. The margin at a $16.00 price then reads:
Spread over 600: (16.00 - 9.67) / 16.00 = 6.33 / 16.00 = 39.6%
Pushed onto 200: (16.00 - 9.87) / 16.00 = 6.13 / 16.00 = 38.3%
The first is closer to the truth, because the freight really did belong to all 600 mugs. The $40.00 share of the 400 sold units is a cost you missed in the period you sold them. The second keeps the history clean but makes the leftover stock look worse than it is. We lean to the first, with the $40.00 treated as a correction in the period you found the invoice. How your books show it is a question for your accountant.
Shopify's help page does not say what happens to past margins when a cost changes later. It says only that profit is reported for variants that had a cost recorded when they sold.
Rounding so the lines add up#
Rounding is where totals drift. It happens in every shipment. Say $100.00 of freight is split evenly over three equal lines:
100.00 / 3 = 33.33 (rounded) x 3 = 99.99
You are one cent short. The usual fix is to give the leftover cent to the biggest line. The shares then add back to the bill.
Unit costs have the same problem in a different form. Product A by value lands at $5.825 a unit. Say you enter the cost with two decimals, $5.83:
400 x 5.83 = 2,332.00 against the real line total of 2,330.00
The two-dollar gap is the price of a two decimal cost on a large quantity. It is small. It is also one reason to value stock from the landed totals, not from the rounded unit cost.
Which cost goes in Shopify: last cost or average#
Shopify holds one cost per variant, so you choose which number it holds.
Last cost means the newest landed cost replaces the old one, which keeps the field simple and works well while your supplier's price and freight rarely move, but a single unusual shipment can swing the margin on the whole shelf. Weighted average blends the newest landed cost with the stock already on hand. Say 40 units sit on the shelf at $9.00 and 600 more land at $9.57:
(40 x 9.00 + 600 x 9.57) / (40 + 600) = (360.00 + 5,742.00) / 640 = 6,102.00 / 640 = 9.53
The average moves slowly toward the new price. Last cost reacts at once. Pick the one your accountant uses, and keep it for the year.
One page to copy into a spreadsheet#
Make a sheet with one row per product and these columns:
- Units and supplier price.
- Goods value (units times price).
- Duty for that row, from your paperwork.
- This row's share of freight and fees, by the basis you chose.
- Landed total (goods + duty + share).
- Landed per unit (landed total divided by units).
- Margin at your selling price.
Landed cost starts with a clean receipt, so our guide to receiving purchase orders is the step before this sheet.
Add a check cell: the sum of the landed totals must equal goods plus every bill. If it is off by cents, fix the rounding. If it is off by dollars, a bill is missing.
Next time a shipment lands, build that sheet before you reprice anything, then set the new margin of each product beside the old one and start with the product that dropped the most, because that is where a price change matters first.
Frequently asked questions#
How do I allocate freight across products in one shipment?
Pick one basis and use it every time. Weight or volume fits freight that the carrier charged by weight or volume. Value fits fees that rise with price, such as insurance. Splitting by units is simple but gives a cheap, heavy item and an expensive, light item the same freight, which is rarely true.
How do I handle a freight invoice that arrives after I started selling?
Add it to the purchase order as soon as you have it, then decide where it lands. Units already sold carry their share as a cost true-up, and units still on the shelf carry theirs in their unit cost. In our example, a $60 invoice splits into $40 for 400 sold units and $20 for 200 units on hand.
Does landed cost include duty?
Yes, any duty you pay on the goods is part of what the goods cost you to land. The rate and the value it is charged on depend on your country and the product, so take both from your customs paperwork or your broker.
Where do I put landed cost in Shopify?
Shopify has a Cost per item field on each variant, and it holds one value. Enter your landed cost there, not the supplier's price, or your profit reports will read too high. It is a static number, so update it when a new order lands at a different cost.
Is landed cost the same as the cost of goods sold?
No. Landed cost is what a unit cost to bring in. Cost of goods sold is the landed cost of the units you sold in a period. Your accountant decides which valuation method applies to your business.


