inecta

True Landed Cost: Why Your ERP Keeps Lying About Gross Margin

True Landed Cost: Why Your ERP Keeps Lying About Gross Margin

True Landed Cost: Why Your ERP Keeps Lying About Gross Margin


TL;DR

Most ERPs report gross margin based on the supplier invoice price plus, at best, a rough freight estimate. True landed cost includes freight, duties, brokerage, insurance, demurrage, currency variance, inbound handling, inspection, rework, and inventory carrying cost and the gap between the two is usually 3% to 12% of COGS. That gap is exactly where "profitable" SKUs quietly lose money. This article explains why standard ERPs systematically underreport landed cost, what a real landed cost model looks like, and how to close the loop so your gross margin number actually means something.


The short answer for anyone skimming

Your ERP isn't lying on purpose. It's reporting the costs it was told about usually the PO price, sometimes a freight accrual, occasionally a duty estimate. Everything else (brokerage adjustments, demurrage, FX swings, post-receipt invoices, quality losses) lands in overhead, freight expense, or "purchase price variance" buckets that never touch the SKU. The result is a gross margin number that looks clean at the item level and falls apart at the P&L level. The fix is a landed cost layer that allocates every inbound cost back to the unit ideally before the goods are sold, not six weeks after.


Why this matters now

Three things changed in the last few years that made the "ERP gross margin" problem much worse:

  1. Freight volatility. Ocean and air rates moved 5–10x between 2020 and 2023, then settled at structurally higher and more variable levels. A static freight rate in your item master is wrong the day it's entered.
  2. Tariff complexity. Section 301, Section 232, reciprocal tariffs, and country-of-origin reshuffling mean duty rates now change inside a fiscal quarter. ERPs that store a single HTS-derived duty percentage per item are quietly stale.
  3. Margin compression. When gross margin was 45%, a 4% landed cost error was annoying. When it's 22%, the same error is the difference between growth and layoffs.

If you haven't audited the gap between your ERP's reported COGS and your true landed cost in the last 12 months, you almost certainly have one.


What "true landed cost" actually includes

A working definition: true landed cost is every cost incurred to get one sellable unit into your warehouse, in condition to ship, expressed per unit.

The components, grouped:

Product cost

  • Supplier unit price (the number most ERPs anchor on)
  • Tooling or NRE amortization per unit
  • Supplier-side packaging if billed separately

Logistics

  • Origin handling, drayage, and export clearance
  • Ocean/air/truck freight (including fuel surcharges and peak-season adders)
  • Destination port fees, terminal handling, chassis
  • Inland freight to your DC
  • Demurrage and detention (almost never modeled in advance)

Border

  • Duties by HTS code, including additional tariff layers
  • Customs brokerage fees
  • Merchandise Processing Fee (MPF), Harbor Maintenance Fee (HMF) for US imports
  • Anti-dumping or countervailing duties where applicable

Risk and finance

  • Cargo insurance
  • Currency variance between PO date and invoice settlement
  • Letter of credit or trade finance fees
  • Inventory carrying cost from port to first sale

Quality and handling

  • Inbound inspection labor
  • Rework, repack, or relabel
  • Yield loss and damage at receipt
  • Returns-to-vendor processing on rejected lots

Most ERPs capture the first bucket cleanly, the second bucket partially, and the rest barely at all.


The seven specific ways your ERP misreports gross margin

This is where the article earns its keep. These are the patterns that appear over and over in real implementations.

1. Freight is accrued, not allocated

Most ERPs post freight to a freight expense GL account. It hits the P&L below the line as a period cost, not inside COGS at the SKU level. Item-level margin reports look healthy; the consolidated P&L tells a different story. If you've ever heard "our SKU margins all look good but the bottom line keeps shrinking," this is usually the first culprit.

2. Duties are estimated once and never reconciled

A common pattern: the duty rate is entered at item setup, copied from a customs broker's first entry, and never touched again. When HTS classifications shift, when a Section 301 list expansion hits, or when country-of-origin changes mid-program, the standard cost lags reality by months.

3. Demurrage and detention land in a different cost center

Port congestion charges typically post to a logistics or operations cost center, not to inventory. The container that sat at the port for 14 days cost you $2,800 but the units inside it carry the same standard cost as units that cleared in 3 days. The "expensive" lot and the "cheap" lot are indistinguishable in your margin report.

4. Currency variance hides in PPV

When you PO in USD and the supplier invoices in CNY (or vice versa), the FX delta between PO date and payment date posts to purchase price variance. PPV is a period account that washes through the P&L without ever touching the item's standard cost. Your margin report uses the standard; reality uses the actual.

5. Inbound quality losses are written off, not costed up

If you receive 10,000 units and 400 fail inspection, most ERPs write off the 400 to a scrap account and report COGS on the remaining 9,600 at the original per-unit cost. The correct treatment is to spread the cost of the 400 across the 9,600 making each surviving unit's true cost ~4% higher. This is one of the largest silent margin leaks in regulated, perishable, or quality-sensitive categories.

