Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

At a glance

Per-SKU gross margin percentage. The drill-down for the Gross Margin % headline. Surfaces which products are eating margin and which are subsidising the rest.
What it counts(SUM(SO line revenue) minus SUM(SO line COGS)) ÷ SUM(SO line revenue) per Item, for the period.
Tax treatmentNet of tax.
ShippingIncluded if revenue/cost item, otherwise excluded.
DiscountsDeducted from revenue.
Refunds / Credit MemosDeducted from both.
CurrencyReporting currency.
Subsidiary scopeRespects dashboard filter.
SortDefault sort by margin %, ascending (worst first). Toggle to descending or by revenue contribution.
Time window30D
Alert triggerAny SKU below break-even (negative margin) above a $5K monthly revenue threshold
Rolesowner, finance

Calculation

Calculated automatically from your NetSuite data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A US wholesale apparel distributor on NetSuite. 30-day window 14 Mar 26 to 12 Apr 26. Sorted by margin %, ascending.
SKUDescriptionRevenueCOGSMargin %
BR-D-014Brand D Discounted Sub-style$24,000$26,800-11.7%
BR-C-088Brand C Clearance Tee$18,000$19,200-6.7%
BR-A-202Brand A Premium FOB-only$42,000$43,200-2.9%
BR-B-014Brand B Polo Navy XL$58,000$52,400+9.7%
BR-A-001Brand A Premium Tee Black M$186,000$115,000+38.2%
(top SKUs by margin %)
BR-A-014Brand A Premium Polo$94,000$48,000+48.9%
BR-A-022Brand A Premium Hoodie$128,000$64,000+50.0%
Five things to notice:
  1. 3 SKUs are negative margin. Trip the alert. Each is selling below cost.
  2. BR-D-014 at -11.7% is the worst. Likely heavy discounting + freight cost spike. The Controller pings merchandising: stop selling, raise price, or accept temporary loss to clear stock.
  3. The worst SKUs are typically discounted clearance lines. That’s not a problem if it’s intentional; it is a problem if margin compression on bestsellers (BR-A-001) goes unnoticed.
  4. Concentration matters. BR-A-001 contributes 186Krevenueat38186K revenue at 38% margin = 71K gross profit. One SKU = 25% of profit. If it OOS or compresses, the impact is huge.
  5. Pair with Top SKUs Value and sales velocity. Low-margin + high-velocity = re-evaluate pricing. Low-margin + slow = liquidate.

Sibling cards merchants should reference together

CardWhy pair it with Margin by SKU
Gross Margin %Headline.
Margin Erosion AlertsTrend per SKU.
Top SKUs ValueInventory-side cut.
Landed Cost AvgUpstream pressure.
Dead Stock ValueSlow + low margin = liquidate.
Revenue by ClassBrand/category roll-up.

Reconciling against the vendor’s own dashboard

Where to look in NetSuite:
Reports → Sales → Sales by Item with Margin (per-item, per-period) Reports → Inventory → Item Profitability
The Sales by Item with Margin report should match this card per SKU. Why our number may legitimately differ:
ReasonDirectionWhy
Average vs FIFO costingEitherFIFO can spike margin on a single transaction if costs swung. Average smooths. Card respects Item record method.
Subsequent landed cost adjustmentsEitherBills posted after Item Receipt adjust historic cost retroactively.
Period boundarySmallTransaction date vs posting date.
Cross-connector reconciliation:
CardRelationshipWhy
shopify.gross_margin per productDifferent cost basisShopify uses Variant cost field, not landed cost. Comparing by SKU exposes whether commerce-side cost is current.

Known limitations / merchant FAQs

Why is a SKU showing negative margin? Three usual: (1) heavy discounting (price below cost); (2) cost spike post-pricing (landed cost jumped after retail price was set); (3) freight cost spike on small-margin items. Should I always raise price on negative-margin SKUs? Not always. Loss-leader strategies (offering one product below cost to attract orders that include high-margin items) can be intentional. The card surfaces; the merchandising team decides. Lot / serial costing, how does it appear? Per-lot if specifically lot-priced; otherwise rolled up. Multi-currency, FX impact? Both revenue and cost in reporting currency. Ratio is currency-neutral. Single-subsidiary vs OneWorld? Identical formula. What if cost includes freight-out? Mapping consistent with workspace policy. Some accounts include freight-out in COGS for accurate per-line margin.

Tracked live in Vortex IQ Nerve Centre

Margin by SKU is one of hundreds of KPI pulses Vortex IQ tracks across NetSuite and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.