Landed Cost: What It Is, How to Calculate It, and What Belongs in a Unit's Cost
Landed cost is what a unit cost you by the time it was on your shelf and ready to sell. It is the supplier’s price plus the freight, insurance, customs duty, brokerage and any other charge you paid to get it there in a condition to sell. That full number, not the price on the purchase order, is what should sit in inventory and move to cost of goods sold (COGS) when the unit ships.
It reads like a bookkeeping detail. It is a margin question. If the freight and duty go to an expense account instead of into the unit, every product looks more profitable than it is, and the products that cost the most to ship look the best of all.
What belongs in landed cost
The test is short. A cost belongs in the unit if you had to pay it to bring the goods to where they are and make them sellable.
| Cost | In the unit’s cost? | Why |
|---|---|---|
| The supplier’s price for the goods | Yes | The starting point |
| Charges on the supplier’s own invoice, such as labeling or the shipping they billed you | Yes | Same supplier, same purchase |
| Ocean, air, parcel or truck freight from the supplier to you | Yes | It got the goods to you |
| Cargo insurance while the goods travel | Yes | Part of getting them there |
| Customs duty and tariffs, including extra duties stacked on the base rate | Yes | You can’t sell the goods until they clear |
| Customs broker and filing fees, such as the merchandise processing fee | Yes | Same reason |
| Amazon inbound fees charged against a shipment, such as placement and partnered-carrier transport | Yes | They got the goods into FBA |
| Freight to move stock between your own warehouses, or into FBA or AWD | Yes | The stock moved closer to sale |
| Assembly, kitting or co-packer labor that makes the sellable unit | Yes | Without it there is no product to sell |
| Rework the goods needed before they could be sold | Usually | Rework caused by a mistake is often expensed. Agree the line with your accountant |
| Shipping orders to customers | No | A cost of selling, not of the stock |
| Marketplace selling fees and payment fees | No | Costs of the sale |
| Monthly storage at a 3PL or in AWD | No | A cost of holding stock, not of getting it there |
| Advertising | No | A cost of finding buyers |
| Sales tax you collect | No | It was never your money |
The yes column all goes into inventory on the balance sheet and reaches the P&L one unit at a time, as each unit sells. The no column goes to the P&L in the month it happens.
Landed cost on the purchase order is the base the rest of the books stand on. If the unit’s cost is wrong when it is received, the inventory balance is wrong for every month the unit sits on the shelf, and COGS and gross margin are wrong in the month it sells.
How to calculate landed cost per unit
For one purchase order line:
Landed cost per unit = (the line’s supplier price + its share of every freight, insurance, duty and fee bill) ÷ units on the line
The formula is easy. “Its share” is where the work is, because one freight bill usually covers a container of different products. Here is a worked example. The numbers are invented.
A purchase order for two products arrives in one container:
| Water bottles | Steel stands | |
|---|---|---|
| Units | 1,000 | 200 |
| Supplier price per unit | $6.00 | $30.00 |
| Line value | $6,000 | $6,000 |
| Volume in the container | 4 m³ | 8 m³ |
| Duty rate | 0% | 25% |
The bills that follow: ocean freight $1,800, customs broker $240, cargo insurance $60, and duty of $1,500 (25% of the stands’ $6,000; the bottles pay none).
Split each bill by what drives it. Freight goes by volume, because the container was billed by space. The broker and the insurance go by value. Duty goes to the line that was charged it.
| Water bottles | Steel stands | |
|---|---|---|
| Supplier price | $6,000 | $6,000 |
| Freight by volume (4 and 8 of 12 m³) | $600 | $1,200 |
| Broker by value | $120 | $120 |
| Insurance by value | $30 | $30 |
| Duty by line | $0 | $1,500 |
| Landed total | $6,750 | $8,850 |
| Landed cost per unit | $6.75 | $44.25 |
Check two things before you trust it. The landed totals add up to every dollar paid: $6,750 + $8,850 = $15,600, which is $12,000 of goods plus $3,600 of bills. And each share was set by what drives that charge, not by habit.
Now split all $3,600 by value instead, which is the default in most tools. Each line has half the value, so each takes $1,800. The bottles come out at $7.80 and the stands at $39.00. The bottles are $1.05 too high and the stands are $5.25 too low. Sell a stand for $59 and you would read $20.00 of margin on a unit that makes $14.75. Use the supplier price alone and the stand costs $30.00, and you would read $29.00.
For a single shipment you can run the arithmetic in the landed cost calculator.
How to split a shared bill
There is no one right method for a whole bill. There is a right method for each kind of charge on it.
| Charge | Split by | Why |
|---|---|---|
| Ocean freight | Volume | Containers are billed by the cubic meter |
| Air, parcel and truck freight | Weight | Carriers bill by the kilogram |
| Customs duty | The duty charged on each line, or each line’s duty rate | A duty-free line should carry none of it |
| Brokerage, filing, handling, insurance | Value | They scale with what the goods are worth |
| A per-unit charge, such as labeling | Quantity | Every unit carries the same amount |
Weight and volume only work if your products have real weights and dimensions on file. If most don’t, splitting by value is the honest fallback, and it is better to know that’s what you’re doing.
My view, which some bookkeepers won’t share: splitting everything by value is the wrong default for anyone who imports mixed containers. The further apart your bulkiest product and your most expensive product are, the further off it gets. Freight-in accounting works through the weight-or-value choice with a second example.
Six mistakes that make COGS wrong
1. The default cost is the purchase price
Most systems keep one fallback cost per product, used when there’s no better source. If that number is the supplier’s price alone, every sale that falls back on it is short by the freight and duty. Sometimes it’s out of date, or zero. How to calculate COGS for ecommerce covers how to find and fix it.
2. Freight booked as a monthly expense
A “Freight In” or “Customs” line in operating expenses is the clearest sign. The cost is in the books, but it’s in the month the bill was paid, not the month the goods sold, and it’s in no product’s margin. A big container bill in March makes March look poor and April to June look better than they were.
3. Splitting by value
Covered above. The heavy, cheap products get too little freight and the small, expensive ones get too much.
4. Waiting for the last bill, or never going back
Duty and freight bills often arrive weeks after the goods. Whatever sells in between leaves at a cost that’s too low. You can book an estimate at receipt and true it up when the bill comes, or restate the cost once the bill lands. I restate in my own business. As I said on a call in August 2026: “Always restate past unless it’s triggering an accounting lock date.” The trade-offs are in when does a unit’s cost stop changing and the freight invoice that arrives after the stock sold.
5. Counting Amazon’s inbound fees twice
Amazon takes placement and partnered-carrier fees straight out of a payout. If the payout books them as an expense and you also put them into landed cost, they are counted twice. Which Amazon fees belong in landed cost goes through them one by one.
6. One cost per product, forever
Each receipt has its own landed cost. The same item can land at $20 one month and $18 the next. Before I had layered cost in my own business, a single unit cost was all I had. Changing it moved every unit at once: “all of a sudden my month profit goes way up or way down just because I don’t have any other way to deal with it in my old system.” Landed cost per SKU when freight changes every shipment shows why the cost belongs to the receipt.
How to check your own books
You can do this in an afternoon with the documents you already have, or in the landed cost spreadsheet.
- Pick your five best-selling products. For each one, pull the last purchase order, the supplier invoice, the freight bill and the duty bill.
- Work out the landed cost per unit by hand, with the method above.
- Compare it with the unit cost in your inventory system and with the cost behind last month’s COGS for that product.
- Open the P&L. Look for freight-in, inbound shipping, duty or customs lines in operating expenses. If they have a balance and those costs are not also in inventory, they are not in COGS.
- Look for products with a cost of zero, or a cost that exactly equals the supplier’s price.
- Look for freight and duty bills that were paid but never tied to a purchase order or a shipment.
- Compare the inventory value in your inventory system with the inventory balance in your ledger at month end. Inbound freight is a common reason the two disagree.
- If you sell on Amazon, check that inbound fees from payouts are either in expenses or in landed cost, never both.
If step 3 shows a gap of more than a few percent on your best sellers, the gap is in your gross margin too. Landed cost vs COGS vs FOB cost helps when the numbers you’re comparing come from different stages.
How SKU.io handles landed cost
I run my own ecommerce business on SKU.io, so this is the part I can show you rather than describe in general.
Bills from the companies that actually billed you
The supplier’s price sits on the purchase order. Charges on the supplier’s own invoice go on the purchase order as cost lines. A freight forwarder’s or customs broker’s invoice is a separate document from a different company, so it’s recorded as a landed cost bill from a service provider, against the purchase order, the inbound shipment or the warehouse transfer it paid for. I explained it to our own team this way: “Cost lines are from the vendor and landed cost is from other vendors. There are two different ecosystems.”
With document reading turned on, you can upload the invoice as a PDF and SKU.io reads it, or your forwarder can email it to your Document Inbox. Each line is matched to a cost category such as Freight or Brokerage, and you review it before it’s applied. A bill can be added at any status, including after the order is received and closed. The steps are in the record landed cost bills guide.
Each kind of charge split its own way
A bill starts on By cost category. Each cost category has an Allocate by setting: by cost, volume, weight or quantity, equally across lines, and for your duty category by estimated duty or by customs entry. One broker invoice can split its ocean freight by volume and its brokerage by cost. New categories start on by cost. When real weights or dimensions show that weight or volume would move cost between products, the bill editor suggests it. Bills you’ve already saved keep the split they were made with. See manage cost categories.
Duty from the customs entry, and estimates until the bill comes
You can import your broker’s 7501 entry summary or an ACE ES-003 report. SKU.io matches each entry line to your purchase order lines, and the duty bill can then split by the duty actually charged on each product. The customs entries guide has the details.
You can also have estimated duty added to the stock’s cost when the goods are received, held in an accrued customs duty account. When the broker’s bill arrives it clears the estimate and only the difference moves: units still on hand take their share in their cost, and the share for units already sold goes to a customs duty variance account. Estimates still waiting after 90 days are flagged at the month-end close, and anything still waiting 120 days after the last receipt is released by default. See capitalize estimated duty and reconcile the broker bill.
Late bills reach the units that already sold
When a freight bill lands after the goods were received, saving it revalues the cost layers straight away, records each change, and re-costs the units that already sold. Nothing has to be reopened. See add a landed cost after receiving.
Amazon’s inbound fees and AWD
Inbound fees Amazon takes from a payout become a landed cost bill numbered AMZN-LC-, part of the shipment’s cost. The payout already paid them, so when its deposit can’t settle the bill, SKU.io settles it against the payout without sending anything new to Xero or QuickBooks, and the month-end close warns about any left open (guide). Amazon Global Logistics freight and duty in your settlements can be added to the purchase order’s landed cost the same way (guide).
Stock sent to AWD carries its landed cost with it, and keeps it when Amazon moves the units on to FBA. A bill that arrives later updates the AWD stock, the units on their way to FBA, the FBA stock they became, and the COGS of any already sold. See how AWD stock is costed.
See where the cost lands
The Landed Cost Breakdown report splits the cost of what you sold into the product itself, freight, duty, insurance and every other category, grouped by sales channel, brand, product, supplier or warehouse (guide).
When you don’t trust the costs you have
Cost trust shows how much of your stock value has a documented cost, weighted by where each cost came from: a supplier invoice counts in full, an estimate counts for less, and no cost counts for nothing. It warns and never blocks. It doesn’t cover FBA or AWD stock yet (guide).
If you’re starting on SKU.io and your costs are a guess, the SKU.io team can run a cost check against your supplier documents. It’s a service, not a button. It compares your costs with your supplier invoices, freight, duty and brokerage bills, credit notes and counts, works out the landed cost of each product in each warehouse, and ends in an opening stock count ready to load and a corrected default cost for each product. We walk you through the report on a call, and the price is agreed up front. See have your costs checked against your supplier documents.
The costs then post to Xero or QuickBooks with the rest of your inventory accounting. The accounting page covers what gets posted.
Who this is not for
If you buy finished goods from one domestic supplier who delivers free, your landed cost is the price on the invoice, and a spreadsheet will hold it. The same goes for a shop under $1M on one channel with steady costs: Zoho Inventory or inFlow will do. Landed cost earns a system when you import, when one bill covers several products, or when the same product arrives by different routes at different costs.
Read next
This guide is part of the ecommerce accounting standards. The supporting posts each answer one question:
- How to calculate COGS for ecommerce: why purchase price alone is the wrong default cost
- Freight-in accounting: allocating freight by weight or by value
- Is shipping part of COGS?: duty, tariffs, transfer freight and co-packer costs
- Landed cost vs COGS vs FOB cost: three numbers for one unit, at three moments
- Inventory in transit: accounting for goods on the water
If you import and want to see your own bills split this way, book a demo and bring one container’s paperwork.