Shopify Profit Analysis: Product-Level Margins
Let me walk you through something I see constantly: store owners who think they know which products are profitable, only to discover they've been losing money on their "best sellers" for months. Today, we're going to find your actual product-level margins in about 5 minutes using your Shopify order data.
What You'll Need Before Starting
Before we dive in, let's make sure you have everything ready. You'll need:
- Access to your Shopify admin panel (you need to be able to export orders)
- Basic cost information for your products (what you pay suppliers or manufacturers)
- Your average shipping costs per product (if you offer free shipping, this is critical)
- 5-10 minutes of uninterrupted time
There's no such thing as a dumb question in analytics, so if you're not sure about any of these items, that's perfectly fine. We'll clarify as we go.
What You'll Accomplish
By the end of this tutorial, you'll have a complete list of every product you sell, ranked by actual profitability. Not revenue. Not gross margin. Actual profit after accounting for:
- Cost of goods sold (COGS)
- Shipping costs (especially if you offer "free" shipping)
- Payment processing fees (Shopify Payments, PayPal, etc.)
- Return rates by product
- Discount codes and promotional pricing
You'll see which products are secretly bleeding your cash flow, and which ones are the real profit drivers. Let's start with the basics and build from there.
Step 1: The Hidden Costs Killing Your Margins
Before we build a model, let's just look at the data. Here's what happens to a typical $50 product sale:
Product Sale Price: $50.00
Cost of Goods (COGS): -$22.00 (44% of price)
Shopify Payment Fee (2.9%): -$1.45
Shopify Transaction Fee: -$0.30
Shipping Cost: -$8.50 (if you offer free shipping)
-------------------------------------------
Gross Profit: $17.75 (35.5% margin)
That looks reasonable, right? But now add the invisible killers:
Return Rate for This SKU: 15% (-$2.66 average loss)
Discount Code Usage: 25% (-$3.13 average)
Packaging Materials: (-$1.50)
-------------------------------------------
Actual Net Profit: $10.46 (20.9% margin)
The simplest explanation is often the most useful: your profitable-looking product just lost 41% of its apparent margin to hidden costs.
Now imagine one of your products has a 30% return rate, or your average discount code takes off 20% instead of 10%. You could easily be selling products at a loss without realizing it. That's why we need product-level analysis.
Understanding these cost layers is foundational to making good business decisions. If you're curious about other analytical frameworks for prioritizing which products deserve attention, our guide to ABC/Pareto analysis shows how to classify your inventory by importance.
Step 2: What True Product Profitability Looks Like
Let me show you a real example (with identifying details changed). Here's what one store owner discovered:
Product: "Premium Yoga Mat Bundle"
-------------------------------------------
Gross Revenue (100 units): $6,500.00
Customer Pays: $65.00 per unit
COSTS BREAKDOWN:
Unit COGS: $28.00
Shipping (free to customer): $9.50
Payment Processing (2.9%+30¢): $2.19
Return Rate: 28% -$11.11 average impact
Avg Discount Applied: 18% -$11.70
TRUE PROFIT PER UNIT: $2.50 (3.8% margin!)
-------------------------------------------
Total Net Profit (100 units): $250.00
This was their second-best seller by revenue. They thought it was a winner. In reality, after accounting for its high return rate (yoga mats are tricky to ship without damage), they were making almost nothing.
Compare that to a product they almost discontinued:
Product: "Basic Resistance Band Set"
-------------------------------------------
Gross Revenue (50 units): $1,250.00
Customer Pays: $25.00 per unit
COSTS BREAKDOWN:
Unit COGS: $6.50
Shipping (free to customer): $3.20
Payment Processing (2.9%+30¢): $1.03
Return Rate: 4% -$0.67 average impact
Avg Discount Applied: 8% -$2.00
TRUE PROFIT PER UNIT: $11.60 (46.4% margin!)
-------------------------------------------
Total Net Profit (50 units): $580.00
Lower revenue, but more than double the total profit. This is why we analyze at the product level.
Step 3: Export Your Shopify Order Data
Now let's get your actual data. Here's the step-by-step process:
3.1 Navigate to Your Shopify Orders
- Log into your Shopify admin panel
- Click on "Orders" in the left sidebar
- You should see your complete order history
3.2 Configure Your Export Settings
This is where most people make mistakes, so let's go slowly:
- Click the "Export" button (top right of the Orders page)
- Choose your date range - I recommend starting with the last 90 days for meaningful patterns
- Select "All orders" or filter by fulfillment status if needed
- Critical step: Make sure your export includes these columns:
- Lineitem name (product name)
- Lineitem quantity
- Lineitem price
- Lineitem compare-at price (shows original price if discounted)
- Lineitem SKU
- Shipping
- Financial Status
- Paid at
3.3 Understanding the Shopify Orders CSV Columns
When you export your Shopify orders, the CSV contains specific column headers. The most important ones for profit analysis are:
# Key Columns in Your Shopify Export:
Lineitem name # What the product is called
Lineitem quantity # How many were ordered
Lineitem price # Actual price paid
Lineitem compare-at price # Original price (before discounts)
Lineitem sku # Your internal product code
Shipping # Shipping charged to customer
Subtotal # Order subtotal before tax/shipping
Total # Final order total
Financial Status # paid, refunded, partially_refunded, etc.
Many people search for "shopify order export csv columns lineitem compare at price" or "shopify orders export csv columns lineitem compare-at price" because this column is essential for understanding discount impact. The compare-at price shows what the product should have sold for, while the actual lineitem price shows what the customer paid. The difference is your discount cost.
3.4 Download the CSV File
- Click "Export orders"
- Shopify will prepare your file (this can take a minute for large stores)
- Download the CSV when ready
- Save it somewhere you can find it (Desktop or Downloads folder works fine)
Expected output: You should have a CSV file named something like "orders_export_2024_01_15.csv" with hundreds or thousands of rows (depending on your order volume).
Step 4: Upload to MCP Analytics Dataset Join Module
Now we're going to analyze this data. Before we jump into complex methods, let's use a straightforward approach.
4.1 Access the Analysis Tool
- Navigate to the MCP Analytics analysis platform
- Create a free account if you haven't already (no credit card needed)
- Click on "New Analysis" or "Upload Dataset"
4.2 Upload Your Shopify CSV
- Click "Choose File" or drag-and-drop your Shopify orders CSV
- The system will automatically detect your column headers
- Review the preview - you should see your product names, prices, quantities, etc.
4.3 Configure Cost Parameters
The platform will ask for some additional information to calculate true profit:
# Information You'll Need to Enter:
Average COGS by Product: (enter as percentage or dollar amount)
Average Shipping Cost: (if you offer free shipping)
Payment Processing Rate: (default: 2.9% + $0.30 for Shopify Payments)
Packaging Cost Per Order: (optional, but recommended)
Don't worry if you don't have exact COGS for every SKU. You can:
- Enter an average COGS percentage (e.g., "40% of sale price")
- Upload a separate CSV mapping SKU to COGS
- Use category-level averages (apparel: 45%, accessories: 30%, etc.)
4.4 Validate Your Upload
Before processing, check these three things:
- Row count matches: Your CSV row count should match what the platform shows
- Date range is correct: Verify the earliest and latest order dates
- Revenue total is close: The system calculates total revenue - does it match your Shopify dashboard?
Expected output: You'll see a confirmation screen showing something like "2,847 orders processed, 156 unique products identified, date range: Jan 1 - Mar 31, 2024"
Step 5: Read the Results: Products Ranked by Actual Profit
What does this visualization tell us? Let's look together.
5.1 Understanding Your Profit Dashboard
The analysis platform will show you several views. Here's how to read each one:
View 1: Products Ranked by Total Net Profit
Rank | Product Name | Units | Revenue | Net Profit | Margin
-----|---------------------------|-------|----------|------------|-------
1 | Basic Resistance Band Set | 450 | $11,250 | $5,220 | 46.4%
2 | Foam Roller - Standard | 320 | $12,800 | $4,480 | 35.0%
3 | Premium Yoga Mat Bundle | 180 | $11,700 | $450 | 3.8%
...
154 | Deluxe Gym Bag | 45 | $3,150 | -$180 | -5.7%
155 | Organic Cotton Headband | 89 | $1,780 | -$267 | -15.0%
156 | Smart Water Bottle | 34 | $2,380 | -$428 | -18.0%
The simplest explanation is often the most useful: products at the bottom are costing you money. Every unit sold is making your cash flow worse.
View 2: Margin Analysis by Product Category
This shows patterns you might not see in individual products:
Category | Avg Margin | Return Rate | Discount Usage | Net Impact
----------------|------------|-------------|----------------|------------
Resistance Bands| 44.2% | 3.2% | 7.1% | Strong ✓
Foam Rollers | 33.8% | 8.5% | 12.3% | Good ✓
Yoga Mats | 8.2% | 26.4% | 18.7% | Weak ⚠
Accessories | -2.1% | 31.2% | 22.4% | Losing ✗
View 3: The Return Rate Impact
This is the view most people have never seen before:
Product | Return Rate | Lost Profit Due to Returns
---------------------------|-------------|---------------------------
Smart Water Bottle | 41.2% | -$1,248
Organic Cotton Headband | 38.7% | -$856
Deluxe Gym Bag | 35.1% | -$624
Premium Yoga Mat Bundle | 28.3% | -$1,998
Foam Roller - Standard | 7.2% | -$384
Basic Resistance Band Set | 2.8% | -$126
See the pattern? High return rates absolutely destroy profitability, even on products with decent gross margins.
If you're finding statistical significance patterns in your product performance worth investigating further, our A/B testing guide can help you validate which changes actually improve margins.
Step 6: What to Do With Money-Losing Products
Now comes the business decision. You have three main options for products with negative or very low margins:
Option 1: Discontinue Immediately
When to do this: Product has negative margin AND low revenue contribution AND no strategic value
# Example: Smart Water Bottle
Margin: -18.0%
Monthly Revenue: $700
Return Rate: 41.2%
Decision: Discontinue - it's costing us money with every sale
Option 2: Reprice for Profitability
When to do this: Product has demand but costs are eating the margin
# Example: Premium Yoga Mat Bundle
Current Price: $65
Current Margin: 3.8%
Required Price for 25% Margin: $89
Decision: Test new price point or reduce COGS by finding new supplier
Calculate the required price increase:
Target_Price = (COGS + Shipping + Fees + Packaging) / (1 - Target_Margin - Expected_Return_Impact)
For the yoga mat:
Target_Price = ($28 + $9.50 + $2.19 + $1.50) / (1 - 0.25 - 0.10)
Target_Price = $41.19 / 0.65
Target_Price = $63.37... but current is $65!
This tells us the problem isn't price - it's the 28% return rate. Which leads us to option 3...
Option 3: Reposition to Reduce Costs
When to do this: The product concept is good but execution is expensive
For our yoga mat example with high returns:
- Improve packaging to reduce shipping damage (reduces returns)
- Add detailed sizing guide to product page (reduces wrong-size returns)
- Include care instructions to prevent user-error returns
- Negotiate better shipping rates or find lighter packaging
- Source from different supplier with better quality control
If you reduce the return rate from 28% to 10%, here's the impact:
Original Margin: 3.8%
New Margin (10% returns): 18.7%
Annual Profit Increase: $3,456 (based on 200 units/year)
The Decision Framework
Let me walk you through this step by step:
- If margin is negative: Discontinue unless it's a strategic loss leader
- If margin is 0-10%: Investigate why (returns? discounts? COGS too high?)
- If margin is 10-20%: Acceptable but look for improvement opportunities
- If margin is 20%+: Promote more heavily, consider raising price
Step 7: Common Mistake - Ignoring Return Rates by SKU
There's no such thing as a dumb question in analytics, but this is the mistake I see most often: treating all products like they have the same return rate.
Why This Matters So Much
Your Shopify dashboard shows you an overall return rate (let's say 12%). But here's what's actually happening:
# Your Actual Return Rates by Category:
Electronics: 38.2% (high damage in shipping)
Apparel: 22.7% (sizing issues)
Home Goods: 8.1% (mostly as-described)
Consumables: 2.3% (rarely returned)
---
Store Average: 12.0% (misleading!)
If you use the 12% average to estimate profitability, you'll think your electronics are profitable when they're actually bleeding cash.
How to Calculate SKU-Level Return Rates
The Shopify export gives you what you need. Here's the formula:
# In your exported CSV:
1. Filter for a specific SKU
2. Count rows where Financial_Status = "refunded" or "partially_refunded"
3. Count total rows for that SKU
4. Return Rate = (Refunded Orders / Total Orders) × 100
Example for SKU "YOGA-MAT-001":
Total Orders: 180
Refunded: 51
Return Rate: 51/180 = 28.3%
The MCP Analytics platform does this automatically, but it's helpful to understand what's happening behind the scenes.
What to Do About High-Return Products
Before we build a model, let's just look at the data. Products with return rates above 20% need immediate attention:
- Review return reasons: Contact customers who returned - was it quality? Wrong expectations? Damage?
- Improve product descriptions: Often returns happen because the product page didn't set correct expectations
- Add size guides and comparison charts: Especially for apparel and equipment
- Upgrade packaging: Shipping damage is fixable with better packaging
- Set realistic timelines: Some returns happen because shipping took too long
Even a 5% reduction in return rate can swing a product from unprofitable to a solid performer.
Analyze Your Products in 5 Minutes
You now understand the framework. Let's put it into action.
The MCP Analytics platform handles all the calculations we've discussed automatically. Upload your Shopify CSV, enter your cost parameters, and get your ranked profit analysis in minutes.
What you'll get:
- Every product ranked by actual net profit
- Return rate impact by SKU
- Discount usage patterns by product
- Recommended price adjustments for margin targets
- Exportable list of products to discontinue
No credit card required for your first analysis. See which products are costing you money before you sell another unit.
Next Steps: Beyond Product-Level Margins
Once you've identified your profit drivers and eliminated money-losing products, here's where to go next:
1. Customer-Level Profitability
Some customers buy high-margin products, never return anything, and don't use discount codes. Others do the opposite. Calculate Customer Lifetime Value (CLV) net of returns and discounts.
2. Seasonal Margin Analysis
Your margins might look different in Q4 (holiday season with heavy discounts) versus Q2. Track margin trends over time to spot seasonal patterns.
3. Acquisition Channel Profitability
Customers from Instagram ads might have different return rates than Google search traffic. Combine your Shopify data with marketing channel data to see true ROAS (Return on Ad Spend).
4. Inventory Optimization
Now that you know which products are actually profitable, use that to inform inventory purchasing. Stock more of what makes money, less of what doesn't.
For more advanced analytical frameworks to prioritize these next steps, explore ensemble methods for data-driven decisions to identify which improvements will have the biggest impact.
Troubleshooting Common Issues
Let's address the problems I see most frequently:
Issue 1: "My Shopify Export Doesn't Include Compare-At Price"
Solution: This column only appears if you've set compare-at prices in Shopify. If you see blank values:
- Check if you're using Shopify's discount codes (these don't populate compare-at price)
- For true discount tracking, manually set compare-at prices on your product pages
- Alternative: Calculate discounts using your discount code columns instead
Issue 2: "My Return Rate Seems Too High"
Check these:
# Possible data issues:
1. Are you counting "pending" refunds that haven't been approved?
2. Are sample orders or test orders included in your export?
3. Did you filter to only "paid" orders initially?
4. Are exchanges counted as returns (they might not be actual losses)?
Issue 3: "I Don't Know My Exact COGS for Each Product"
Workarounds:
- Start with category-level averages (better than nothing)
- Use your supplier invoices to calculate average COGS by product type
- For dropshipping, use your supplier's pricing as COGS
- Run the analysis with estimated COGS, then refine once you have actuals
Issue 4: "The Profit Numbers Don't Match My Bank Account"
Remember: This analysis shows gross profit per product, not net business profit. You still have:
- Fixed costs (rent, salaries, software subscriptions)
- Marketing spend (ads, influencers, etc.)
- Other operational costs
Product-level profit tells you which products contribute positively to covering those fixed costs. It's one piece of the financial picture, not the whole thing.
Issue 5: "The CSV Upload Fails"
Common causes:
- File size too large (split into multiple date ranges and upload separately)
- Special characters in product names (clean these in Excel first)
- CSV not properly formatted (open in Excel, re-save as CSV)
- Required columns missing (verify you selected all columns during Shopify export)
Final Thoughts: Look at the Data First
The greatest value of a picture is when it forces us to notice what we never expected to see. That's what happened when you saw your first product-level profit analysis, isn't it?
Products you thought were winners might be barely breaking even. "Slow sellers" might be your most profitable items per unit. Categories you planned to expand might be bleeding cash through returns.
The simplest explanation is often the most useful: you can't improve what you don't measure. Now you're measuring what actually matters - not revenue, not even gross margin, but true product profitability after all costs.
Run this analysis monthly. Watch how margin changes as you adjust pricing, find new suppliers, improve product descriptions, or upgrade packaging. Every improvement compounds.
There's no such thing as a dumb question in analytics. If something in this tutorial wasn't clear, or you're seeing patterns in your data that you don't understand, that's normal. That's the beginning of understanding. Keep asking questions.
Now go find those money-losing products and fix them. Your cash flow will thank you.
Explore more: Shopify Analytics — all tools, tutorials, and guides →
Not sure which plan? Compare plans →