D2C Growth

How to Calculate True ROAS for Ecommerce (Not Blended)

True ROAS calculation for ecommerce: the formula, five cost adjustments most brands miss, a worked example, and how to compare ROAS by channel. Stop reporting numbers that lie.

Siddharth Gangal 16 min read
How to Calculate True ROAS for Ecommerce (Not Blended)
On this page
  1. What is true ROAS?
  2. Why blended ROAS misleads
  3. The true ROAS formula
  4. What to adjust for: the five cost categories
  5. A real example: worked calculation
  6. True ROAS by channel: how to compare
  7. Common mistakes
  8. How Fairview calculates true ROAS automatically
  9. Key takeaways

TL;DR

  • Blended ROAS lies. It divides total revenue by total ad spend and ignores returns, discounts, COGS, shipping, and fees. A blended ROAS of 4.0 can mask a true ROAS below 1.0.
  • True ROAS formula: (Revenue minus returns, discounts, COGS, shipping, and fees) divided by ad spend. The numerator is contribution margin. The denominator is ad spend for that channel.
  • Five adjustments: Returns (8-20% for apparel), discounts (10-30% in peak season), COGS (25-60% of revenue), shipping (5-15%), platform fees (2.9% + 30c to 15%).
  • Worked example: A $50K revenue campaign with $12.5K ad spend shows blended ROAS of 4.0. After all adjustments, true ROAS is 1.42 — profitable, but not by much.
  • Channel comparison: The channel with the highest blended ROAS is not always the most profitable. True ROAS by channel reveals where to allocate budget this week.

Your Meta Ads dashboard shows a ROAS of 4.2. Your Google Ads dashboard shows 3.8. Your weekly report calls the week a success. Then your accountant sends the month-end numbers and the story changes. The revenue was real. The returns were higher than expected. The discount code ran longer than planned. The shipping costs spiked on the new product line. The 4.2 was a fiction.

This is the blended ROAS problem. Every ecommerce operator who has stared at a dashboard number and then stared at a bank statement understands it. The gap between reported ROAS and actual profitability is not a rounding error. It is a structural flaw in how most brands measure advertising performance. This post explains how to calculate true ROAS — the number that tells you whether your ad spend is actually making money.

What is true ROAS?

True ROAS is the ratio of contribution-margin-adjusted revenue to fully loaded ad spend. It answers one question: for every dollar spent on ads, how much actual profit did the ad generate?

Standard ROAS — the number your ad platforms report — divides tracked revenue by ad spend. If Meta records $10,000 in conversion value against $2,500 in spend, the reported ROAS is 4.0. That calculation assumes every dollar of revenue is profit. It is not.

True ROAS starts with the same revenue figure, then subtracts the costs that erode it before any profit remains. Returns. Discounts. COGS. Shipping. Platform fees. Only after these adjustments does the number reflect what the ad actually produced. The formula is simple. The discipline of applying it consistently is what separates operators who know their numbers from operators who report them.

Definition

True ROAS = Contribution Margin / Ad Spend, where Contribution Margin = Revenue minus Returns minus Discounts minus COGS minus Shipping minus Platform Fees. It measures profit generated per ad dollar, not revenue per ad dollar.

The distinction between revenue and contribution margin is not academic. A brand with 60% COGS, 12% return rate, and 8% discounting has a contribution margin of roughly 20% of revenue. That means a blended ROAS of 3.0 translates to a true ROAS of 0.6 — the brand is losing 40 cents on every ad dollar. The blended number says "scale it." The true number says "stop."

Why blended ROAS misleads

Blended ROAS has a legitimate use case. It is a fast, high-level metric for CFOs and board members who need a single number to assess overall marketing efficiency. It is not a channel allocation tool. Using blended ROAS to decide where to spend the next $10,000 is like using average temperature to decide what to wear — technically a number, practically useless.

Here is how the distortion works in practice.

Scenario: Two campaigns, one blended number

MetricCampaign ACampaign B
Ad spend$5,000$5,000
Revenue$20,000$15,000
Blended ROAS4.03.0
Return rate18%5%
Discount rate25%5%
COGS55%35%
Shipping12%8%
Platform fees5%3%
Contribution margin-$1,100$3,450
True ROAS-0.220.69

