If you’re running an eCommerce business and wondering where all your profit went, you’re not alone.
“My revenue is growing, but I’m not seeing any profit.”
“My Meta ROAS looks great, but my bank account doesn’t.”
“I’m spending more on ads but I don’t know if it's actually driving more profit.”
Sound familiar?
All of these questions can be answered by tracking the ONE metric that actually matters: contribution margin.
The $2.1M Mistake
Let me tell you about John (not his real name).
John's supplement brand was doing $250K/month in revenue. "Profitable" Facebook campaigns. 3.2X ROAS.
He spent 11 months scaling his ad spend from $30k to $250k per month.
Revenue? Shot up to $750k per month.
Profit? NEGATIVE $2.1M for the year.
Why? Because he was losing money on every single sale - and scaling made it worse.
What Is Contribution Margin?
Contribution margin answers one question: How much money do you ACTUALLY make on each sale?
Here's the formula:

Say you sell a $50 product. After COGS, shipping and ad spend, you’re left with $10. That’s your contribution margin.
Your contribution margin pays for your fixed costs (like salaries and rent). Any money left over after paying your fixed costs is your profit.
What’s a good contribution margin?: It depends on your business model, but a positive contribution margin that consistently exceeds your fixed costs is the goal.
A good rule of thumb is having a contribution margin of 25 - 35%. This allows for 10 - 20% in operating expenses, giving you a positive net profit.
Important: Scaling Only Works With A Positive Contribution Margin
If your contribution margin is positive, every sale puts money in your pocket. But if it’s negative, you’re losing money on each sale.
Here’s an example.
Positive contribution margin:
- Let’s say your contribution margin is $5, so you make $5 on each sale.
- You sell 1,000 units = $5,000 in your pocket.
- Scale to 10,000 units = $50,000 in your pocket.
- More ad spend = more revenue and more profit.
Negative contribution margin:
- Let’s say your contribution margin is -$5, so you lose $5 on each sale.
- You sell 1,000 units = $5,000 lost.
- Scale to 10,000 units = $50,000 lost.
- More ad spend = more revenue but also bigger losses. Every extra dollar in ad spend just digs the hole deeper.
This is why many "scaling experts" are giving you the wrong advice.
They'll tell you to scale when you hit 2x ROAS. Or 3x ROAS. Or whatever magic number they pulled out of thin air.
But here's the truth: You can have a 5x ROAS and still lose money on every sale.
And when you lose money on every sale, scaling is just burning your cash.
The solution is simple: track your contribution margin daily.
When you do this:
- You’ll know if your campaigns are actually profitable.
- You’ll know if you can scale without bleeding cash.
It takes 5 minutes a day. But those 5 minutes will transform the profitability of your business.
Let's break down exactly what you need to track...
Breaking Down Contribution Margin
To calculate contribution margin we need to take our net revenue and subtract our variable costs.

Net Revenue
Net revenue is the money that your business actually keeps from each sale. Net revenue is different from the ‘total sales’ figure that is reported in your Shopify dashboard.
Where to find your net revenue: Shopify reports on your net revenue in the ‘Net sales over time’ report. This can be found under Analytics > Reports > ‘Net sales over time’.
But what exactly is net revenue?
- Start with total sales (what customers paid)
- Subtract taxes (you don’t get to keep this revenue).
- Subtract shipping charges (customers paid this to cover shipping)
- Subtract discounts (from any promo codes you gave out).
- Subtract returns (any revenue lost from refunding customers).

