Gross Profit vs Net Profit: Why the Wrong Anchor Number Breaks Every Ecommerce Marketing Decision

Most ecommerce marketing teams are optimising against the wrong number. They are hitting gross margin targets, celebrating ROAS benchmarks, and scaling budgets with confidence, all while the actual profitability of each campaign quietly deteriorates beneath the surface. The disconnect between gross profit vs net profit is not a theoretical accounting concern; it is a structural flaw that causes teams to systematically overspend on channels where fulfilment variance, returns, and operating costs consume the margin they thought they had protected.
A campaign reporting 4x ROAS on a product with 20% gross margin does not break even. It loses money. Yet most dashboards will never surface that reality, because platform-reported metrics stop well short of the full cost picture.
This analysis breaks down exactly where and why gross and net profit diverge in an ecommerce P&L, which product categories expose the gap most aggressively, and why the attribution data most teams rely on makes the problem harder to detect in real time. By the end, you will have a clear framework for reanchoring your marketing decisions to a number that actually reflects the economics of your business.
The Number You Optimise Against Determines the Decisions You Make
Most ecommerce marketing teams judge campaign performance against gross margin targets. Many judge it against ROAS, which sits even further from actual profitability than gross profit does. Both are the wrong anchor.
The problem is not definitional. It is structural. When the metric you use to approve or scale a campaign is higher than the profit your business actually keeps, every decision is calibrated against a number that does not exist in your bank account. A campaign that clears your gross margin threshold can still be destroying value once fulfilment, returns, payment fees, and operating costs are deducted. By the time that becomes visible through accounting, the budget has already been spent.
This is not a niche risk. The divergence between gross profit and net profit is manageable at low volume, but it compounds sharply in high-volume, high-returns, or complex-fulfilment categories. Those are exactly the conditions fast-growing brands operate in. Understanding where gross margin leaks into net margin across your P&L is where the real budget decisions start.
The gross profit versus net profit question is not something to resolve in a finance review. It is a live operational question that determines whether a campaign that looks profitable on Tuesday actually is by month-end.
This is the core of the Dashboard Illusion: dashboards surface the number that looks best, not the number that reflects commercial reality. ROAS looks strong. Gross margin looks healthy. Net margin tells a different story entirely.
Gross Profit, Operating Profit, and Net Profit: What Each Number Actually Represents
Three distinct numbers live on a P&L, and they measure three different things.
Gross profit is revenue minus cost of goods sold (COGS): the raw product margin before any operational cost touches it. If you sell £100 of product and the goods cost £60 to source and manufacture, your gross profit is £40. That 40% gross margin tells you the product is commercially viable. It does not tell you the business is.
Operating profit (EBIT) is gross profit minus operating expenses: fulfilment, warehousing, platform fees, salaries, software, and returns processing. This is what the business actually earns from trading. In ecommerce, the gap between gross profit and operating profit is rarely trivial. Fulfilment costs in categories with high SKU complexity or split shipments can materially compress the gap between gross and operating profit, before a single salary or software licence is counted.
Net profit is operating profit minus interest, taxes, and non-operating costs. This is the number that reflects the full cost of running the business and ultimately lands in the bank. It matters for capital decisions and tax planning, but it is not the primary anchor for day-to-day marketing decisions.
For marketing purposes, the gross profit vs operating profit distinction is the critical one. Operating costs in ecommerce are neither small nor stable at the order level, and any campaign target built on gross margin alone is ignoring the costs that sit directly below it.
The practical consequence is this: teams that treat gross margin percentage as a proxy for how much they can afford to spend on acquisition are working from a structurally inflated number. That shortcut produces campaign budgets and ROAS targets that look achievable on a dashboard and are not sustainable on a P&L. The gap between the two is where the real difference between gross sales and net sales compounds into a margin problem that accounting surfaces weeks after the spend decision is already made.
What an Ecommerce P&L Actually Looks Like When You Run the Numbers
Take a £100K revenue order cohort and run it through a realistic ecommerce P&L.
COGS at 60% leaves £40K gross profit. On a dashboard, that 40% gross margin looks healthy. It is the number most teams anchor campaign targets to.
Now apply the costs that sit between gross profit and what the business actually keeps.
Fulfilment: £8K. Returns processing on a 15% return rate: £4.5K net impact, covering reverse logistics, restocking, and re-shipping. Payment processing fees: £2K. Those three line items alone drop the margin to £25.5K, or 25.5%. The dashboard number and the real number are already 14.5 points apart, before a penny of marketing has been counted.
Add £12K in marketing spend and £4K in allocated overhead. Operating profit on that cohort: £9.5K, a 9.5% operating margin.
That is a 30-point compression from a gross margin that looked viable to an operating margin that leaves almost no room for error. That is not a rounding issue; it is the difference between a campaign worth scaling and one that is quietly destroying margin at pace.
If a team set campaign efficiency targets using the 40% gross margin figure, they authorised spending levels the business cannot sustain at the operating level. The budget decision was calibrated against a number that does not reflect commercial reality. For more on how to calculate net profit margin for ecommerce and what the dashboard version consistently misses, the compression mechanics are worth working through in full.
The scenario above uses a conservative 15% return rate. In apparel and footwear, return rates regularly reach 24-30%; in footwear, closer to 27%. At those rates, the returns processing line alone can convert a structurally viable gross margin into a loss-making operating position before overhead is even counted.
Why ROAS Anchored to Gross Margin Is a Structurally Overoptimistic Target
The P&L scenario above shows the gap in pound terms; ROAS reporting hides the same gap in percentage terms before any campaign budget is committed. The calculation follows directly from the margin: Breakeven ROAS = 1 ÷ Gross Margin % (a straightforward derivation: to recover £1 of revenue costs, you need revenue equal to 1 divided by your margin rate). At 40% gross margin, you need 2.5x. At 20%, you need 5x. Most teams optimising against a 3x or 4x target have never calculated which side of breakeven that sits on for their actual margins.
The problem compounds post-iOS 14.5. Meta now models a significant proportion of conversions using AI rather than direct tracking, producing systematic performance overstatement. A reported 4.2x ROAS may reflect a real 2.8x to 3.4x once modelled conversions are discounted. Against 40% gross margin, a real 2.8x is already below breakeven while the dashboard reports a healthy campaign.
Target ROAS bidding adds further distortion. The algorithm optimises for average returns across a campaign, but marginal returns decline as spend scales. The system keeps bidding to hit the average while the final tranche of conversions is acquired at costs that destroy margin.
POAS (Profit on Ad Spend) corrects for this. It measures gross profit per pound of ad spend, with COGS, fulfilment, returns, and fees factored in. A campaign with strong ROAS and weak POAS is generating revenue, not profit. These are not the same thing, and the distinction matters across every marketing fundamental most ecommerce teams are still tracking incorrectly.
True CAC compounds the problem further. When agency fees, software subscriptions, and fulfilment attributable to new customer orders are excluded, CAC is typically understated by 40 to 60%. The acquisition economics used to justify campaign budgets are built on a cost figure that is structurally too low.
The Categories Where Gross and Net Diverge Most Sharply
The ROAS problem is most acute in categories where the gap between gross and net is structural, not occasional variance.
Apparel and footwear sit at the extreme end. Return rates of 24-30% or higher are common in size-driven or fashion-led ranges. Each return absorbs reverse logistics, restocking labour, potential repackaging, and the original unrecoverable outbound fulfilment cost. A campaign driving volume into a 30% return-rate SKU looks profitable on gross margin; the operating reality is materially different. The gap between gross sales and net sales in high-return categories compounds directly into gross-to-net compression.
Consumer electronics and high-value goods face a different compression. Gross margin is often already thin due to competitive pricing, while payment processing fees are proportionally larger on high-ticket orders, fraud risk is elevated, and customer service costs per order are significantly higher than in commodity categories. Operating cost as a share of revenue rises precisely where margin headroom is smallest.
Subscription and bundle models present a subtler problem. The headline gross margin looks strong, but fulfilment complexity, split shipments, multiple pick locations, and variable packaging inflate the cost-to-serve in ways that sit entirely below the gross profit line and rarely surface until a proper contribution analysis is run.
High-volume, low-AOV categories face structural compression at scale. Platform fees, warehouse minimums, and customer service staffing become a larger percentage of each order’s net contribution as volume grows. This is built into the unit economics, not a cyclical squeeze.
In every one of these categories, gross profit versus operating profit is the comparison that matters for marketing decisions. Any campaign target that ignores operating costs is optimising for a margin the business cannot actually keep.
Why Most Ecommerce Teams Cannot See the Divergence in Real Time
Knowing the divergence exists is one problem. Seeing it in time to act is another.
Marketing platforms, commerce platforms, and finance systems each report a different number for the same order. Meta and Google attribute revenue using their own lookback windows. Shopify records it on order completion. Your accounting software recognises it on fulfilment and returns settlement. The same transaction produces three different figures, and none of them is net profit.
This creates a timing gap that compounds into a decision gap. By the time monthly close surfaces real margin data, the campaigns that drove those orders are weeks old. Budgets have already been committed. Bids have already run. Decisions were made against gross-level assumptions because that was the only data available.
When the P&L problem lands, leadership defaults to blunt-instrument cuts rather than surgical ones, because the campaign- and SKU-level data needed for precision does not exist in one place.
The correct unit-level metric is Contribution Margin 3 (CM3): gross profit minus all variable costs, including marketing, fulfilment, and returns. It is the only number that shows whether a campaign is genuinely profitable. But calculating it requires unifying data across marketing, commerce, and finance systems, which most mid-market brands have not done.
This is the Profit Accountability Gap at its widest. Leadership senses pressure on the P&L but cannot trace it to specific spend decisions because the data does not exist in one place. It is the same structural failure that makes performance marketing appear accountable while missing the costs that determine whether results are actually profitable.
Real-time profit visibility, unifying fragmented sources into a single view of profitability at campaign, channel, and SKU level, closes that gap. It replaces reactive cuts with surgical ones.
How to Reanchor Marketing Decisions to the Right Number
Closing the data gap is only half the fix. The other half is knowing which numbers to run your decisions against.
Calculate true gross margin per SKU, not the blended average. Blended gross margin hides variance. One SKU at 55% margin and another at 18% blend to something that looks acceptable, but when you scale spend on the wrong one, the mix deteriorates fast. SKU-level margin is the starting point for everything that follows.
Build your breakeven ROAS from gross margin, then recalculate it at contribution level. Once fulfilment, returns, and platform fees are layered in, the contribution-margin breakeven is materially higher than the gross-margin breakeven. That second number is the one your campaigns need to beat.
Replace or supplement ROAS with POAS at the campaign and channel level. POAS measures gross profit generated per pound of ad spend, accounting for COGS, fulfilment, and returns. It requires that data piped into your reporting layer, which is an infrastructure investment that separates teams optimising for profit from those optimising for revenue.
Treat CAC as a fully loaded cost, the 40-60% understatement from excluding agency fees, software, and fulfilment compounds the same overoptimism as anchoring to gross margin.
Flag high-return SKUs before scaling spend on them. Gross profit metrics will not surface a 30% return rate until the accounting close, by which point the budget has already been committed.
The Profit Clarity System connects these data sources in real time, so the difference between a campaign worth scaling and one worth cutting is visible before the spend decision, not weeks after it.
The Takeaway: Gross Profit Is a Starting Point, Not a Decision Anchor
Gross profit tells you the product is viable. Net profit tells you whether the business is. Neither tells you whether a specific campaign is worth the spend. That requires contribution margin at the unit level, built from the actual cost of acquiring and fulfilling each order.
As established above, by the time the P&L surfaces the divergence, the budget is already spent.
The same logic applies one layer up. The gap between gross sales and net revenue compounds the same problem; how that gap costs ecommerce founders real money follows the same structural pattern as gross-to-net profit compression.
The shift from Dashboard Illusion to Commercial Clarity starts with one question: does the number you are optimising against account for what it actually costs to deliver that order at profit?
If it does not, every campaign target, every budget approval, and every scaling decision is calibrated against a margin that the business does not keep.
Conclusion
The wrong anchor number does not just skew one campaign. It skews every budget approval, every channel comparison, and every scaling decision that follows from it.
Gross profit confirms viability; contribution margin at unit level is the only number that confirms whether a specific campaign is worth scaling.
The fix is not a new metric. It is a commitment to building decisions on the number the business actually keeps.
Audit the anchor number your team is optimising against today. If it does not survive contact with a real P&L, rebuild it before the next budget cycle does.



