How to Set Your Target ROAS (and Stop Guessing)
Most DTC brands pick a ROAS target from a blog post or a benchmark. Here is how to calculate the floor that is specific to your margins, and set a real target above it.
Picking a ROAS target is one of the most common questions DTC operators ask. The answer is not 3x or 4x or whatever the last agency pitch deck said. It is a number you derive from your own margins in about five minutes. Here is how.
Start with contribution margin, not gross margin
Contribution margin is what a sale actually returns to the business after you subtract COGS, outbound shipping, platform fees, and ad cost. It is the honest version of profitability at the order level. Gross margin stops at COGS, which makes your economics look better than they are when you try to set ad targets.
For setting a ROAS floor, you want contribution margin before ad cost. That means: (Revenue - COGS - Shipping - Fees) / Revenue. This number is the percentage of each dollar of revenue that is available to cover ad spend before the sale becomes unprofitable.
- Product selling for $100
- COGS (landed, including freight and duty): $28
- Outbound shipping: $9
- Shopify and payment fees (~3%): $3
- Pre-ad contribution margin: $100 - $28 - $9 - $3 = $60, or 60%
The break-even ROAS formula
Break-even ROAS is the ROAS at which ad spend is exactly covered by the pre-ad contribution margin, leaving zero profit from the ad-driven sale. The formula is simple: 1 divided by your pre-ad contribution margin percentage.
In the example above: Break-even ROAS = 1 / 0.60 = 1.67x. At 1.67x ROAS, the ad revenue exactly covers the ad cost. Every sale at that ROAS contributes nothing after ad spend is paid. This is the floor, not the goal.
- 50% pre-ad contribution margin: break-even ROAS = 2.0x
- 40% pre-ad contribution margin: break-even ROAS = 2.5x
- 35% pre-ad contribution margin: break-even ROAS = 2.86x
- 30% pre-ad contribution margin: break-even ROAS = 3.33x
- 25% pre-ad contribution margin: break-even ROAS = 4.0x
This is why there is no universal good ROAS. A brand with 50% pre-ad margins breaks even at 2x. A brand with 25% pre-ad margins needs 4x just to break even. Comparing ROAS targets across brands without knowing margins is meaningless.
Setting the target above break-even
Break-even ROAS is the minimum floor for a campaign to not lose money on the ad cost itself. But it leaves nothing for overhead: rent, software, salaries, owner pay. You need to run above break-even to build a profitable business.
A practical approach: calculate what contribution margin you need to cover fixed overhead and generate target profit, then back into the ROAS that delivers it. Most DTC brands with a sustainable structure run 15-30% above their break-even ROAS as a campaign minimum.
- Break-even ROAS at 40% pre-ad margin: 2.5x
- Target ROAS at 20% above break-even: 3.0x
- What that means: at 3x ROAS, each sale delivers $40 in revenue per $13.33 of ad spend, leaving $26.67 in pre-ad contribution minus $13.33 ad cost = $13.33 per-order contribution after ads
- That per-order contribution after ads is what goes toward fixed costs and profit
Campaign floor vs portfolio target
Set two numbers, not one. The campaign floor is the minimum ROAS below which you pause or restructure a specific campaign. The portfolio target is the MER (blended total revenue divided by total ad spend) you need the whole business to hit for advertising to be profitable overall.
Some campaigns will run below the floor temporarily during testing or creative refresh. That is fine as long as the portfolio MER stays above your business-level break-even. Use the campaign floor as a signal, not an automatic off switch.
Run your numbers in the free profit calculator to find your break-even ROAS and contribution margin at different price and cost scenarios. Then use /learn/break-even-roas and /learn/roas to understand how these metrics connect to your full P&L.
See all your margins live in one place.
Vibel connects Shopify, Meta, and every other channel and surfaces contribution margin, MER, and per-SKU profit automatically.