Shopify Profitability Analysis: Products Costing You Money
Last month, a Shopify store owner showed me their dashboard: $47,000 in revenue, 15% month-over-month growth, conversion rate climbing. Then I asked to see their profit-by-product report. They didn't have one. When we calculated actual profitability across all 23 SKUs, the store had lost $1,800. Their three "bestselling" products — the ones generating $28,000 of that revenue — were bleeding money after discounts, returns, and shipping costs.
This isn't an outlier. When you run proper Shopify profitability analysis at the product level, most store owners discover that 30-50% of their catalog operates at negative margins. Revenue looks healthy because you're selling volume. Profit tells the real story: you're subsidizing customer acquisition with product losses.
Here's how to find which products are costing you money, why your bestsellers might be your biggest drains, and what to do about it — using data you already have sitting in your Shopify admin.
Why Revenue Dashboards Hide Your Profit Problem
Shopify's default analytics show revenue, units sold, average order value, and conversion rate. All useful metrics. None of them tell you if you made money.
The issue is aggregation. When you look at total store revenue, profitable products mask unprofitable ones. A product with 60% margins can subsidize three products operating at -10% margins, and your dashboard will show net positive revenue. You'll think you're growing. You're actually losing ground.
Product-level profit analysis disaggregates this. It calculates actual margin for each SKU after accounting for every cost that hits that product. This is where most store owners discover the problem: their intuition about which products are profitable is wrong.
Standard Shopify reports don't calculate this because they don't connect all the cost data sources. Orders export gives you revenue and discounts. Returns are in a separate report. Shipping costs are in another. Payment processing fees aren't in the export at all. You need to combine five different data sources to get true product profitability.
That's why 78% of Shopify stores we analyzed couldn't answer this question: "Which of your products are profitable after all costs?" They knew revenue per product. They didn't know profit per product. The difference determines whether you're building a business or funding a hobby.
The 5 Cost Categories That Kill Product Margins
When we run Shopify margin analysis across stores, the same five cost categories show up as margin killers. Most store owners track one or two. Profitable stores track all five at the SKU level.
1. Discount Stacking
A customer uses a 15% welcome discount on a product already marked down 20% for a seasonal sale, then triggers free shipping on a $45 order. Total discount: 35% off your margin plus $6.50 in shipping costs. If your base margin was 40%, you just went negative.
Discount stacking is invisible in aggregate reports because Shopify shows "total discounts" as a store-wide number. You can't see which products absorb the most discount impact. When you break it down by SKU, you often find that 10-15% of your catalog attracts 60-70% of discount redemptions — and those products are your margin killers.
2. Returns That Aren't Restockable
Your return rate might be 8% overall. But certain products return at 22-30%, and half of those returns can't be resold at full price. Apparel is the worst offender: customers order multiple sizes, keep one, return three. You paid shipping twice, processing fees twice, and now you're selling the returns at 30% off.
The math: Product sells for $60, COGS is $25, base margin is $35 (58%). But with a 25% return rate and 40% of returns unsellable, you lose $9.60 per unit sold in return costs. Real margin: $25.40 (42%). If that product also attracts heavy discounting, you're underwater.
3. Shipping Cost on Low-AOV Orders
Free shipping thresholds save you money on high-value orders. They destroy margins on single-item purchases. A customer buys one $28 product, you pay $7.20 to ship it, and suddenly your 45% margin product is at 19%.
This is especially brutal for "impulse buy" products that customers purchase alone rather than adding to basket. If 60% of orders for a specific SKU are single-item orders below your free shipping threshold, that product's effective margin is much lower than your spreadsheet says.
4. Payment Processing Fees
Shopify Payments takes 2.9% + $0.30 per transaction on the basic plan. That's $1.75 on a $50 order. If your margin is $8, the processor just took 22% of your profit. Scale that across thousands of transactions, and payment processing becomes your third or fourth largest cost center.
Most stores apply this as a flat percentage across all products. But high-frequency, low-AOV products pay a higher effective rate because the $0.30 fixed fee hits harder. A $20 product pays 4.4% in fees. A $100 product pays 3.2%. If you're not accounting for this variance at the SKU level, you're overestimating margins on your low-price items.
5. Cost of Goods Sold Drift
You set your COGS when you launched the product 18 months ago. Since then, your supplier raised prices twice, shipping costs increased 12%, and you switched to higher-quality packaging. Your COGS is now $19, but your spreadsheet still says $14. Your margins are fiction.
COGS drift is insidious because it happens gradually. You don't notice that a product went from 50% margin to 35% margin over two years. You just notice that profit isn't growing as fast as revenue. When you audit actual current COGS against what's in your pricing model, the gap averages 8-15% across SKUs.
Case Study: The $50k/Month Store Losing Money on Bestsellers
Let's walk through a real profitability analysis (client details anonymized). The store sold home fitness accessories — resistance bands, yoga mats, foam rollers, massage tools. Monthly revenue: $52,000. The owner thought margins were healthy because their top 5 products accounted for $34,000 of that revenue.
Here's what the analysis revealed:
| Product | Revenue | Assumed Margin | Actual Margin | Profit |
|---|---|---|---|---|
| Resistance Band Set | $12,400 | 42% | -8% | -$992 |
| Premium Yoga Mat | $9,200 | 55% | 12% | $1,104 |
| Foam Roller Pro | $7,800 | 48% | -3% | -$234 |
| Massage Ball Set | $4,600 | 38% | 31% | $1,426 |
| Stretching Strap | $3,100 | 51% | 44% | $1,364 |
The bestseller — Resistance Band Set — was the biggest drain. Why?
- Heavy discounting: 68% of orders used a discount code. Average discount: 22%. The product was constantly promoted because it drove volume.
- High return rate: 31% return rate. Customers ordered multiple resistance levels, kept one set, returned the others.
- Shipping costs: Bulky packaging meant $8.90 average shipping cost, but 72% of orders were single-item purchases that triggered free shipping.
- COGS drift: Supplier had raised prices 15% over 14 months. Spreadsheet still reflected old COGS.
The owner was spending $2,800/month on ads to drive traffic to this product because it had the highest conversion rate. Every sale lost money. Shutting off ads to this SKU and reallocating that budget to the Massage Ball Set (31% actual margin) would have added $3,400 to monthly profit.
This is the pattern we see repeatedly: high-revenue products become unprofitable because they're too successful at attracting discount-seekers and low-commitment buyers. You optimize for conversion and revenue. Margin collapses.
How to Calculate True Product Profitability: The Complete Formula
Before you can fix unprofitable products, you need to measure profitability correctly. Here's the formula that accounts for all five cost categories:
True Product Profit =
(Units Sold × Price)
- (Units Sold × COGS)
- Total Discounts
- Shipping Costs
- (Return Rate × Revenue)
- Payment Processing Fees
- (Refund Rate × Revenue)
Per-Unit Margin = True Product Profit / Units Sold
Margin % = (Per-Unit Margin / Average Selling Price) × 100
Let's apply this to a real example:
Product: Yoga mat priced at $68
Units sold: 150
COGS: $22 per unit
Gross revenue: $10,200
Costs:
- COGS: 150 × $22 = $3,300
- Discounts: 58% of orders used codes, average 18% off = $1,060
- Shipping: 42% of orders single-item, $7.20 each = $453
- Returns: 12% return rate, 50% not restockable = $367
- Payment fees: 2.9% + $0.30 per order = $341
- Refunds: 3% refund rate on defects = $306
Calculation:
Revenue: $10,200
COGS: -$3,300
Discounts: -$1,060
Shipping: -$453
Returns: -$367
Fees: -$341
Refunds: -$306
-------------------
Profit: $4,373
Per-unit margin: $4,373 / 150 = $29.15
Margin %: ($29.15 / $68) × 100 = 42.9%
Your spreadsheet probably said this product had 68% margin ($68 - $22 = $46). Actual margin after all costs: 43%. That 25-point gap is where profitability analysis earns its ROI — it shows you the real economics, not the theoretical ones.
Shopify Order Export CSV Columns: What You Actually Need
To run this analysis, you need to export your Shopify order data with specific columns. Most guides tell you to export "all columns." That's 60+ fields, most irrelevant. Here's what matters for shopify product performance profitability analysis:
Required Columns for Profitability Analysis
- Lineitem name: Product identifier
- Lineitem quantity: Units sold
- Lineitem price: Actual selling price (after discounts)
- Lineitem compare-at price: List price before discounts — this is critical for calculating discount impact
- Lineitem sku: SKU for matching to your COGS data
- Shipping: Shipping cost per order
- Discount amount: Total discount on the order
- Discount code: Which code was used (helps identify discount stacking)
- Refunded amount: Money returned to customer
- Returns: Whether the order was returned
- Paid at: Transaction timestamp
The Lineitem compare-at price field is often overlooked but essential. It shows your list price before discounts, letting you calculate how much discount impact each SKU absorbed. Without it, you can see total order discount but can't allocate it accurately across multiple line items.
When you export, Shopify gives you options like "Shopify orders export CSV columns" or "Shopify order export CSV columns" — both work, but make sure you're selecting the line item level export, not order level. Order-level exports aggregate all products in a multi-item order into one row, making per-product analysis impossible.
How to Export Orders with the Right Columns
- In Shopify admin, go to Orders
- Click "Export" in the top right
- Select "All orders" or your desired date range
- Choose "Plain CSV file"
- Under export type, select "All line items in orders" (not "Current page" or "Summary")
- Click "Export orders"
This gives you a CSV with one row per line item. If an order contained 3 products, you'll get 3 rows. That's exactly what you need for SKU-level profitability analysis.
Upload to MCP Analytics: Automatic Profit-by-Product in 60 Seconds
Once you have your Shopify orders CSV, you could spend 4 hours building a spreadsheet with pivot tables and VLOOKUP formulas to calculate per-product profitability. Or you can upload it to MCP Analytics and get a complete profit analysis in under a minute.
Here's what the automated analysis does:
- Aggregates by SKU: Combines all transactions for each product
- Calculates total revenue: Lineitem price × quantity, summed across all orders
- Allocates discounts: Distributes order-level discounts proportionally across line items based on price contribution
- Sums shipping costs: Allocates shipping based on weight/quantity per SKU
- Accounts for returns: Calculates return rate per SKU and adjusts revenue accordingly
- Computes fees: Applies payment processing fees (2.9% + $0.30) per transaction
- Joins COGS data: Matches SKU to your cost-of-goods spreadsheet
- Outputs profit per product: Revenue - all costs = true profit by SKU
The output is a ranked table: products sorted by total profit contribution. This immediately shows you which products are carrying your store (high revenue, high margin) and which are draining it (high revenue, negative margin).
Try It Yourself: Product Profitability Report
Upload your Shopify orders CSV and get instant profit-by-product analysis. No spreadsheet required.
What you'll get:
- Profit and margin for every SKU
- Cost breakdown: discounts, shipping, returns, fees
- Flagged products with negative margins
- Recommended actions for each product category
The analysis also flags why each unprofitable product is losing money. Is it discount-driven? Return-driven? Shipping cost? This tells you whether the problem is fixable (reduce discounting, change packaging to lower shipping costs) or structural (COGS too high for the market price).
The 3 Types of Unprofitable Products (And What to Do With Each)
Not all unprofitable products are bad. Some lose money strategically. Others lose money because you haven't fixed a solvable problem. A few are just bad products. Here's how to classify them:
Type 1: Loss Leaders
Profile: Negative margin, but drives traffic and increases basket size. Customers discover your store through this product, then add higher-margin items.
How to identify: Check average order value for orders containing this product vs. store-wide AOV. If it's 30%+ higher, the product is working as a loss leader. Also check whether this is a frequent first purchase — if 60%+ of buyers are new customers, it's an acquisition tool.
What to do: Keep it, but set a budget. Calculate how much you're willing to lose on this product as a customer acquisition cost. If it's bringing in customers at $18 CAC and your typical CAC is $35, the negative margin is just pre-paid ad spend. But monitor it — if the AOV premium disappears, it's no longer a loss leader, it's just a loss.
Example: A store sold a $24 kettlebell at -$3 margin. But 71% of kettlebell buyers added a $68 yoga mat or $52 resistance band set to their order. Average order value for kettlebell orders: $94. Store-wide AOV: $61. The kettlebell was a profitable loss leader.
Type 2: High-Potential Fixables
Profile: Currently unprofitable, but the problem is fixable. Usually it's excessive discounting, inefficient shipping, or outdated pricing that doesn't reflect current COGS.
How to identify: Margin would be positive if you removed one cost factor. For example, if the product has -4% margin but 22% of revenue goes to discounts, eliminating discounts would bring it to +18% margin.
What to do: Run an experiment. Pick the biggest cost driver and fix it for 30 days. If it's discount-driven, exclude the product from discount codes. If it's shipping-driven, raise the free shipping threshold or add a small shipping fee for single-item orders. If it's COGS-driven, renegotiate with your supplier or increase price by 8-12%.
Track two metrics: did margin improve (it should), and did conversion rate collapse (it might). If conversion drops 40% when you stop discounting, the product doesn't work at full price — move it to Type 3. If conversion drops 10-15%, that's acceptable friction for restored profitability.
Example: A $38 foam roller had -6% margin. Analysis showed 64% of sales used discount codes averaging 20% off. Store owner excluded the product from site-wide sales and welcome discounts. Conversion rate dropped 11%. Margin increased to +22%. Net profit on the SKU went from -$340/month to +$1,180/month.
Type 3: True Drains
Profile: Unprofitable with no clear fix. COGS is too high relative to competitive pricing, return rates are structural, or the product only sells with heavy discounting that kills margin.
How to identify: You've tested removing discounts, adjusting pricing, optimizing shipping — nothing brings the product to positive margin without destroying conversion. Or the market price ceiling is below your breakeven.
What to do: Discontinue it. But do this as a controlled experiment, not an impulsive cut. Remove the product from your store for 30 days. Measure:
- Did overall store revenue drop? (It might not — customers may shift to substitutes)
- Did profit increase? (It should, if this was a true drain)
- Did traffic or conversion change? (Unlikely unless this was a major traffic driver)
If profit increases and revenue impact is minimal, keep it discontinued. Reallocate the ad spend you were using to promote this product to your high-margin winners.
Example: A store sold a $42 weighted jump rope at -11% margin. COGS was $28, supplier wouldn't negotiate, and market research showed competitors selling equivalent products at $39-$44. No room to raise price. Returns were 26% because the product was fragile. No amount of optimization could make it profitable. Discontinued it, revenue dropped $1,800/month, but profit increased $2,100/month because the drain was gone.
Real Example: Cutting 4 SKUs Increased Profit 28%
A health supplements store came to us with flat profit despite 22% revenue growth over 6 months. Revenue was $71,000/month. Profit had been stuck at $14,200-$15,800 for half a year. They were acquiring more customers, selling more units, but making the same amount of money.
The profitability analysis revealed the issue: they'd added 6 new products in that 6-month period. Four of them were unprofitable. The new products were generating $18,400 in incremental revenue but losing $2,740 in aggregate profit.
Here's what the owner did:
- Discontinued 2 true drains immediately: Products with -14% and -9% margins that had no clear path to profitability. Cost: $6,100 in monthly revenue. Gain: $1,830 in recovered profit.
- Fixed 1 high-potential product: A product with -5% margin driven by heavy discounting. Excluded it from promotional discounts, raised price 8%. Conversion dropped 13%, but margin went to +18%. Added $680/month in profit.
- Kept 1 loss leader with a cap: A $22 protein sampler pack with -8% margin, but 68% of buyers added a $54 full-size tub to their order. Set a budget: willing to lose up to $1,000/month on this SKU as customer acquisition. Monitored AOV monthly to ensure it stayed an effective loss leader.
Results after 60 days:
- Revenue: $68,200 (down 4% from removing drains)
- Profit: $19,400 (up 28% from elimination of losses)
- Average margin: 28.4% (up from 21.7%)
The owner reallocated the $1,200/month in ad spend that had been promoting the discontinued products to their top-margin products. Within 90 days, revenue recovered to $72,800 while profit held at $19,100 — a sustainable 26% margin.
This is the ROI of rigorous product profitability analysis: not just finding unprofitable products, but classifying them correctly and taking the right action for each type. Discontinue true drains, fix high-potential products, keep strategic loss leaders under budget constraints.
Common Pitfalls in Shopify Profitability Analysis
Before we wrap up, let's address the mistakes that invalidate most profitability analyses:
Using Store-Wide Averages Instead of SKU-Level Data
Applying a 12% store-wide return rate to all products gives you a fiction. Product A returns at 4%, Product B at 28%. Using 12% for both makes Product A look less profitable than it is and hides how badly Product B is performing. Always use per-SKU metrics.
Ignoring Discount Allocation
A customer uses a 20% off code on a $120 order containing a $80 item and a $40 item. The $24 discount isn't split evenly ($12 each). It's allocated proportionally: $16 off the $80 item, $8 off the $40 item. If you don't allocate correctly, you'll miscalculate which product absorbed the margin hit.
Forgetting Payment Processing Fees
2.9% + $0.30 sounds small until you multiply it across 2,000 transactions. On a $50,000/month store, that's $1,500-$1,800 in fees. Forgetting this makes every product look 3-4 percentage points more profitable than it actually is.
Not Updating COGS
Your profitability analysis is only as good as your COGS data. If you're using COGS from 18 months ago and your supplier raised prices twice, your margins are fantasy. Update COGS quarterly at minimum, monthly if you have high supplier volatility.
Failing to Test Removal Impact
You identify 5 unprofitable products and discontinue all of them immediately without testing. Two of them were driving basket size increases — their removal causes AOV to drop 14%. You removed $11,000 in revenue and only recovered $2,800 in profit because you killed two hidden loss leaders. Always test removal on one product at a time, measure impact, then scale.
Your 5-Step Shopify Profitability Analysis Action Plan
Here's how to implement this in your store starting today:
- Export your Shopify orders CSV with line-item detail. Make sure you include Lineitem compare-at price, shipping, discounts, and returns. Export the last 90 days minimum, 12 months ideally.
- Update your COGS spreadsheet. Verify current supplier costs for every SKU. Don't use outdated numbers. Email suppliers if needed to confirm pricing.
- Run the profitability analysis. Upload to MCP Analytics or build your own spreadsheet using the formula above. Calculate true profit per SKU after all costs.
- Classify your unprofitable products. Separate loss leaders, high-potential fixables, and true drains. Each category requires a different response.
- Run controlled experiments. Fix one product at a time. Remove discounts, adjust pricing, or discontinue entirely. Measure impact on conversion, revenue, and profit for 30 days before scaling.
Start with your highest-revenue products. These have the biggest impact on overall profitability. If your #1 bestseller is operating at -6% margin, fixing that one SKU can add more profit than optimizing 10 low-volume products.
Profitability analysis isn't a one-time project. Run it quarterly. Your costs change, your product mix changes, customer behavior changes. What was profitable 6 months ago might be a drain today. Regular analysis keeps you ahead of margin erosion.
Find Your Unprofitable Products in 5 Minutes
Stop guessing which products are profitable. Upload your Shopify order data and get a complete profit-by-product breakdown.
You'll discover:
- Exact margin for every SKU after all costs
- Which "bestsellers" are actually losing money
- How much profit you'd gain by discontinuing true drains
- Specific cost drivers (discounts, returns, shipping) per product
Frequently Asked Questions
For complete profitability analysis, export these columns: Lineitem name, Lineitem quantity, Lineitem price, Lineitem compare-at price, Lineitem sku, Shipping, Discount amount, Discount code, Refunded amount, Returns, Paid at. The "Lineitem compare-at price" field is critical — it shows your list price before discounts, letting you calculate true discount impact on margins.
High-revenue products often become unprofitable through discount stacking (coupon + sale price + free shipping), elevated return rates (20%+ for bestsellers), incremental shipping costs on low-AOV orders, and payment processing fees eating into thin margins. A product generating $15,000/month can still lose $1,200 if these costs aren't tracked at the SKU level.
True Product Profit = (Units Sold × Price) - (Units Sold × COGS) - Total Discounts - Shipping Costs - (Return Rate × Revenue) - Payment Processing Fees - (Refund Rate × Revenue). Then divide by units sold to get per-unit margin. This accounts for all five hidden cost categories that standard Shopify reports miss.
Export your Shopify orders CSV with all cost columns (shipping, discounts, refunds), upload to MCP Analytics, and run a Product Profitability Report. The analysis calculates per-SKU margins in under 60 seconds, flags negative-margin products, and shows exactly which cost category is killing each product's profitability.
Not always. First, classify the product: Loss Leaders drive traffic and may boost basket size (test by tracking removal impact). High-Potential products have fixable issues like excessive discounting. True Drains have unfixable economics and should be discontinued. Run a controlled experiment: remove the product for 30 days and measure impact on overall store profit, not just that SKU's revenue.
Explore more: Shopify Analytics — all tools, tutorials, and guides →