Your ROAS is 4x. Your revenue is up 22% year-over-year. Your CMO is happy, your board is nodding, and your paid media team is celebrating. Then your CFO pulls up the P&L and the room goes quiet. The number ecommerce reports most confidently, ROAS, is often the least honest number in the business. It tells you how many dollars in revenue came back for every dollar spent on ads. It tells you nothing about whether any of those dollars were worth keeping.
This is not a new problem. It is a structural one. Ecommerce brands have been trained by their agency partners, their ad platforms, and their own dashboards to treat ROAS as the primary measure of marketing performance. The platforms love it because a rising ROAS justifies more spend. The agencies love it because it is easy to improve in ways that do not require touching the harder variables. The business, however, is the one left holding a metric that flatters the top line while quietly destroying the bottom one.
Why ROAS Is the Wrong North Star
ROAS measures one relationship: ad spend versus revenue. It does not measure product margin. It does not account for returns, refunds, or the cost of fulfillment. It ignores the cost to serve a customer after the click. If you run a campaign that generates $400,000 in revenue from $100,000 in ad spend, your ROAS is 4x. If those products carry a 25% gross margin and you have a 20% return rate, you are barely breaking even before you count the cost of return processing, which the National Retail Federation pegged at an average of $27 per item in 2023. The ROAS looks fine. The margin does not.
The deeper problem is that ROAS is a ratio, and ratios are easy to game. You can improve ROAS by pulling budget from broad awareness campaigns and concentrating it on high-intent, branded, or remarketing audiences. Those audiences convert efficiently because they were already going to buy. You have not grown the business. You have just narrowed the funnel and reported a cleaner number. This is the metric equivalent of turning off all the lights in unprofitable rooms and calling it energy efficiency.
According to a Gartner CMO survey published in 2023, 54% of digital marketing leaders admitted their C-suite makes budget allocation decisions primarily based on ROAS, even while acknowledging that it does not account for product margins or overhead. That gap between what marketing leaders know and what they actually report upward is where ecommerce profitability goes to die.
The Real Number: Contribution Margin by Channel
The metric that ecommerce should be reporting is contribution margin per channel. Contribution margin is what remains after you subtract variable costs from revenue. Those variable costs include cost of goods sold, payment processing fees, return and refund costs, fulfillment costs, and the ad spend itself. What you are left with is the actual dollar contribution each channel makes toward covering your fixed costs and generating profit. It is a harder number to calculate. It is also the only number that tells you whether you are building a business or financing a revenue illusion.
The formula is straightforward. Start with gross revenue from a channel. Subtract returns and refunds to get net revenue. From net revenue, subtract COGS, fulfillment costs, payment processing fees, and ad spend. The result is your contribution margin for that channel. Expressed as a percentage of net revenue, this becomes your contribution margin rate, and that rate is what you optimize against, not ROAS.
Consider a concrete example. A DTC skincare brand runs two paid channels: Google Shopping and Meta prospecting. Google Shopping reports a 5.2x ROAS. Meta prospecting reports a 2.8x ROAS. On ROAS alone, the decision is obvious: shift budget to Google. But when you calculate contribution margin by channel, factoring in that Meta drives a higher average order value, lower return rates, and a customer cohort with a 40% repeat purchase rate within 90 days, Meta’s contribution margin rate is actually 4 points higher than Google’s. The number ecommerce reports, ROAS, pointed in the wrong direction entirely.
Data from Profitwell, now Paddle, shows that ecommerce businesses that shifted from ROAS-centric to contribution-margin-centric reporting saw an average profitability improvement of 15 to 30% within 12 months of making the switch. That is not a marginal improvement. That is a structural one, driven entirely by measuring the right variable.
The Hidden Costs That ROAS Ignores
ROAS is a pre-cost metric masquerading as a performance metric. To understand what it leaves out, you need to map every variable cost that sits between a completed ad click and actual profit in your pocket. Most ecommerce brands are surprised by how long that list is.
| Cost Category | Captured in ROAS? | Impact on Margin |
|---|---|---|
| Ad spend | Yes (as the denominator) | Direct |
| Cost of goods sold (COGS) | No | High |
| Fulfillment and shipping | No | Medium to High |
| Return processing costs | No | Medium (avg. $27/item) |
| Payment processing fees | No | Low to Medium |
| Customer service cost per order | No | Variable |
| Discount and promotion costs | Partial (affects revenue) | Medium to High |
| Platform fees and subscriptions | No | Low |
Return rates are a particularly destructive blind spot. Average ecommerce return rates reached 17.6% in 2023 according to data from the National Retail Federation and Happy Returns. For apparel, that figure can exceed 30%. Every return that processes back through your system costs an average of $27 in handling, restocking, and logistics, and it wipes out the revenue that was propping up your ROAS. If your Meta campaign converted $500,000 in revenue but $88,000 of it returned and cost $27 per item to process, your actual net contribution from that campaign is dramatically lower than any ROAS calculation would suggest.
Customer acquisition costs compound the problem over time. Between 2018 and 2022, CAC for ecommerce brands rose by over 60% according to SimplicityDX, while average order values did not keep pace. That means a static or even improving ROAS can coexist with margins that are compressing year over year. The ROAS is not lying, exactly. It is just not seeing the whole battlefield.
A Framework for Switching to Margin-Based Reporting
Switching from ROAS to contribution margin reporting is not simply a dashboard change. It requires buy-in from finance, access to cost data that most marketing teams do not currently hold, and a willingness to surface numbers that may temporarily make certain campaigns look worse than they did before. That discomfort is the point. Here is a five-step framework for making the transition without breaking your reporting infrastructure.
- Audit your current cost variables by SKU or product category. Before you can calculate contribution margin by channel, you need accurate variable costs at the product level. Pull your COGS, average fulfillment cost per unit, return rate by product line, and payment processing percentage. If this data lives in separate systems, your first task is a data audit, not a dashboard rebuild.
- Segment your channel reporting by product mix. Not all channels sell the same products in the same proportions. A Meta campaign heavily weighted toward a low-margin product will show different contribution economics than a Google Shopping campaign that naturally surfaces your highest-margin SKUs. Contribution margin analysis must be done at the channel-and-product-mix level, not just channel level alone.
- Build a contribution margin floor, not a ROAS target. Instead of targeting a 3x or 4x ROAS, calculate the minimum ROAS required to hit a positive contribution margin for each product category, given its specific cost structure. This is your floor. Any campaign delivering above this threshold is contributing to profit. Any campaign below it is destroying margin regardless of how the ROAS looks.
- Add return rate as a channel-level KPI. Different acquisition channels attract customers with different return behavior. Track return rate by channel and factor the return processing cost into your contribution margin calculation monthly. A channel with high ROAS and high return rates is often less profitable than a channel with moderate ROAS and low return rates.
- Report contribution margin to the C-suite alongside revenue. The organizational change is as important as the analytical one. If your board and executive team only see revenue and ROAS, those are the metrics that will drive budget decisions. Present contribution margin by channel in every performance review. Over time, the organization will start optimizing for the right number.
Agencies and in-house teams that have gone through this process often discover that their most celebrated campaigns were net margin drains, and that channels they had been de-prioritizing were actually their most profitable sources of real contribution. The framework does not change what is true. It just makes the truth visible.
The Organizational Trap: Why Ecommerce Keeps Reporting the Wrong Number
Understanding why ecommerce continues to default to ROAS despite its limitations requires looking at the incentive structure, not just the analytical one. Ad platforms report ROAS natively because it justifies continued spend. Agency performance reports lead with ROAS because it is the easiest metric to show improvement on. Marketing leaders report ROAS upward because it produces clean narratives for board decks. The number ecommerce reports most confidently is the number that serves the most parties, not necessarily the business.
According to Forrester Research’s 2023 State of Ecommerce Measurement report, only 26% of ecommerce companies consistently track profitability metrics beyond revenue and ROAS in their performance dashboards. That means 74% of ecommerce businesses are making channel allocation decisions on an incomplete financial picture. This is not a data problem. It is a prioritization problem disguised as a reporting one.
There is also a competence gap on the agency side. Most performance marketing agencies are structured around media buying and campaign management. They are optimized to improve ROAS because that is what their tooling measures and what their contracts incentivize. Very few agencies are structured to understand the full variable cost stack of the brands they work with, which is precisely the knowledge required to optimize for contribution margin. The brands that solve this problem tend to work with partners who operate at the intersection of financial strategy and media execution. Vicious Marketing approaches ecommerce performance exactly this way, treating margin mechanics as a prerequisite to any paid media strategy rather than an afterthought that finance handles separately.
The fix starts with a deliberate decision to reframe what performance means inside your organization. Performance is not revenue generated per ad dollar. Performance is margin preserved and grown per ad dollar. Every other definition flatters someone’s dashboard while leaving your P&L exposed.
Common Mistakes When Transitioning to Margin-Based Metrics
Even brands that understand the argument for contribution margin reporting make predictable mistakes when they try to implement it. Knowing these in advance will save you six months of confusion.
- Using blended margin rates instead of SKU-level margins. Applying a single average gross margin to all channel revenue will give you inaccurate contribution figures if your channels have different product mixes. A 40% blended margin applied to a campaign that sold mostly 20%-margin products will overstate actual contribution significantly.
- Excluding returns from the analysis until end of quarter. Returns need to be factored into contribution margin calculations on a rolling basis, not reconciled quarterly. Waiting creates a lag that distorts your in-flight optimization decisions.
- Optimizing for contribution margin at the campaign level without considering LTV. Contribution margin is a transaction-level metric. If a channel consistently acquires customers with a high 90-day repeat purchase rate, a lower initial contribution margin may still be the correct investment. Blend contribution margin with cohort-level LTV for a complete picture.
- Removing ROAS from the reporting stack entirely. ROAS still has operational utility as a directional signal and a bidding input for platform algorithms. The mistake is treating it as the final answer. Keep it in the dashboard as a leading indicator, not as the decision variable.
- Failing to get finance involved in the data pipeline. Marketing teams often try to build contribution margin reporting without access to the cost data that finance controls. This creates parallel spreadsheets, version conflicts, and numbers that leadership does not trust. Involve your finance team from the beginning and tie the marketing reporting to the same cost data the P&L uses.
Bottom Line
ROAS is the number ecommerce reports because it is the number the system was built to produce. It is not the number that tells you whether your business is profitable, whether your channels are sustainable, or whether you should spend more or less next quarter. That number is contribution margin, and the brands that shift their reporting infrastructure to center on it consistently outperform those that do not.
The math is not complicated. What is complicated is the organizational will to surface a number that may initially reveal that several of your highest-ROAS campaigns are margin-negative once COGS, returns, and fulfillment are factored in. That revelation is not a crisis. It is the beginning of a real performance strategy.
We work with ecommerce brands that have already discovered this gap and need a partner who understands both the media mechanics and the financial architecture behind them. The two cannot be separated if profitability is the actual goal. Optimize for the right number, and the right outcomes tend to follow.
Frequently Asked Questions
Q1: How can smaller ecommerce businesses with limited data infrastructure begin calculating contribution margin?
A: Start with manual calculations for your top 1-2 channels using spreadsheet data from your ecommerce platform, payment processor, and fulfillment provider. Focus on core variable costs like COGS, ad spend, and estimated return costs per item. This provides initial insights without requiring extensive system integrations.
Q2: Since ad platforms optimize for ROAS, how can I integrate contribution margin goals into my bidding strategies?
A: Use a “contribution margin floor” to set your minimum acceptable ROAS target within ad platforms. Adjust your target ROAS for campaigns based on the known variable costs and profitability of the products they drive. This allows platforms to optimize directionally while ensuring underlying profitability.
Q3: What’s the best way to convince stakeholders or a C-suite who are resistant to moving beyond ROAS?
A: Frame the shift as a move from revenue-centric to profit-centric growth, directly linking it to P&L health. Present side-by-side reports showing actual profit implications of ROAS-driven decisions versus contribution margin-driven ones. Highlight channels that appear successful but are actually costing the business money.
Q4: How does Lifetime Value (LTV) complement contribution margin analysis when evaluating channel performance?
A: While contribution margin shows immediate transactional profitability, LTV reveals the long-term value of customers acquired through a channel. A channel with a lower initial contribution margin might be highly valuable if it consistently brings in customers with high repeat purchase rates. Blend both metrics to optimize for both immediate profit and sustainable growth.
Q5: What are common challenges in gathering the necessary cost data (COGS, fulfillment, returns) for accurate contribution margin calculations?
A: The primary challenge is data silos, as COGS often resides in ERPs, fulfillment costs in logistics systems, and returns data in separate processing platforms. Inaccurate or averaged cost data, rather than SKU-specific figures, can also distort results. Involving finance early ensures access to accurate, validated cost inputs.