Blog

New Project - 2026-05-25T160249.282

How to Get SKU-Level Margin Across Multiple Sales Channels

Getting accurate SKU-level margin across multiple sales channels requires three things that most ecommerce financial stacks can’t deliver simultaneously: (1) transaction-level data pulled directly from each channel’s API, not from aggregated settlement reports; (2) automatic cost attribution at the unit level — fulfillment fees, return costs, and channel fees allocated to specific orders and SKUs, not averaged across all products; and (3) continuous updates as operations happen, so margin reflects current reality rather than last month’s reconstruction. Standard tools like QuickBooks and channel accounting bridges cannot deliver all three, because they sit downstream of the operational data rather than at the source.

SKU-level margin is the number that actually tells you whether a product is worth running at its current economics. Not blended category margin. Not channel-level P&L. The specific net contribution of a specific product, accounting for every cost that touches it — fulfillment, returns, channel fees, ad spend — in real time.

Most multi-channel brands don’t have it. They have approximations: monthly P&L reconstructions, quarterly SKU reviews, blended margin rates that average costs across products rather than attributing them precisely. Close enough when margins are healthy and channels are few. A serious liability when margins compress and channels multiply.

Here’s what it actually takes to get it right.

 

Why Standard Tools Can’t Deliver It

QuickBooks sees bank deposits. It can tell you total revenue and total expenses for a period. It cannot tell you the net margin on SKU A sold through Amazon versus SKU A sold through Shopify, because it doesn’t have the channel-level cost data to make that distinction.

Channel accounting bridges go further — they translate platform settlement data into accounting formats and can produce channel-level P&L. But they have a structural ceiling: they aggregate costs at the settlement level, not the transaction level. When Amazon settles your account, the bridge sees total referral fees for the period. It can’t attribute specific fee amounts to specific orders and therefore specific SKUs.

To get true SKU-level margin, you need cost attribution at the transaction level — which means connecting to data sources before they aggregate into settlements.

 

The Four Cost Categories That Have to Connect

SKU-level margin is only accurate when all four variable cost categories connect to the unit automatically:

  • Channel fees: Amazon referral fees, Shopify transaction fees, marketplace commissions — these vary by product category, price point, and sometimes individual SKU. Averaging them across all products produces a rate that’s wrong for every individual product.
  • Fulfillment costs: Pick-and-pack fees, shipping costs, 3PL storage charges — these vary by SKU dimensions, weight, and handling requirements. A heavy SKU and a lightweight SKU have different fulfillment economics that get obscured by any averaging approach.
  • Return costs: The direct cost of processing a return (reverse fulfillment, restocking, potential disposition) plus the revenue impact — both need to attribute to the SKU that generated the return, not to a general return line.
  • Allocated ad spend: When ad spend is tracked at the campaign level but not the product level, you can’t know whether a specific SKU is profitable net of the marketing cost required to sell it. Attribution has to reach the product.

When all four connect automatically at the transaction level, margin by SKU is a live number — not a quarterly calculation.

 

Step 1: Pull from Transaction-Level API Data, Not Settlements

Amazon and Shopify both expose transaction-level data through their APIs — individual order data, fee breakdowns at the order level, fulfillment event data — before that data aggregates into settlements. Pulling from that level gives you the granularity to attribute costs to specific orders and therefore specific SKUs.

Most integrations pull from settlement reports instead, because they’re easier to process. The trade-off: you get totals, not breakdowns. Totals are useful for reporting. Breakdowns are what make SKU-level margin possible.

 

Step 2: Map SKU Identifiers Across Every System

One product might have four different identifiers: a Shopify product ID, an Amazon ASIN, a 3PL SKU, and a QuickBooks item name. When these don’t map to a single canonical identifier, costs and revenues from different systems land on different line items and the per-SKU margin calculation breaks.

Before any financial data flows, a unified SKU taxonomy needs to exist — a single mapping layer that translates every system’s identifier for a product into one record. This is foundational. Without it, attribution is guesswork.

 

Step 3: Attribute Costs Automatically as Operations Occur

Once the data source and SKU mapping are right, the third requirement is timing: costs need to attribute to SKUs the moment the operational event occurs, not when someone processes the month-end reconciliation.

  1. Order ships → fulfillment cost allocated to that SKU immediately
  2. Amazon fee posts → referral fee attributed to the specific order and SKU
  3. Return processes → cost and revenue impact allocated to the originating SKU
  4. Ad spend records → campaign spend allocated to the products in that campaign

When all four happen automatically, SKU-level margin is a live number. When any of them require manual work or batch processing, there’s a lag — and the margin number is always slightly behind the reality.

 

What You Can Do With It

When SKU-level margin is accurate and current, the questions you can answer change completely:

  • Is this product profitable right now, net of actual fulfillment costs and return rates on this channel?
  • Which channel generates the best net margin for this SKU — and is that relationship changing?
  • Is this ad campaign contributing positively to unit economics, or is the marketing cost eroding the margin the product would otherwise have?
  • Which SKUs should be prioritized for restocking based on current margin, not last quarter’s blended rate?

One of our customers discovered their best-selling product was losing $2 per unit — after connecting actual return rates, pick-and-pack fees, and ad cost attribution at the SKU level in real time. They killed the campaign the same day. That decision was delayed 30 days when the data lived in disconnected systems.

SKU-level margin in real time doesn’t just improve reporting. It changes the speed at which decisions can be made — and in multi-channel ecommerce, speed is often the margin.

  See how Focal works → getfocalsoft.com  

 

 

Categories

Forgot Password?

Enter your email to reset your password.

Sign Up

Or Sign Up with

Login

Or Login with