Campaign A has the higher blended ROAS. It also loses money. Campaign B looks worse on the dashboard. It is the only one generating contribution margin. This is not a hypothetical. We see this pattern in ecommerce accounts regularly — the highest-revenue campaign is often the lowest-true-margin campaign, because high volume masks high return rates, heavy discounting, or a product mix with thin unit economics.

The reason blended ROAS persists is convenience. Ad platforms report it automatically. Finance teams accept it as a standard metric. Operators who want true ROAS have to build it themselves. That extra step — pulling cost data from Shopify, Stripe, or QuickBooks and layering it onto channel-level revenue — is what most teams skip. The cost of skipping it is decisions made on numbers that do not reflect reality.

The true ROAS formula

True Roas True Roas Formula

The formula has two parts: the numerator (contribution margin) and the denominator (ad spend). Both require precision.

Step 1: Start with attributed revenue

Pull the revenue figure from your attribution model, not from the ad platform directly. Ad platform revenue is based on pixel or server-side conversion tracking and may not match your actual order data. Use the revenue figure from your e-commerce platform (Shopify, WooCommerce, BigCommerce) or payment processor (Stripe), attributed to the channel by your agreed-upon model — last-click, first-click, or data-driven.

Step 2: Apply the five adjustments

Subtract each of the following from attributed revenue, in this order:

  1. Returns and refunds: The percentage of orders returned within your return window. Use trailing 30-day or trailing 90-day return rate by product category, not a single-week snapshot.
  2. Discounts and promotions: The total value of coupons, flash sales, and promotional pricing applied to orders from that channel. Include both explicit codes and automatic cart discounts.
  3. Cost of goods sold (COGS): The direct cost to produce or acquire the products sold. For D2C brands, this includes manufacturing, packaging, and inbound freight. Do not include marketing, rent, or salaries.
  4. Shipping and fulfillment: Outbound shipping to the customer, packaging materials, and third-party fulfillment fees. Include free shipping costs — they are a discount by another name.
  5. Platform and payment fees: Shopify fees, Stripe processing fees, PayPal fees, and any marketplace commissions. These typically range from 2.9% + $0.30 per transaction to 15% for some marketplaces.

The result is contribution margin — the amount of money left to cover fixed costs and profit after all variable costs are paid.

Step 3: Divide by ad spend

Divide contribution margin by the ad spend for that channel, campaign, or time period. The result is true ROAS.

True ROAS = (Attributed Revenue - Returns - Discounts - COGS - Shipping - Platform Fees) / Ad Spend

A true ROAS of 1.0 means the ad generated exactly enough contribution margin to cover its own cost — breakeven on a variable basis. A true ROAS of 2.0 means every ad dollar generated two dollars of contribution margin. Whether 2.0 is "good" depends on your fixed cost load, which the next section addresses.

What to adjust for: the five cost categories

Each adjustment has its own data source, timing consideration, and common mistake. Getting any one of them wrong skews the entire calculation.

Returns and refunds

Returns are the most underestimated cost in ecommerce ROAS calculations. The average return rate for online apparel is 20-30%. For electronics, it is 8-12%. For home goods, 10-15%. Many operators calculate ROAS using gross revenue and apply a blended return rate at month-end. By then, the budget for the week has already been spent.

The correct approach: maintain a trailing return rate by product category and apply it to revenue at the time of reporting. If your 30-day trailing return rate for apparel is 22%, every apparel revenue figure should be multiplied by 0.78 before any further calculation. This is not pessimism. It is accuracy.

Discounts and promotions

Discounts are easy to miss because they are often applied at checkout, not at the ad platform. A customer clicks an ad at full price, then applies a 20% off code from an email campaign. The ad platform records full-price revenue. The actual revenue is 20% lower. The ad gets credit for a conversion it did not fully earn.

Track discount rate by channel. If a channel drives traffic that disproportionately uses discount codes — common with retargeting and affiliate traffic — its true ROAS will be lower than its blended ROAS suggests. The gap is often 10-25 percentage points.

Cost of goods sold (COGS)

