Analytics & Reporting
November 12, 2025

Contribution Margin vs. ROAS: <blue>Which Metric Should Drive Your Paid Media Decisions?</blue>

Kyle Bomardier
Kyle Bombardier
Table of contents

Scale Smarter with

Connect your sources, clean your data, and watch performance marketing soar with a flat fee and zero drama. Get started with a discovery call

Contribution margin should drive paid media budget decisions. ROAS should not. ROAS tells you how much revenue an ad platform attributes to each dollar of spend; contribution margin tells you how much money is left after the variable costs of each sale, including the ad spend. A campaign can post a strong ROAS and still lose money once product costs, shipping, fees, discounts, and returns come out. Keep ROAS as a fast, in-platform comparison metric, and decide where the next dollar goes on contribution margin.

Key takeaways

  • ROAS measures revenue efficiency. Contribution margin measures profit after variable costs.
  • Two campaigns with different ROAS can rank in the opposite order on contribution margin.
  • Your break-even ROAS depends on your margin, so one blanket ROAS target fits almost no business.
  • Use ROAS to compare ads inside a platform, and contribution margin to allocate budget across campaigns and channels.

What is the difference between ROAS and contribution margin?

ROAS (return on ad spend) is attributed revenue divided by ad spend. A ROAS of 4.0 means the platform credits $4 of revenue to every $1 spent. It is usually platform-reported, which means it follows each platform's attribution rules and can overlap with credit claimed by other channels.

Contribution margin is the revenue left after subtracting the variable costs tied to each sale: cost of goods, shipping and fulfillment, payment fees, discounts, and returns. Subtracting ad spend as well gives contribution after marketing, the amount a campaign actually adds toward fixed costs and profit. The steps for calculating contribution margin walk through which costs belong in the formula.

The difference is simple to state: ROAS stops at revenue. Contribution margin follows the sale all the way to what the business keeps.

How can a high ROAS hide a loss?

A hypothetical example: two campaigns each spend $10,000 in a month.

  • Campaign A has a 4.0 ROAS and drives $40,000 in revenue, mostly from a discounted, low-margin product. After variable costs it keeps 30% of revenue, or $12,000. Subtract the $10,000 in spend and it contributes $2,000.
  • Campaign B has a 2.5 ROAS and drives $25,000 in revenue from a full-price, high-margin product. It keeps 70% of revenue, or $17,500. Subtract the $10,000 in spend and it contributes $7,500.

On ROAS, Campaign A looks 60% better. On contribution margin, Campaign B earns nearly four times as much. A team that shifts budget toward the higher ROAS would be moving money toward the lower-profit campaign.

What is your break-even ROAS?

Break-even ROAS is the ROAS at which ad spend exactly uses up the margin on the sale. It equals 1 divided by your contribution margin percentage before ad spend.

  • A product that keeps 50% of revenue after variable costs breaks even at a ROAS of 2.0.
  • A product that keeps 30% breaks even at about 3.3.
  • A product that keeps 70% breaks even at about 1.4.

Discounts move the target. A hypothetical example: a $100 product costs $50 to make and deliver, a 50% margin with a break-even ROAS of 2.0. Offer 20% off and the price falls to $80 while costs stay at $50. Margin drops to 37.5%, and break-even ROAS rises to about 2.7. The same campaign that was profitable at full price can lose money during a promotion without any change in its reported ROAS.

This is why one ROAS target across a whole account rarely works. Products and promotions with different margins need different targets, and contribution margin is how you set them.

When is ROAS still useful?

ROAS is not useless. It is fast, it is available inside every ad platform, and it works well for some jobs:

  • Comparing creative and audiences within one campaign selling the same product, where margins are equal.
  • Spotting sudden changes in efficiency that need investigation.
  • Setting platform bid targets, as long as the target comes from your contribution-margin math rather than a rule of thumb.

The problem starts when ROAS becomes the scoreboard for budget decisions across products, campaigns, or channels with different economics.

How do you start optimizing to contribution margin?

  1. Calculate margin by product. List variable costs for your main products and calculate each one's contribution margin percentage and break-even ROAS.
  2. Reconcile platform revenue with backend revenue. Compare what each platform reports with orders in your ecommerce platform or payment processor, so margin is calculated on revenue that actually happened.
  3. Report contribution by campaign. Join ad spend, orders, and costs so each campaign, and ideally each ad set, shows contribution after marketing.
  4. Reallocate on contribution dollars. Move budget toward the campaigns adding the most contribution, using ROAS only to compare within them.
  5. Review margins before promotions. Recalculate break-even ROAS for discounted offers before the sale starts, not after.

Steps 2 and 3 are data problems. Ad platforms do not know your product costs, and your ecommerce platform does not know your ad spend. A data warehouse for marketing performance joins them so contribution margin can be reported without spreadsheets.

An Onward team member holding a hat in front of a colorful art installation
An Onward team member at Google.

What does this look like in practice?

Songfinch, a direct-to-consumer brand, now matches its ad data to Stripe payments at better than 99% and can see contribution margin for every ad set. That level of detail lets a team cut an ad set that looks efficient on ROAS but adds little profit. The details are in the case study on how Songfinch reached 99% data reconciliation.

Songfinch case study stat: ad-set-level contribution-margin visibility
Contribution margin by ad set shows which ads create profit, not just platform revenue.

500 LEVEL, which sells licensed sports apparel direct to consumers, took a profit-first approach to paid acquisition and grew revenue 156% year over year. Read how 500 LEVEL grew revenue 156% for the full story.

500 LEVEL case study stat: 156% year-over-year revenue growth
Profit-first paid acquisition: 500 LEVEL grew revenue 156% year over year.

Onward's margin-focused paid media work follows the same principle: campaigns are optimized toward contribution margin and customer acquisition cost rather than platform metrics alone.

Frequently asked questions

Is a high ROAS always a good sign?

No. A high ROAS on a low-margin or heavily discounted product can still lose money. Check it against that product's break-even ROAS before scaling.

Does this apply to lead generation businesses?

Yes, with different inputs. Replace revenue with the value of qualified leads or closed deals, and judge campaigns on contribution after acquisition cost rather than cost per lead.

Should I stop reporting ROAS?

No. Keep it in channel reports, because media buyers use it daily and it flags efficiency changes quickly. Just put contribution margin next to it, and make it clear which one decides budget. When the two disagree, contribution margin wins, and the gap between them usually points to a margin, discount, or attribution issue worth investigating.

The bottom line

ROAS tells you how efficiently ads generate revenue. Contribution margin tells you whether that revenue makes money. Use ROAS to compare within a platform, set targets from your break-even math, and let contribution margin decide where your budget goes. To see your campaigns ranked by contribution instead of ROAS, book a discovery call.