Product Performance by SKU: How to Track It Without Drowning in Spreadsheets
by Trivas.ai
|
7 min read
Oct 22, 2026
Your Shopify dashboard says revenue is up 4% this month. Feels fine. Nobody panics over 4%.
But pull that number apart by SKU and you might find 20% of your catalog is bleeding money while another 20% is carrying the entire store on its back. The blended number hides both stories. It averages a disaster and a win into "meh."
That's the whole case for tracking product performance by sku instead of leaning on store-level totals. It means looking at units sold, revenue, margin, and return rate for one specific variant, not the category it belongs to. Not "hoodies." The size-M charcoal hoodie, specifically.
And this isn't a report you build once and file away. It's a habit. The point is catching a slow-moving SKU before it ties up six months of cash in a warehouse, not explaining after the fact why inventory is underwater.
What Is a SKU and What Is a KPI, in Plain Terms
A SKU (stock keeping unit) is the unique identifier for one specific version of a product: a size, a color, a bundle. It's how a business tells apart the red medium shirt from the red large one internally, even if a customer sees them as "the same shirt."
A KPI (key performance indicator) is the metric you pick to judge how that SKU is actually doing. Sell-through rate. Contribution margin. Return rate. Whatever answers the question "is this thing worth the shelf space it's taking up."
People blur these together constantly. SKU is the what. KPI is the how you judge it. You need both: a SKU without a KPI is just an ID number sitting in a spreadsheet, and a KPI without a SKU is a vague brand-wide average that tells you nothing about which product to fix.
Put them together and you get a scorecard. One row per SKU, one column per KPI. That's the entire structure product performance by sku tracking is built on.
How Do You Calculate SKU Productivity
The standard formula is simple: SKU productivity equals total sales generated by that SKU, divided by whatever it consumes to generate them, whether that's shelf space, ad spend, or inventory dollars held.
Say SKU A does $12,000 a month on $2,000 worth of held inventory. That's a 6x productivity ratio. SKU B does $8,000 a month but ties up $4,000 of inventory to get there. That's 2x. On a revenue-only view, B looks like it's doing two-thirds as well as A. On a productivity view, it's doing a third as well, and it's eating three times the cash to underperform.
That gap is the whole point of running the calculation at all.
Here's the catch most teams hit: this math is only as good as the inputs feeding it. Units sold lives in Shopify or Seller Central. Returns often live somewhere else entirely. Ad spend lives in Meta or Google's own dashboard. If those three numbers don't meet in the same place, you're not calculating SKU productivity, you're guessing with extra steps.
The Core Metrics That Actually Belong on a SKU Scorecard
Five metrics are non-negotiable for any SKU-level view:
Units sold: raw volume over the period
Revenue: gross dollars, not margin
Gross margin %: what you actually keep after cost of goods
Return/refund rate: how much of that revenue comes back out the door
Days of stock on hand: how long current inventory lasts at current velocity
Most dashboards stop there, and that's where they fall short. Two more belong on the same screen: ad spend and ROAS attributed to that specific SKU (not the campaign, the SKU), and repeat purchase rate for anything replenishable, like supplements or skincare.
The part teams get wrong most often: keeping stock levels in a separate inventory report from sales velocity. If those two numbers don't sit next to each other, you'll reorder the slow mover because it "looks fine" in isolation, and stock out on the fast one because nobody was watching days-of-stock drop. Velocity and stock on hand have to live on the same row, or the scorecard is only half-useful.
What Does SKU Mean for How You Actually Make Decisions
A SKU exists so you can make a call about one specific variant, instead of guessing off a blended product-line average that flatters the bad performers and buries the good ones.
Here's a real example of the kind of decision this unlocks: a SKU showing a strong ROAS on the ad platform, but a 30% return rate on the order platform. Top-line, it looks like a winner worth scaling. Once you net out the returns against actual margin, it's break-even at best. Pause the spend, not the whole campaign, just that SKU, and redirect the budget to something that's actually profitable once returns are counted.
That kind of call only happens when you can see the SKU on its own, not folded into a category average.
If you need to physically locate a SKU, it's usually printed right on the product label, the barcode, or the packaging. Digitally, it's on the product detail page in Shopify or the listing details in Seller Central. Not complicated to find. The hard part isn't locating the SKU, it's getting its metrics to line up across every platform it touches.
Where This Breaks Down When You're Pulling It Manually
The typical manual workflow looks like this: export Shopify orders, export a Seller Central report, export an ad platform report, then VLOOKUP all three together by SKU in Excel.
It breaks in three predictable places. First, SKU naming mismatches: Shopify has "HOODIE-CHAR-M," Amazon has "hoodie-charcoal-med," and your VLOOKUP returns nothing because the strings don't match. Second, ad platforms often report at the campaign or ad-set level, not the SKU level, so you're left guessing which SKU actually drove the spend. Third, refunds show up in a completely separate report from the original sale, so your "revenue" number is often wrong until someone manually nets it out.
None of this is exotic. It's just tedious, and it adds up. Teams doing this weekly routinely lose half a day per cycle reconciling SKU IDs before any actual analysis even starts. That's half a day spent matching strings, not making decisions.
Seeing SKU Performance Across Shopify and Amazon in One View
This is the problem a Redshift-backed warehouse is built to solve: pull Shopify and Amazon order, return, and ad spend data into one place, and match SKU IDs automatically instead of by hand. That's what BI reporting inside Trivas does, whether your store runs on Shopify, Amazon, or both.
The output is one table. Units sold, margin, stock on hand, and ROAS, side by side, per SKU. Refreshed daily instead of rebuilt by hand every Monday.
On top of that sits Wingman, the AI layer that surfaces what matters without you having to go hunting for it. If a SKU's return rate jumps 15 points, Wingman flags it in plain language before it ever shows up buried in a weekly export. That's the difference between catching a problem on day three and catching it on day thirty, after it's already eaten a chunk of your margin. The insights layer is built specifically for that kind of early flag.
Start With the SKUs That Are Costing You Money Right Now
SKU-level visibility beats a store-wide average every single time there's a reorder or an ad-budget call on the table. Averages are comfortable. They're also where bad SKUs hide.
If you're curious what your own breakdown looks like, connect a Shopify or Amazon account and see the first SKU-level view for yourself, no pitch required.
And if you want exact definitions before building your own scorecard from scratch, the data dictionary has the formulas laid out metric by metric.
Content author and contributor at Trivas.ai, sharing insights on e-commerce analytics, business intelligence, and data-driven strategies to help businesses grow.
Continue Reading
explore more insights
Ecommerce Analytics for UK Shopify Brands: The BOFU Buying Guide
3 min read
Ecommerce Analytics for $20M Shopify Brands: What Actually Works at This Scale
3 min read
Trivas.ai Integrations List: Every Platform We Connect (2025)