COGS is the largest single cost category for most D2C brands, typically 25-60% of revenue depending on vertical. The common mistake is using a single blended COGS percentage across all products and channels. A skincare brand may have COGS of 20% for its hero serum and 55% for its bundled sampler. If the ad campaign drives disproportionate sampler sales, the blended COGS understates the real cost.

Calculate COGS at the SKU level where possible. At minimum, calculate COGS by product category and apply the category-specific rate to channel revenue. The difference between 30% and 50% COGS on a $20,000 campaign is $4,000 — enough to flip a campaign from profitable to loss-making.

Shipping and fulfillment

Shipping costs range from 5% of revenue for digital products to 15% for heavy physical goods. Free shipping promotions should be treated as a discount — the shipping cost is still incurred, just not charged to the customer. Third-party fulfillment fees (3PL pick-and-pack, storage) should be included if they scale with order volume.

Many brands exclude shipping from ROAS because it is "an operational cost, not a marketing cost." This is a category error. If the ad would not have generated the order, the shipping cost would not have been incurred. It is a variable cost of the sale and belongs in the calculation.

Platform and payment fees

These are the smallest adjustment but the easiest to forget. Shopify takes 2.9% + $0.30 per transaction on its standard plan. Stripe takes 2.9% + $0.30. PayPal is similar. For a $100 average order value, that is $3.20 per order — 3.2% of revenue. On a $50,000 campaign, that is $1,600. Not immaterial.

Marketplace sellers face higher fees — Amazon takes 8-15% in referral fees plus fulfillment fees. These should be subtracted before calculating ROAS for any channel driving traffic to a marketplace listing.

A real example: worked calculation

Here is a complete true ROAS calculation for a single month of Meta Ads performance. The numbers are realistic for a mid-size D2C apparel brand.

Line itemAmountNotes
Meta Ads spend$12,500Single campaign, 30 days
Attributed revenue (Shopify)$50,000Last-click attribution, 7-day window
Less: Returns (18%)-$9,000Trailing 30-day return rate for apparel
Net revenue after returns$41,000
Less: Discounts (15%)-$6,150Code WELCOME20 applied to 75% of orders
Net revenue after discounts$34,850
Less: COGS (45%)-$15,675Blended COGS for this product mix
Less: Shipping (10%)-$3,485Free shipping on orders over $75
Less: Platform fees (3.2%)-$1,115Shopify + Stripe combined
Contribution margin$14,575
True ROAS1.17$14,575 / $12,500
Blended ROAS (for comparison)4.0$50,000 / $12,500

The blended ROAS is 4.0. The true ROAS is 1.17. The campaign is profitable on a variable basis — every ad dollar generates $1.17 in contribution margin — but it is not the home run the dashboard suggested. The gap between 4.0 and 1.17 is $35,425 in costs that the blended number ignored.

Now consider what happens if return rate increases to 25% — common during holiday season when gift purchases drive higher returns. The contribution margin drops to $11,825. True ROAS falls to 0.95. The same campaign, with the same blended ROAS of 4.0, is now losing money. This is why weekly true ROAS tracking matters: the same campaign can swing from profitable to loss-making based on return rate alone.

True ROAS by channel: how to compare

Once you calculate true ROAS for one channel, the natural next step is to compare across channels. This is where the metric becomes an allocation tool.

Here is a three-channel comparison for the same brand, same month:

MetricMeta AdsGoogle AdsTikTok Ads
Ad spend$12,500$8,000$5,000
Attributed revenue$50,000$28,000$18,000
Blended ROAS4.03.53.6
Return rate18%12%22%
Discount rate15%8%20%
COGS45%45%45%
Shipping10%10%10%
Platform fees3.2%3.2%3.2%
Contribution margin$14,575$10,864$4,032
True ROAS1.171.360.81

The channel ranking changes completely. Meta Ads has the highest blended ROAS but the lowest true ROAS of the two profitable channels. Google Ads, with the lowest blended ROAS, has the highest true ROAS. TikTok Ads, with a blended ROAS of 3.6, is losing money on a contribution basis.

The allocation implication is clear: this brand should shift budget from TikTok to Google Ads, and test whether Meta Ads performance improves with tighter targeting or a different product mix. None of this is visible in the blended numbers.

