The seven-layer cost stack
Every dollar of revenue passes through these before it becomes profit. Skip one in your accounting and you will believe you're profitable when you're not:
- Cost of goods (COGS) — what the product itself costs you, landed.
- Payment processing — the card fee on every sale, higher on international cards.
- Platform & apps — your store platform plan plus the paid apps that run it.
- Shipping & fulfilment — pick, pack, postage, and the part you eat to offer "free shipping."
- Returns & refunds — the silent margin killer most stores under-count.
- Customer acquisition — ad spend and the true cost of winning each order.
- Support & overhead — the time and tools to actually run it.
Layer 2 — Payment processing
Card fees look small at ~2.9% + a fixed fee, but they compound with every order and rise sharply on international cards and currency conversion. On a small average order, the fixed fee alone can be a meaningful slice. Model your real blended rate — including your international share — in the Stripe True Fee Calculator, and read the cross-border cost guide if you sell across borders.
Layer 3 — Platform & app debt
The platform plan is the headline; the apps are the bill. A typical store accretes paid apps for reviews, email, upsells, subscriptions, and shipping — each a small monthly fee that, together, often exceeds the plan itself and scales as you grow. There's also the gateway trap: not using the platform's native payments can add an extra per-transaction fee on top of card processing. See the full picture in the Shopify True Cost Calculator and the true-cost guide.
Layer 5 — Returns: the margin killer hiding in plain sight
A return is not a neutral "undo." You lose the original processing fee, pay return shipping, spend labour inspecting and restocking, and often can't resell the item at full value. On a product with a 30% contribution margin, a single return can erase the profit from three or four clean sales. For most stores, shaving a few points off the return rate — better sizing info, clearer photos, accurate descriptions — is worth more than the same effort spent buying more traffic.
Layer 6 — Customer acquisition and breakeven ROAS
Ad spend is where fast-growing stores most often lose money, because it's the one cost you can scale faster than your margin can support. The number that matters is your breakeven ROAS— the return on ad spend at which an order is exactly free of profit after every other cost. If your contribution margin is 40%, you break even at a ROAS of 2.5; anything below that means you are paying to lose money on each order. Generic "good ROAS" benchmarks are useless — only your own breakeven tells you whether a campaign is working.
A worked example: the real profit on a $50 product
Sell a product for $50. COGS lands at $15 (30%). Payment processing takes roughly $1.75. Platform and apps, amortised across orders, add maybe $1. Shipping you partly absorb costs $4. Your return rate spreads about $2.50 of return cost across each order. That leaves about $25.75 in contribution margin before advertising — roughly 51%. Now acquire the customer: at a blended $18 cost per order, you're left with about $7.75 of actual profiton a $50 sale — around 15%. Push ad spend up to $26 per order chasing growth, and that profit is gone. The lesson is not "sell more" — it's that the gap between a 51% contribution margin and a 15% net is where the whole business lives or dies.
How to protect margin
- Account for all seven layers before you call a product profitable — most stores stop at COGS and ads.
- Know your breakeven ROAS and treat it as a hard floor for ad spend.
- Attack returns with better product information — it's usually cheaper than buying traffic.
- Audit app subscriptions quarterly; cut the ones not earning their fee.
- Raise average order value (bundles, thresholds) so fixed per-order costs fade.
Frequently asked questions
Why is my ecommerce store making sales but no profit?
Because revenue passes through seven cost layers before it becomes profit: cost of goods, payment processing, platform and app fees, shipping and fulfilment, returns, customer acquisition (ads), and support/overhead. Each looks small, but together they routinely consume 80–95% of the sale price. A store can grow revenue fast and lose money faster if any one layer — usually ad spend or returns — is out of control.
What is a healthy gross margin for ecommerce?
It varies by category, but most durable stores aim for a gross margin (after cost of goods and payment processing) of at least 60–70%, because everything else — ads, shipping, returns, platform — comes out of what's left. If your gross margin is below ~40%, there is very little room to pay for customer acquisition, and growth tends to lose money rather than make it.
How much do returns really cost?
More than the refunded amount. A return costs you the original payment processing fee (often not refunded), return shipping, inspection and restocking labour, and frequently the full value of the item if it can't be resold. On thin-margin products a single return can wipe out the profit from several clean sales, which is why reducing return rate is often more valuable than chasing more traffic.
What is ROAS breakeven?
It's the return on ad spend at which a sale neither makes nor loses money once all other costs are paid. If your contribution margin after COGS, fees, shipping and returns is 40%, you break even at a ROAS of 2.5 (you must make $2.50 in revenue for every $1 of ad spend just to cover the ad). Knowing your breakeven ROAS — not a generic benchmark — is what tells you whether a campaign is actually profitable.
Is Shopify's plan price the real cost of running a store?
No — the plan fee is usually the smallest part. The real cost stack adds payment processing (plus an extra gateway fee if you don't use Shopify Payments), a stack of paid apps that scales with your needs, transaction fees, and the cost of every refund. Model the full figure in the Shopify True Cost Calculator rather than budgeting from the headline plan price.
Independent analysis, not financial advice — model your own numbers before making decisions.