Skip to content
NetSuite reporting

NetSuite item profitability report: margin by item that ties out

Build a NetSuite item profitability report that ties out: estimated versus actual COGS, landed cost allocation, and why item margin never equals GL margin.

ERPray teamUpdated 8 min read
Short answer

A NetSuite item profitability report needs actual posted cost of goods sold, not the estimated gross profit fields. Estimated gross profit uses the item's cost estimate type — average cost, last purchase price or a fixed item-defined cost — so it moves when the estimate moves rather than when margin does. Build it from the posted accounting lines of fulfilments and invoices instead.

Key takeaways

  • Estimated gross profit is an estimate by design. It reads the item's cost estimate type, so a stale last purchase price shows a margin that never existed.
  • Actual COGS is set by the costing method when inventory is relieved, which may be in a different period from the invoice that carries the revenue.
  • Freight and duty left in expense accounts instead of allocated to receipts overstate item margin all year and never appear as an error.
  • Item margin and GL gross margin should differ by a list of named items — variances, adjustments, freight revenue and timing. If you cannot name them, you do not have a margin report.
  • Sort item margin by dollar contribution, not percentage. The 61% margin item selling 40 units a year is not the problem.

The request sounds simple. Which items actually make us money? Then you produce a NetSuite item profitability report, someone compares the total to the gross profit line on the P&L, the two differ by 2%, and the entire meeting becomes about the difference. That gap is not a bug. It is a list of specific, nameable things, and knowing what they are is the difference between a margin report people act on and one they argue about.

Item profitability
Revenue from selling an item, less the cost of goods actually relieved from inventory to fulfil those sales, over a stated period. Reported as both dollar contribution and margin percentage, at the level of the item record rather than the account.

Why the built-in margin fields mislead

NetSuite exposes estimated gross profit and estimated gross profit percentage on transactions and transaction lines, and they are tempting because they are already there. They are estimates, and the word is doing real work. The estimate comes from the item's cost estimate type — a field on the item record that tells NetSuite which cost to use when it has not yet posted a real one.

Cost estimate typeWhat it readsWhen it goes wrong
Average costThe item's running average costClosest to reality for average-costed items, but it is the current average, not the average at the time of that sale.
Last purchase priceThe rate on the most recent purchaseOne unusual buy — a spot purchase, an air-freighted rush order — poisons the estimate for every subsequent sale.
Purchase price / preferred vendor rateA price held on the item or vendor recordStatic. It is right until a vendor raises prices and nobody updates the field, which is usually forever.
Item-defined costA number typed on the item recordWhatever it was when someone typed it. This is the one that produces confident 43% margins on items losing money.
Derived from componentsA rollup of member item costsOnly as current as the component costs and the build, so it inherits every problem above.
None of these are wrong. They are estimates, and a profitability report is not the place for an estimate.

Estimated gross profit has a legitimate use: giving a sales rep a margin signal at the point of quoting, before any cost has posted. It is the wrong input for a report that goes to the board. If you want to see how far an estimate can drift, run one item's real numbers through the gross margin calculator and compare.

Where actual COGS comes from

Actual cost of goods sold is created when inventory is relieved, and the amount is determined by the item's costing method. Depending on whether fulfilment and invoicing are separate transactions in your account, COGS posts with the fulfilment or with the invoice. Either way it is a posted accounting line against a COGS account, and that is what a profitability report should read.

Costing methodHow COGS is setEffect on item margin
AverageRunning weighted average at the moment of relief, per item and locationSmooth. Margin drifts with purchase prices rather than jumping, which hides sharp cost changes for a month or two.
FIFO / LIFOThe cost layer consumedLumpy by design. Two identical sales in the same week can show different margins, correctly.
StandardThe standard cost in forceClean, comparable item margins — and every real cost difference is pushed into variance accounts that your item report never sees.
Specific (lot or serial)The cost attached to the exact unitThe most accurate and the least comparable. Margin varies unit to unit.
Standard costing gives you the tidiest item margin report and the biggest gap to the GL. That is the trade.

Landed cost is the quiet one

Freight, duty, insurance and brokerage are part of what an item cost you. NetSuite can allocate those charges across the lines of an item receipt — by weight, by quantity or by value — so they land in inventory cost and flow into COGS when the item sells. If you do not use that mechanism, the charges sit in expense accounts, item cost is understated, and every item margin in your report is too high by the same systematic amount.

The size of this is regularly underestimated. On imported goods, freight and duty of 11% to 18% of unit cost is unremarkable, and an item showing a 32% margin on unlanded cost is showing something closer to 25% on the truth. The landed cost calculator makes the per-unit uplift explicit, and what to include in landed cost covers the allocation choices — the allocation basis matters more than people expect when a container mixes heavy low-value goods with light high-value ones.

One behavioural note: landed cost applied to a receipt after the goods have already been sold does not retroactively correct COGS that has already posted. It affects cost going forward, and how far it reaches back depends on your costing method and on the recalculation NetSuite performs. Apply landed cost at receipt, as part of the close, not in an annual clean-up.

Free calculator
Gross margin calculator

Check the arithmetic on a single item before you trust a report of 4,000 of them: revenue, COGS, gross profit, margin, markup, and the price needed for a target margin.

Why item margin never equals GL margin

This is the part to prepare before the meeting, not during it. Build the bridge explicitly. Here is a realistic one for a distributor with standard costing, for a single quarter.

