Which Products Are Actually Profitable on Shopify? A Diagnostic You Can Run Today
by Trivas.ai
|
7 min read
Oct 20, 2026
Your Bestseller Might Be Losing You Money
Picture a SKU doing $40,000 a month in revenue. It's ranked #1 in your Shopify top products report, every single week. Looks great on the dashboard. Problem is, once you factor in blended customer acquisition cost and the return rate on this particular style, it's netting negative. You're paying to sell it.
This happens more than most founders want to admit. Shopify's default analytics sorts by revenue or units sold, and neither of those is profit. A product can top your sales report and still be bleeding you dry, quietly, month after month, because the report was never built to show margin in the first place.
This post is a diagnostic. Run it on your own catalog and you'll come out the other side with your SKUs ranked by actual contribution margin, not top-line sales. That's the real answer to which products are actually profitable on Shopify, and it's rarely the answer the top products report gives you.
Fair warning: this isn't a five-minute exercise. You'll need to pull numbers from at least three or four places, Shopify, your ad platforms, your payment processor, and your 3PL, because no single report has all of it. That's exactly why most DTC brands never do this and just trust the top-line numbers instead.
What "Actually Profitable" Means (And What It Doesn't)
Contribution margin per unit is the number that actually matters. It's selling price, minus COGS, minus payment processing fees, minus pick/pack/shipping, minus allocated ad spend, minus a reserve for returns and refunds. Whatever's left after all five of those is what the product actually put in your pocket.
Gross margin isn't that. Gross margin usually stops at COGS, which means it ignores customer acquisition cost completely. That's how a product with a 60% gross margin on paper turns into a loss-maker in practice: the margin was never the problem, the cost of getting someone to buy it was.
Most founders also conflate store-level profitability with SKU-level profitability. They check the bank account, see the business is profitable overall, and assume that means every product is pulling its weight. It doesn't. A handful of strong performers can be subsidizing several SKUs that lose money every time they sell, and the P&L will never tell you which ones.
Here's what it looks like with real numbers. Take a $50 product with $18 COGS. Payment processing at 4.8% takes $2.40. Fulfillment runs $6. Allocated ad spend, which we'll get into in the next section, comes out to $14. Add a $1.50 reserve for returns. That's $8.10 in actual contribution margin, not the $32 gross margin the spreadsheet shows you if you stop at COGS.
Step 1: Pull the Real Cost Inputs (Not Just COGS)
Five inputs, per SKU, before any of the rest of this works:
Unit COGS
Payment processing fees (Shopify's standard 2.9% + 30c, or your negotiated rate)
Average shipping cost by weight and zone
Return rate by product category
Packaging and pick/pack cost pulled from your 3PL invoice
The one that gets skipped most often is return processing. Apparel and anything with sizing can run 15 to 30% return rates. Accessories and non-sized goods are usually 2 to 5%. If you're applying a blanket return assumption across your whole catalog, you're almost certainly misjudging your apparel SKUs in one direction and your accessories in the other.
Shopify's own cost-per-item field is supposed to hold the COGS number, but in most stores it's either blank or months out of date. Which means step one, realistically, is a manual audit of the product catalog before any of the math downstream means anything.
This is also the step where most founders quit. Pulling five cost inputs per SKU across a catalog of 200+ products is tedious, and there's no single report that hands it to you. That's exactly why so many profitability claims in DTC are guesses dressed up as numbers.
Step 2: Allocate Ad Spend to the SKU Level, Not Just the Campaign Level
Campaign-level ROAS lies about product profitability, routinely. A campaign can report a clean 3x ROAS while 80% of its revenue comes from one low-margin SKU being used as bait to get people into the funnel. The campaign looks healthy. The product driving it might be barely breaking even.
A simple allocation method: pull ad spend by campaign and ad set from Meta and Google, map each campaign to the products it's actually promoting, then divide that spend across units sold in the same window. It's not perfect, but it's a real improvement over pretending ad spend doesn't touch specific SKUs at all.
Watch for the blended CAC trap too. A product can post a great direct ROAS on its own prospecting campaign and still be unprofitable once you add in the branded search and retargeting spend that's propping up demand for it. Direct ROAS alone almost always understates true acquisition cost.
This is the step where most spreadsheets fall apart, because it requires joining ad platform data with Shopify order data by SKU and date, not just matching campaign totals to total revenue. Tools built for this exact join, like a ROAS calculator that accounts for blended spend rather than platform-reported numbers, are worth using here instead of trying to eyeball it.
Step 3: Run the Diagnostic Across Your Top 20 SKUs
Here's the actual test. Rank your top 20 SKUs by revenue. Then recalculate using the contribution margin formula from the section above. Put both rankings side by side.
Four outcomes show up, every time:
True winners: profitable in both rankings. Keep doing what you're doing.
Hidden losers: high on the revenue rank, negative on the margin rank. These are the ones costing you money while looking like your best products.
Undervalued winners: low on the revenue rank, strong margin. Usually under-marketed, worth more ad budget.
Dead weight: low on both. Candidates to cut or reprice.
One concrete red flag: if allocated ad spend on a SKU exceeds 35 to 40% of its selling price, that product deserves a hard look no matter what the top-line ROAS says. That threshold catches a lot of "profitable" products that aren't.
Run this monthly, not quarterly. Ad costs shift fast, return rates shift fast, and a single bad promo cycle is enough to flip a SKU from profitable to underwater. A quarterly check means you find out three months too late.
Why This Is Hard to Do in Shopify Alone
Shopify's native reports don't join ad spend data at all. Revenue, units, even gross margin if you've filled in cost-per-item, sure. But Meta spend, Google spend, GA4 attribution, none of it lives in Shopify, which means this entire exercise has to happen somewhere else: a spreadsheet, or a separate analytics layer.
The manual version takes most teams 3 to 5 hours a month once the process is set up, and it breaks every time a new SKU launches, a discount code gets added, or a new ad platform enters the mix. It's not a one-time build, it's ongoing maintenance.
Trivas is built to be the automated version of this exact diagnostic. It pulls Shopify, Meta, Google, and GA4 data into one place on Redshift, so contribution margin by SKU updates on its own instead of requiring a manual join every month. If you're running Shopify and want this set up without rebuilding the join yourself, the Shopify integration is built around this specific workflow, and the app itself is listed on the Trivas AI on the Shopify App Store.
Run This on Your Own Store
Three steps, in order: gather the true unit costs per SKU, allocate ad spend down to the SKU level instead of the campaign level, then compare your revenue ranking against your margin ranking and see what moves.
Direct next step: pick your top 10 SKUs by revenue this month and run the math by hand before you automate anything. You'll learn more from doing it manually once than from reading about it twice.
If you'd rather not rebuild this spreadsheet every single month, the free trial is the lowest-friction way to see contribution margin by SKU calculated automatically, without committing to a full setup first.
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 with API Access: A Technical Guide to Pulling Your Data Programmatically
3 min read
Technology Solutions for CAC Management
3 min read
Ecommerce Analytics for Brand Building Toward Exit: What Buyers Actually Check