Cash flow
What a unit actually costs you
Shopify will happily report a margin on a number you typed in months ago. If that number was the price on the supplier's invoice, the margin is not your margin.

The number Shopify is quietly using
Your Shopify margin is revenue minus the cost per item you typed on the product. If you typed the supplier's price, that figure contains no freight, no duty and no import fees, so it overstates your profit on everything you import, and it overstates it worst on anything that ever travelled by air.
Landed cost is the honest version. It is what one unit costs to have sitting on your shelf, ready to sell, rather than what the factory charged you for it.
Landed cost per unit = supplier price + that unit's share of freight + duty and import charges + the other costs of getting it in. Everything up to the shelf. Nothing after it.
Most importers know this in principle. The reason it still bites is that Shopify only has one box to put a cost in, the box is filled in once when the product is created, and nothing about the platform ever suggests that the number should change when a shipment lands.
A worked example, with round numbers
Take a thousand yoga mats. The numbers here are chosen to be easy to follow rather than to describe any real lane, and your own will be different.
- Supplier price: 8.00 a unit.
- Each mat weighs 2 kg, so the shipment is 2 000 kg.
- The sea freight bill for the shipment comes to 1 600, which is 0.80 a kilo, so 1.60 a unit.
- Duty on this shipment works out at 0.60 a unit. You get this from your own customs paperwork, not from a blog, because it depends on the product, the origin and the destination.
- Customs brokerage and handling: 150 for the shipment, so 0.15 a unit.
Landed cost = 8.00 + 1.60 + 0.60 + 0.15 = 10.35 a unit. The number in Shopify says 8.00. Every margin you have ever looked at for this product is out by 2.35 a unit, which is 29 per cent of what you thought the goods cost.
Sell those mats at 24.90 and the gap stops being abstract.
| Using | Cost | Gross profit | Margin |
|---|---|---|---|
| The supplier price you typed in | 8.00 | 16.90 | 67.9% |
| The real landed cost | 10.35 | 14.55 | 58.4% |
Nine and a half points of margin, on a product you would have described as one of your best. Multiply by everything you import and the reason the bank balance never matches the profit report starts to come into focus. That is a whole subject of its own, and it has its own page.
The same product, flown in, is a different product
Here is the part that catches people who already compute landed cost, but compute it once.
Suppose the sea shipment was going to land three weeks after you ran out, so a portion came by air instead. Air freight is not slightly dearer than sea, it is a different order of magnitude, and on a heavy product it can be larger than the goods themselves. Put the same mats on a plane at an illustrative 5.00 a kilo and the freight alone becomes 10.00 a unit.
Landed cost by air: 8.00 + 10.00 + 0.60 + 0.15 = 18.75 a unit. At the same 24.90 selling price the margin falls from 58.4 per cent to 24.7 per cent. Same SKU, same customer, same price on the site.
Two conclusions follow, and the second one is the useful one.
The first is that a single cost figure per product is a fiction as soon as two shipments of it travelled differently. What you really have is a cost per batch, and what most systems can hold is an average.
The second is that an emergency air shipment is not only a freight bill. It changes what the goods are worth to you, quietly, for as long as those units are on the shelf. That is why ordering on time is a margin decision rather than a logistics one, and it is why the freight split matters: send the bulk by sea and bridge the gap with a small fast shipment, and only the bridged units carry the expensive landed cost.
Do you pay for what a shipment weighs or what it takes up?
You pay on chargeable weight, which is the greater of what the goods weigh and what their volume converts to. Every mode does that conversion, each does it at a different rate, and the mode you pick decides which of the two numbers wins. A light bulky product is priced on the space it occupies rather than on the scale.
| Mode | Volume converts to weight at | You are billed on | Source, read 10 September 2026 |
|---|---|---|---|
| Air freight, general cargo | length × width × height in cm ÷ 6 000, which is 167 kg per cubic metre | The greater of actual and volumetric weight | Maersk, which credits the 6 000 divisor to IATA, and DSV, which states it as 1 m³ = 167 kg |
| Sea freight, LCL | 1 cubic metre counts as 1 000 kg | Gross volume or gross weight, whichever is higher | Maersk's own LCL terms, part 1 section 2.d |
| Express courier | The carrier's own divisor. Maersk names 5 000 as a common alternative to 6 000, which makes the same box 20 per cent heavier on paper | The greater of the two, piece by piece | Maersk describing other carriers. We could not open DHL's, FedEx's or UPS's own pages to confirm their current figures, so read your contract |
The threshold is the more useful form of the same fact. Anything less dense than about 167 kg per cubic metre is charged on volume when it flies, and less dense than 1 000 kg per cubic metre when it travels LCL by sea, which is nearly every consumer product. Density decides, not weight. Whether it is still worth paying that per-cubic-metre LCL rate at all, or whether the shipment has grown big enough to book a full container instead, is a separate question, answered in FCL vs LCL, and the CBM where it flips.
Take the mats from earlier, still made-up numbers chosen to be easy to follow. Rolled, say one measures 61 by 15 by 15 cm, so 13 725 cubic centimetres. Its volumetric weight is 13 725 ÷ 6 000 = 2.29 kg against an actual 2 kg, and its density is 146 kg per cubic metre, under the 167 line. Air bills the 2.29.
Which means the air figure earlier on this page was still too kind. At the same illustrative 5.00 a kilo the freight becomes 11.44 a unit rather than 10.00, landed cost by air is 20.19 rather than 18.75, and the margin at a 24.90 selling price is 18.9 per cent rather than 24.7.
Now the part freight forwarders explain correctly and never finish. Chargeable weight does not only settle a bill you have already run up, it changes what you should order. The bridge calculation in air or sea freight prices the units you fly to cover the gap until the boat lands. Price those units on scale weight and a low-density product's bridge looks 14 per cent cheaper than it is, and far more than that on something genuinely bulky. The response is not to fly fewer units and take the stockout. It is that a light bulky product punishes a late order harder than a dense one does, so its sea order wants placing earlier and its ordering deadline wants more cushion.
Our own figures carry this gap, and you should know where. Restocio prices freight as unit weight times a rate per kilo, so it works entirely in actual weight and holds no dimensions at all. For anything under roughly 167 kg per cubic metre, the air line and the rush cost on the replenishment card are a floor rather than an estimate, understated by the ratio between chargeable and actual weight. A line with no weight at all is counted apart and never priced as zero, which is the one case here we do handle honestly. Get the chargeable weight off the forwarder's quote before you commit to a split.
Splitting the freight bill across the units
One shipment, one invoice, many different products. Something has to decide how much of that invoice each unit carries, and there is no rule that is right for every business.
| Allocate by | Works when | Goes wrong when |
|---|---|---|
| Weight | Freight is priced per kilo, which it usually is | Something light takes up a whole pallet |
| Volume | The container fills up before it gets heavy | You do not have reliable dimensions |
| Value | You want expensive goods to carry more of the cost | A cheap heavy item then looks better than it is |
| Unit count | Everything in the box is roughly alike | Almost any mixed shipment |
Weight is the usual answer, because it matches how the carrier charged you. It is also why unit weights are not optional data: without them, nothing can compare freight modes or split a bill, and a tool that appears to do it without weights is guessing.
Where this lives in Shopify, and the trap
Shopify gives you one field, cost per item, on each variant. Fill it with the landed cost and your reports get closer to the truth. Fill it with the supplier price, which is what nearly everyone does because that is the number on the invoice in front of them, and every margin report inherits the error.
Three things make this harder than it sounds, and they are worth naming rather than pretending away.
- The cost changes with every delivery. A new shipment at a different freight rate produces a different landed cost, so the field needs updating when goods arrive rather than when the product is created.
- You are usually paying in another currency. The rate on the day you paid the supplier is the rate that belongs in the cost, not today's. What happens when the rate moves and the invoice does not has its own page.
- Some costs arrive late. The brokerage invoice can turn up weeks after the goods, by which point nobody wants to revisit the number.
This is the part Restocio does, with one honest gap. It computes landed cost per unit from the goods and the freight on the actual shipment, keeps the average current as deliveries are received, and can write the result back into Shopify's cost field so your own reports improve rather than living in a separate tool. Exchange rates are frozen per order, so a cost calculated in March does not silently change in June. Duty is not in that number yet: it lives today as a single estimated percentage you set yourself, and it does not feed the calculation above. For anything duty-rated, add it to the landed cost by hand until that closes. None of this runs at all until a product actually has a cost and a weight to begin with; if SKU Manager is flagging gaps, closing them is the more concrete next step than anything on this page.
Does Shopify's cost per item include shipping?
No, and Shopify's own documentation tells you to leave it out. The Help Center defines the field as “the cost to you of the product or variant” and gives exactly one example: “if you resell a product, then you can enter the price that you paid the manufacturer, excluding taxes, shipping, or other costs”.
Read that as an instruction and you will type the supplier invoice figure, which is what nearly every importer does. Shopify then computes margin as ([price − cost] ÷ price) × 100, and its profit reports subtract that same cost from net sales. Both pages read 10 September 2026. So the omission is not cosmetic. It is the input to every profitability figure the platform will ever show you.
The advice is not wrong so much as written for a different merchant. Shopify has far more stores buying finished goods in their own country, where inbound shipping is small or already sitting inside the supplier's price, and where the shipping that dominates is outbound to the customer. Outbound shipping genuinely does not belong in cost per item. Inbound freight and duty do, and that is the half an importer lives in.
Swedish rules say it in one sentence, which turns this from a reporting preference into the value your accounts are supposed to carry. Skatteverket: “I anskaffningsvärdet för de lagertillgångar du köpt ska du räkna med inköpspris, frakt, tull och liknande kostnader.” Purchase price, freight, duty and similar costs, re-read 10 September 2026. The rest of that argument is in stock valuation for your accounts. Other countries word it differently and most frameworks land in the same place on inbound freight, so check yours instead of borrowing Sweden's.
| Cost | Reseller buying at home | Importer |
|---|---|---|
| Supplier invoice price | In | In |
| Inbound freight to your warehouse | In, and usually already inside the price | In. On the worked example above it was 1.60 against goods of 8.00 |
| Duty, clearance and brokerage | Nothing to add | In |
| Outbound shipping to the customer | Out | Out |
| VAT you reclaim | Out | Out |
One row of that table is still open on our side, and it is the duty row. We compute the freight share per unit and write the blended figure back into Shopify's cost field, so your own reports improve without you retyping anything. Duty sits outside that calculation. It exists as an estimate you set and it does not feed the number, which is why the closing stock and cost-of-goods panels both print the line “Duty is not included in the cost yet, so these values are short by the duty on imported goods.” Naming a shortfall on screen is better than hiding it and it is not the same as closing it, so the by-hand step above stays necessary until we do.
What this does not fix
Worth being straight about the limits of the whole approach, not only of our version of it.
- Any allocation is a choice, not a fact. Weight, volume and value give three different answers for the same shipment and all three are defensible. Pick one, write down why, and keep it consistent, because switching methods changes your margins without anything real having happened.
- Lumpy costs resist per-unit thinking. Storage, demurrage, a rejected pallet. Spreading them over units is arithmetic rather than truth, and for a small shipment it can distort more than it reveals.
- Landed cost stops at the shelf. It says nothing about picking, packing, outbound shipping, returns or the payment fee. A product with a healthy landed margin can still lose money on the way out of the door, and that is a different calculation.
- A better number does not change a bad buy. Knowing the true cost of eight months of stock you did not need is useful information about a decision that has already been made.
None of that is a reason to keep using the supplier price. It is a reason to treat landed cost as the best available estimate rather than a fact, which is roughly how every number in purchasing deserves to be treated.
Common questions
What does Shopify say should go in the cost per item field?
Its Help Center calls it the cost to you of the product or variant, and the one example it gives is the price you paid the manufacturer, excluding taxes, shipping, or other costs. That instruction fits a merchant buying finished goods at home. For an importer it leaves inbound freight and duty out of the single number every margin and profit report on the platform is built from.
Should I put my landed cost in Shopify's cost per item field?
If you import, yes. Shopify has exactly one cost box per variant, and whatever sits in it drives margin on the product page and the profit reports. It does mean the figure changes with every delivery at a different freight or exchange rate, so it becomes an average that has to be maintained rather than a number set once. Swedish rules point the same way: Skatteverket says the acquisition value of purchased stock includes inköpspris, frakt, tull och liknande kostnader.
What is chargeable weight, and how do I know if my product is charged on volume?
Chargeable weight is the greater of a shipment's actual weight and its volumetric weight. For general air cargo the conversion is length times width times height in centimetres divided by 6 000, which works out at 167 kg per cubic metre, and Maersk credits that divisor to IATA. So anything less dense than about 167 kg per cubic metre is billed on volume when it flies. On LCL sea freight, Maersk's own terms set one cubic metre equal to 1 000 kg, which almost every consumer product is under.
Does chargeable weight change how much I should order?
Yes, indirectly, and this is the part freight guides leave out. If your product is light and bulky, the units you fly to bridge a gap cost more than their scale weight suggests, so the emergency air option is dearer than it looks on a spreadsheet. That is not an argument for flying fewer units and running out. It is an argument for placing that product's sea order earlier and with more cushion, because rescuing a low-density product late costs more than rescuing a dense one.
Does Shopify include shipping and duty in its margin?
No. Shopify calculates margin from the cost per item field on the variant. It contains whatever you typed there, so if that was the supplier's price then freight, duty and import charges are all missing and the reported margin is too high.
What is landed cost?
What one unit costs to have available for sale: the supplier price, plus that unit's share of the freight, plus duty and other import charges. It stops at your shelf, so it does not include picking, outbound shipping or payment fees.
How do I split a freight invoice across different products?
Usually by weight, because that is how the carrier priced it, which means you need a weight on every unit. Volume works better when a container fills up before it gets heavy, and allocating by value is a deliberate choice to make expensive goods carry more of the cost. All three are defensible, so pick one and stay with it.
Should the cost in Shopify change when a new shipment arrives?
Yes, if you want the reports to stay true. A delivery at a different freight rate or exchange rate has a different landed cost, so the figure is an average that moves as goods are received rather than something set once when the product was created.
Why is the landed cost of an air shipment so much higher?
Because air freight is priced per kilo at several times the sea rate, so on a heavy product the freight can approach or exceed the price of the goods. The same SKU flown in can carry a landed cost far above the sea version, which is why splitting an order so that only the urgent units fly protects the margin on the rest.
Marcus co-founded Restocio and works on it daily with a Swedish importer who plans their purchasing in it every working day. Restocio is built in Sweden by two founders, one Swedish and one Danish, and Marcus is the Danish one. Why we are building it.
Related reading
- How to check your COGS in ten minutes
- The cost price nobody ever updates
- Why your accountant's number is not Shopify's
- Sea, rail or air, and why the answer is often all three
- Profitable on paper, empty at the bank
- FCL vs LCL, and the CBM where it flips
- How many units fit in a container, and whether you should fill it
- Shopify replenishment, end to end
- Supplier price or landed price, and how to pick it right
- Fixing a product SKU Manager flags as missing a cost or weight
- Your supplier invoices in dollars, and your cost price moved on its own
- Comparing two suppliers on the full cost, not the unit price
Restocio plans purchasing for Shopify stores that import. It works out what to order, how much, and whether it should travel by sea, rail or air, so you pay air freight only for the units that genuinely cannot wait.