6. Post-receipt invoices arrive after the close

Brokerage, demurrage, and corrective freight invoices routinely arrive 30–90 days after goods are received. By the time they post, the goods have shipped, the margin has been reported, and the financial period is closed. The costs end up in the next period's freight account, attached to the wrong revenue.

7. Carrying cost from port to first sale isn't modeled

A unit that sits in your DC for 90 days before selling carries real cost: capital, warehouse space, insurance, obsolescence risk. Most ERPs treat inventory as costless until it moves. For slow-moving SKUs, the difference between "fast-turn margin" and "actual margin" can be double-digit percentage points.


A quick worked example

Take a SKU that looks like a winner in the ERP:

  • Sell price: $100
  • ERP-reported COGS: $62 (supplier price $55 + standard freight $7)
  • ERP-reported gross margin: 38%

Now layer in what actually happened to that lot:

Cost componentPer unit
Supplier price$55.00
Ocean freight (actual, not standard)$8.20
Duty (Section 301 layer added mid-year)$4.40
Brokerage and MPF$0.85
Demurrage spread (port delay)$1.10
FX variance on settlement$0.75
Inbound QC + 3% yield loss$2.30
Carrying cost (avg 75 days to sell)$1.50
True landed cost$74.10

True gross margin: 25.9%, not 38%. That's a 12-point miss on a SKU sales team is being compensated to push.

Multiply across an assortment, and you can see how a company hits revenue targets, hits "margin" targets, and still misses EBITDA.


What a working landed cost solution looks like

The technical pattern is consistent across well-implemented landed cost systems:

  1. An inbound shipment object that sits between the PO and the receipt, and accumulates non-product costs (freight bill, broker invoice, demurrage, FX adjustment) as they arrive.
  2. Allocation rules by weight, volume, value, or unit count that distribute those costs back to the line items on the shipment.
  3. Two-stage costing. An estimated landed cost is applied at receipt so margin reports are directionally right immediately. An actual landed cost adjustment posts later as real invoices arrive, with the delta flowing into inventory and COGS, not into a freight expense account.
  4. Lot- or receipt-level cost layers so two lots of the same SKU can carry different costs reflecting their actual journey.
  5. Variance reporting that surfaces the gap between estimated and actual landed cost by lane, supplier, and SKU so procurement and logistics can act on patterns instead of one-off invoices.

ERPs that handle this well out of the box are still the exception. Most teams either bolt on a landed cost module, build a parallel calculation in their data warehouse, or run the truth in a spreadsheet and use the ERP number for the board deck.


How to audit your own landed cost gap in a week

A practical sequence that any finance or ops leader can run:

  1. Pick one product family that represents meaningful revenue and crosses a border.
  2. Pull every cost line that touched the last three inbound shipments: PO, freight bill, broker invoice, demurrage, FX settlement, QC report, scrap log.
  3. Compute true landed cost per unit for those lots from the actual documents.
  4. Compare to the ERP's standard or moving average cost for the same units.
  5. Multiply the per-unit gap by annual volume for that family. That is your annualized margin misstatement on one slice of the business.
  6. Project to assortment. If the gap is 4–8% on the audit slice, assume something similar across categories with comparable supply chain complexity.

Most teams that run this for the first time find a number that materially changes how they price, where they source, and which SKUs they keep.


Frequently asked questions

Is landed cost the same as COGS? No. COGS is an accounting concept that includes landed cost plus other charges (e.g., direct labor in some models) and is recognized at the moment of sale. Landed cost is the per-unit cost of getting one ready-to-sell unit into inventory. Landed cost feeds COGS; it isn't COGS itself.

Does GAAP require landed cost in inventory? US GAAP (ASC 330) and IFRS (IAS 2) both require inventory to be valued at the cost of bringing goods to their present location and condition — which is essentially landed cost. The standards permit reasonable allocation methods, which is why so many companies underreport: a defensible allocation method can still be a low-resolution one.

Why doesn't my ERP just do this automatically? Because the cost data arrives asynchronously, from different vendors, in different formats, after the receipt is already posted. Most ERPs were designed assuming costs are known at PO time. The world doesn't work that way for imported goods.

How accurate does landed cost need to be? For pricing and margin reporting, +/- 1–2% per unit is the practical target. Sub-1% accuracy is achievable but rarely worth the engineering cost compared to acting on the variance reports themselves.

What's the fastest fix if I can't replace my ERP? A monthly landed cost reconciliation built in your data warehouse, fed by AP and the freight forwarder's invoice data, with a per-SKU adjustment journal back into inventory. It's not elegant, but it closes the gap in weeks rather than quarters.

Does this apply to domestic-only businesses? Yes, though the gap is usually smaller typically 1–4% rather than 5–12%. Inbound freight, fuel surcharges, accessorials, and quality losses still misallocate. The mechanics are the same; the magnitude is lower.


Ready to transform your food business?

See how inecta Food ERP can streamline your operations with a personalized demo.