Bridge lineAmountWhy it sits outside item margin
Item-level gross margin from the sales dataset$1,842,000Revenue less posted COGS, by item, freight and discount pseudo-items excluded
Purchase price variance($38,400)Under standard costing, the difference between standard and actual purchase cost posts to a variance account, not to any item's COGS
Production and absorption variances($17,200)Work order variances hit the GL and belong to no sold item
Inventory adjustments, scrap and cycle-count writes($24,900)Real cost of goods with no sale attached
Freight revenue billed to customers$61,300Revenue on a shipping line with no item cost behind it
Fulfilments in the period without matching invoices($12,700)Timing: cost posted, revenue not yet
GL gross profit$1,810,100The number on the P&L
A 1.7% gap, fully explained in six lines. Produce this once and the argument stops permanently.

Two of those lines deserve ongoing attention rather than a one-off explanation. Purchase price variance is a signal about standard-cost hygiene, covered in purchase price variance explained. Inventory adjustments and scrap are a signal about warehouse accuracy, and they are usually the line that grows quietly — the same reconciliation covered in the inventory valuation report.

Lines that are not really items

A transaction-line dataset contains several things that look like items and are not. Each one distorts a margin report in a different direction.

  • Freight and handling lines. Revenue with no item cost. Left in, they inflate blended margin. Excluded, your item revenue no longer ties to the revenue account. Pick one and label the column.
  • Discount lines. A discount entered as its own line reduces revenue, but summarising by item leaves that reduction attached to a discount item rather than to the product that was discounted. Item margins come out too high and one meaningless line shows a huge negative.
  • Kits and packages. These do not hold cost themselves; their components relieve inventory individually. A kit's margin has to be assembled from its components, or the kit shows full revenue against near-zero cost.
  • Assemblies. Cost comes from the build, so an assembly's margin reflects the build's component and labour costs at the time it was built, not today's component prices.
  • Drop-shipped items. Never in your inventory, so cost comes from the purchase rather than from a costing layer. Margin is real but the mechanism is different, and rebates or freight settled later will not be in it.
  • Returns and credit memos. A return brings stock back at a cost determined by the costing method, which need not be the cost it left at. Net a period's returns against its sales and the margin on a heavily returned item can look better than the original sale.

What a good item profitability report looks like

  • Line-level, from posted accounting lines, with revenue and COGS read from the accounts rather than from estimate fields. This is the whole difference between a report that ties out and one that does not.
  • One stated basis — shipment or invoice — and one stated period type, with the basis in the report title.
  • Dollar contribution as the primary sort, margin percentage as a secondary column. Percentage-first sorting surfaces low-volume specials and buries the item quietly losing 90,000 dollars a year.
  • Rolling twelve months alongside the current period. A single month of item margin is mostly noise from purchase timing and mix.
  • Volume next to margin. Margin without units sold cannot be acted on, because the response to a thin margin on 300,000 units is a price conversation and the response to a thin margin on 30 units is to stop stocking it.
  • A named exclusion list — freight, discount and other non-product lines — visible on the report, so the reconciliation to the GL is always available.

Then use it for the one decision it is good at: which items to push, reprice or drop. That is a contribution question rather than a full-cost question, so pair the item view with contribution margin before anyone concludes that a low-margin item should be discontinued — an item covering its variable cost and contributing to fixed overhead is often worth keeping even at 9%.

Assembling all of this normally means a saved search for revenue, another for cost, an export, a lookup against item attributes and a pivot table that one person maintains. answers it as a question against your own account — gross margin by item for the last twelve months, from posted COGS, excluding freight and discount lines — and shows the SuiteQL it ran, so you can see which accounts and which basis produced the number before you take it into a pricing meeting.

Frequently asked questions

Why is estimated gross profit wrong in NetSuite?

It is not wrong, it is estimated. Estimated gross profit uses the item's cost estimate type — average cost, last purchase price, a preferred vendor rate or a typed item-defined cost — rather than the cost that actually posted. A stale last purchase price or an item-defined cost nobody has revisited produces a confident margin that never existed.

How do I report actual gross margin by item in NetSuite?

Read posted accounting lines rather than estimate fields: revenue from the income accounts on invoices, and COGS from the cost of goods sold accounts relieved when inventory was fulfilled. Group by item at line level, state whether the basis is shipment or invoice, and exclude freight and discount lines with the exclusion noted on the report.

Why does item margin not match the gross profit on my P&L?

Because several real costs belong to no sold item. Purchase price and production variances under standard costing, inventory adjustments and scrap, freight revenue with no item cost, and fulfilments whose invoices fall in the next period all sit outside item margin. Build the bridge once as a list of named lines and the difference stops being a mystery.

Does landed cost affect item profitability in NetSuite?

Yes, and substantially on imported goods. If freight, duty and brokerage are allocated to item receipts, they enter inventory cost and flow into COGS when the item sells. If they are left in expense accounts, every item margin is overstated by that amount — often 11% to 18% of unit cost on imports, which turns a reported 32% margin into something nearer 25%.

How do kit items affect a margin report?

Kits and packages do not carry inventory cost themselves; their component items relieve inventory individually. A report grouped by the kit therefore shows full kit revenue against little or no cost. Either roll component costs up to the kit deliberately, or report kits separately so nobody reads their apparent margin as real.

Should I sort item profitability by margin percentage or dollars?

Dollars first, percentage second. Percentage-first sorting puts low-volume specials at the top and buries the high-volume item quietly losing money. Include units sold in the same table, because a thin margin on 300,000 units is a pricing conversation while a thin margin on 30 units is a stocking decision.

Your ERP already knows. Start asking.

ERPray computes answers like these live from your own ERP account and shows the exact query behind every number. Early access is open for NetSuite teams — free plan at launch.