Variable Costs
Variable costs are the costs of selling your product to your customers. They're called variable costs because they fluctuate based on your sales. More orders = higher costs.
Examples include:
- Cost of Goods Sold (COGS): What it costs to make your product and ship it from your manufacturer to your warehouse.
- Fulfillment Fees: The cost of picking, packing and posting your product to your customer.
- Payment Processing: Shopify, PayPal or Afterpay transaction fees.
Calculating Cost Of Goods Sold
Cost of goods sold (or COGS) is the total cost of producing your product. It includes the cost of:
- Raw materials.
- Labour - wages paid to production workers or fees paid to manufacturers.
- Production - costs related to equipment usage and maintenance.
- Packaging - boxes, labels etc. to prepare your product for sale.
- Freight: what it costs to ship your product from your manufacturer to your warehouse.
Each SKU that you sell has its own COGS. To calculate it:
- Add up all the costs associated with producing a specific SKU.
- Divide by the total number of units produced to find the average cost per unit.
Example: If it costs $10,000 to produce and freight 1,000 units of a product, your COGS per unit = $10,000 ÷ 1,000 = $10/unit.
Tip: Load Your COGS Data Into Shopify
It’s best practice to load in your COGS data into Shopify every time you create a new SKU.
Why?
This will give you an accurate, real-time view of your COGS on any given day and for any desired time frame.
Where to find it: COGS can be found in Shopify under Analytics > Reports > ‘Cost of goods sold by order’ report.
Calculating Fulfilment & Shipping
When it comes to fulfilment, you likely either:
- Use a 3PL and get invoiced monthly; or
- Fulfil in-house and have labour costs.
Either way, you probably don’t have a real-time measurement of your fulfilment & shipping costs each day. So we will need to assign an average cost to fulfil and ship each order.
Step 1: Assign An Average Cost To Fulfil Each Order
Using a 3PL? Your average fulfilment cost = their pick & pack fee per order.
Fulfilling in-house? Your average fulfilment cost = your weekly warehouse wages ÷ number of weekly orders.
Step 2: Calculate Your Average Shipping Cost
Take your weekly shipping bill and divide it by the number of orders dispatched in that week.
Example: $2,200 in shipping / 300 orders dispatched = $7.33 to ship each order.
Note: If your shipping rates vary significantly across your SKUs because of different product sizes or weights, it is best practice to use specific shipping rates for each product and not an average.
Step 3: Calculate Your Fulfillment & Shipping Cost Each Day.
Add your cost to fulfil with your average shipping cost and multiply by the number of orders you receive that day. This will be an estimate of your fulfilment and shipping cost for that day.
Calculating Transaction Fees
Transaction fees are the merchant or payment processing fees you pay for each sale. These include fees from Shopify, Afterpay, PayPal etc.
Typically you will be charged a fixed fee + a percentage of your revenue for each order (e.g. $0.30 +2.40%).
Calculating Ad Spend
Ad spend includes our marketing spend on platforms like Meta and Google Ads.
Note: Fixed marketing fees (like agency retainers) aren't included here. They are operating expenses.
Putting It All Together - The 5 Minute Daily Profit Check
So now that we understand contribution margin and it's component parts, let me show you exactly how I track contribution margin every morning.
All you need is a Google Sheet and 5 minutes.
Step 1: Find yesterday’s net sales in the Net Sales Over Time’ report in Shopify:
Step 2: Create a new Google Sheet and add your net sales:

Step 3: Locate your cost of goods sold in the ‘Cost Of Goods Sold By Order’ report in Shopify and add it to your sheet in cell D3:

If you haven’t uploaded your COGS data into Shopify, you will need to calculate this manually (see how to do this in the ‘calculating cost of goods sold’ section)
Step 4: Add your fulfilment cost for yesterday’s orders to your sheet in cell E3:

Step 5: Add your shipping cost for yesterday’s orders to your sheet in cell F3:

Step 6: Add yesterday’s transaction fees to cell G3:

Step 7: Add your total ad spend from yesterday to cell H3:

Step 8: In cell H3 enter this formula:
= C3-(D3+E3+F3+G3+H3).

The figure in cell H3 is your contribution margin for yesterday.
This means that yesterday I generated $635 in contribution margin.
Based on this, I know that my campaigns were profitable yesterday and I can afford to scale.
Repeat this process each day for a real-time snapshot of your contribution margin.
What to look for: If your ad spend goes up and your contribution margin grows, you’re making more profit. More ad spend = more revenue and more profit. Keep scaling.
What If My Contribution Margin Is Negative?
If your contribution margin is negative, you’re losing money on every sale. More ad spend = more revenue but also bigger losses. So scaling in this situation isn’t profitable growth - it’s digging yourself into a deeper hole.
So, how do you fix it? You’ve got four options:
- Lower your acquisition costs: run better ads, improve your conversion rate, cut wasted ad spend.
- Increase your average order value: Offer bundles or upsells to drive more revenue per sale.
- Reduce your COGs: Negotiate better supplier deals. Reduce your fulfilment and shipping costs. Cut unnecessary expenses.
- Raise your prices: If you can’t profitably sell at your current price, charge more.
Conclusion
Most eCommerce brands fail because they don’t track their numbers and rely on guesswork to grow. But you don’t have to be one of them. Now you have the tools to:
- Track your contribution margin daily.
- Know when your campaigns are actually profitable.
- Spot when your campaigns are losing money - and fix them.
- Scale confidently, knowing that each sale is adding to your bottom line.
Have questions? Email me at dan@ecombreakdowns.com - I’d love to help.