Two caveats on channel comparison. First, attribution matters. If you use last-click attribution, Google branded search will get credit for conversions that started on Meta. If you use first-click, Meta will get credit for conversions that closed on Google. The true ROAS calculation is only as good as the attribution model underneath it. For a deeper comparison of blended vs true ROAS approaches, see our guide on blended vs true ROAS.

Second, time horizon matters. A channel with low true ROAS today may have high customer lifetime value (LTV) that justifies the spend. TikTok Ads often drive first purchases at a loss but acquire customers with higher 12-month repeat rates. The true ROAS calculation should be paired with cohort LTV data before making permanent cuts. For the broader framework on marketing efficiency measurement, see our post on MER vs ROAS.

Common mistakes

Even operators who understand the true ROAS formula make predictable errors in implementation. Here are the six we see most often.

1. Using ad platform revenue instead of actual revenue

Meta and Google report revenue based on conversion tracking, not on actual order data. Discrepancies of 5-15% are common due to attribution window differences, duplicate tracking, and canceled orders. Always reconcile against your e-commerce platform or payment processor.

2. Applying a single return rate across all channels

Return rates vary by channel because product mix and customer intent vary by channel. A Google Shopping campaign for a specific SKU will have a different return profile than a broad Meta prospecting campaign. Calculate return rates at the campaign or product level where data volume allows.

3. Ignoring the timing mismatch

Ad spend happens today. Returns happen in 14-30 days. If you calculate true ROAS using same-week returns, you understate the cost. If you wait 30 days to report, you lose the ability to act. The best practice: apply a trailing return rate based on historical data for that product category, and true up with actuals at month-end.

4. Treating fixed costs as variable costs

Some operators include rent, salaries, or software subscriptions in the true ROAS calculation. This overstates costs and understates performance. True ROAS is a variable-cost metric. Fixed costs belong in net margin analysis, not in channel-level ROAS.

5. Comparing true ROAS without comparing contribution margin absolute dollars

A channel with true ROAS of 1.5 and $50,000 in contribution margin is more valuable than a channel with true ROAS of 2.0 and $5,000 in contribution margin. True ROAS is a ratio, not a dollar amount. Use it for efficiency comparison, not for total value comparison.

6. Setting the same true ROAS target for every channel

New customer acquisition channels should have lower true ROAS targets than retargeting channels — because new customers have higher LTV. A prospecting campaign at 0.9 true ROAS may be correct if the 12-month LTV:CAC ratio is above 3:1. A retargeting campaign at 0.9 is almost certainly wrong. For a deeper look at channel-level profitability, see our guide on contribution margin by channel.

How Fairview calculates true ROAS automatically

Calculating true ROAS manually requires pulling data from three to five systems, applying five adjustments, and reconciling attribution models. Most operators do this in a spreadsheet. The spreadsheet breaks when someone changes a formula, when a data export fails, or when the person who built it leaves the company.

Fairview's Margin Intelligence feature automates this calculation. It connects to your e-commerce platform (Shopify), payment processor (Stripe), accounting tool (QuickBooks, Xero), and ad platforms (Google Ads, Meta Ads, HubSpot Marketing Hub) through the Data Connection Layer. Revenue, returns, discounts, COGS, shipping, and fees are pulled automatically and normalized across sources.

The result is true ROAS by channel, campaign, and SKU — updated daily, not reconstructed in a spreadsheet every Monday. When return rates spike or discounting erodes margin, Fairview flags the change and surfaces a specific recommendation: which campaign to review, which product mix to adjust, where to reallocate budget.

Fairview's Next-Best Action Engine goes further. When true ROAS on a channel drops below your configured threshold, it generates a named action — not a generic alert. "Meta Ads true ROAS dropped to 0.92 this week. Review the retargeting campaign for the new product line. Return rate on that SKU is 28%, up from 14% last month." The insight and the action arrive together.

The Weekly Operating Report summarizes true ROAS across all channels every Monday morning, alongside margin vs. prior period, pipeline changes, and the top three anomalies detected that week. Operators arrive at the weekly review already briefed — not building the briefing.

Margin Intelligence requires a finance integration (QuickBooks, Xero, or Stripe) to calculate full margin. Without it, Fairview shows revenue and pipeline data. The full true ROAS calculation activates once the finance connection is live — typically under 10 minutes from start.

Key takeaways

  • Blended ROAS divides total revenue by total ad spend. It ignores returns, discounts, COGS, shipping, and fees. A blended ROAS of 4.0 can mask a true ROAS below 1.0.
  • True ROAS = Contribution Margin / Ad Spend. Contribution margin is revenue minus the five variable cost categories: returns, discounts, COGS, shipping, and platform fees.
  • The channel with the highest blended ROAS is not always the most profitable. True ROAS by channel reveals where to allocate budget and where to cut.
  • Return rate is the most volatile adjustment. A 5-point increase in returns can flip a profitable campaign to a loss — even when blended ROAS stays flat.
  • True ROAS is a channel allocation metric, not a total value metric. Pair it with absolute contribution margin dollars and customer LTV before making permanent budget decisions.
  • Manual true ROAS calculation in spreadsheets is accurate but fragile. Automating the data pull and normalization is the difference between knowing your numbers weekly and reconstructing them monthly.

If your team is spending Monday mornings reconciling ad platform data with Shopify and QuickBooks to get a true ROAS number, Fairview automates the entire calculation. Connect your e-commerce, finance, and ad data in one operating view — and get true ROAS by channel updated daily, not reconstructed in a spreadsheet. Book a demo to see how it works for your stack.

How is true ROAS different from blended ROAS?

Blended ROAS divides total revenue by total ad spend. True ROAS divides contribution-margin-adjusted revenue by ad spend. The difference matters because blended ROAS treats a $100 order and a $100 order with a 20% discount, 15% return rate, and $35 COGS as the same outcome. Blended ROAS is useful for CFO-level reporting. True ROAS is what operators need for channel allocation decisions.

What costs should I subtract to calculate true ROAS?

At minimum, subtract five cost categories from revenue before dividing by ad spend: returns and refunds, discounts and promotions, cost of goods sold (COGS), shipping and fulfillment, and platform or payment processing fees. The result is contribution margin — the amount of money the ad actually generated after variable costs.

What is a good true ROAS for ecommerce?

A true ROAS above 2.0 means the channel is generating more contribution margin than it costs in ad spend. Below 1.5, the channel is likely losing money on a fully loaded basis. The exact target depends on your fixed cost structure and growth stage. A brand with low overhead can operate at 1.8. A brand with high fixed costs needs 2.5 or higher to break even overall.

Should I use true ROAS or MER for ecommerce?

Use both, for different decisions. MER (Marketing Efficiency Ratio) divides total revenue by total marketing spend and is useful for CFO-level reporting and board conversations. True ROAS is channel-specific and accounts for variable costs — it tells you which channel to scale, which to cut, and where to reallocate budget this week. The two metrics answer different questions.

How do I calculate true ROAS by channel?

Pull revenue and ad spend by channel from your attribution model. Apply the same five adjustments — returns, discounts, COGS, shipping, fees — to each channel's revenue. Divide the contribution margin by the ad spend for that channel. Compare the results. A channel with a lower blended ROAS but higher true ROAS is often more profitable than it appears.

Can I calculate true ROAS in Google Ads or Meta Ads?

No. Google Ads and Meta Ads report revenue based on pixel-tracked conversions, not on actual order value after returns, discounts, or refunds. They also do not account for COGS, shipping, or fees. To calculate true ROAS, you need to pull conversion data into a system that can layer on your cost data from your e-commerce platform, accounting tool, or payment processor.

Fairview · Free for 14 days

Turn this into action — automatically.

Connect your CRM, finance, and ad data. Fairview surfaces margin leaks, pipeline risk, and next-best actions every week.

No credit card · Setup in under 10 minutes

Frequently asked questions

What is true ROAS in ecommerce?

True ROAS is the ratio of contribution-margin-adjusted revenue to fully loaded ad spend. Unlike blended ROAS, which divides total revenue by total ad spend, true ROAS accounts for returns, discounts, COGS, shipping, and platform fees — so the number reflects actual profit per ad dollar, not just gross revenue.

Stop reading. Start making decisions.

Connect your stack, see your operating picture, act on what matters. First source live in 10 minutes.