ROAS Target Calculator
Setting tROAS from real economics — not industry benchmarks, not Google's suggestion, not what your boss thinks.
Try it on your numbers
Type a contribution margin (or break it down by line items below) and the calculator will show your breakeven and suggested target ROAS.
Inputs — basket level
Results
Section 1 — The core formula
| Contribution Margin | Breakeven ROAS |
|---|---|
| 50% | 2.0 (200%) |
| 40% | 2.5 (250%) |
| 33% | 3.03 (303%) |
| 30% | 3.33 (333%) |
| 25% | 4.0 (400%) |
| 20% | 5.0 (500%) |
| 15% | 6.67 (667%) |
| 10% | 10.0 (1000%) |
Memorise the relationship: the lower your margin, the higher your breakeven ROAS, and the harder Smart Bidding has to work to keep you profitable.
What goes into Contribution Margin
Contribution margin is revenue minus variable costs. It's not gross margin (which only nets COGS) and it's not net profit (which subtracts fixed costs).
- COGS (cost of the product)
- Outbound shipping (carrier + packaging materials)
- Payment processing fees (typically 2.5–3.5%, plus per-transaction gateway fees)
- Returns allowance (return rate × cost of processing a return)
- Refund / chargeback buffer
- Platform fees (Shopify transaction, marketplace fees)
- Picking/packing labour if it scales with order volume
Why "basket level" not "per item"
The cleanest way to compute contribution margin for bidding is at the order/basket level, not per item. This naturally handles variable items per basket and AOV variation — high-AOV orders dilute fixed per-order costs, low-AOV orders concentrate them, and averaging absorbs both.
If your catalogue cleanly splits into margin bands (accessories at 50%, core at 30%, bulky at 15%), do this exercise per band. That gives you the inputs for margin-tier campaigns.
Section 2 — Target ROAS = Breakeven + Profit Buffer
These values match what the interactive calculator above outputs. Buffer % is the gap above breakeven.
| Contribution Margin | Breakeven ROAS | Suggested Target | Buffer | Tier |
|---|---|---|---|---|
| 50% | 2.00 | 2.40–2.60 | 20–30% | Healthy |
| 40% | 2.50 | 3.00–3.25 | 20–30% | Healthy |
| 30% | 3.33 | 4.17–4.50 | 25–35% | Medium |
| 25% | 4.00 | 5.00–5.40 | 25–35% | Medium |
| 20% | 5.00 | 6.50–7.50 | 30–50% | Low |
| 15% | 6.67 | 8.67–10.00 | 30–50% | Low |
| 10% | 10.00 | 14.00–16.00 | 40–60% | Very thin |
Rule of thumb: ~20–30% above breakeven for healthy margins, 30–50% above for thin margins, 40–60% above for very thin. The thinner the margin, the bigger the relative buffer needs to be — the same percentage performance dip eats more profit at low margins.
Section 3 — Margin tiers (handling variable AOV)
Per-item modelling doesn't work when items aren't reliably bought solo. The right approach for a mixed catalogue is basket-level margin tiers + margin-tier campaigns.
Step 1 — Define your tiers
| Tier | Typical CM% | Catalogue example |
|---|---|---|
| High-margin | 40%+ | Accessories, own-brand, digital |
| Medium-margin | 25–40% | Core products, mid-range |
| Low-margin | <25% | Bulky/heavy, third-party brands, sale stock |
Step 2 — Compute blended CM% per tier
For each tier, look at the last 90 days of orders that are predominantly that tier and run the basket-level CM% calculation from Section 1.
Step 3 — Tag products with custom labels
- Populate
custom_label_0withhigh-margin,medium-margin,low-margin - Use Merchant Center attribute rules so it auto-assigns based on
cost_of_goods_soldvsprice - Updates automatically when COGS or prices change
Step 4 — Create one campaign per tier
For Standard Shopping or PMax: one campaign per tier, filtered by custom_label_0, set the tROAS for that tier.
Step 5 — Group under 2–3 portfolio bid strategies
Each tier becomes its own portfolio. Aggregates conversion data above the Smart Bidding floor. Don't go further than necessary — only split portfolios when targets differ by 30%+.
Section 4 — Worked examples
Example A — High-margin tier
46% CMActivewear / accessories style, £80 average basket. Drop these into the calculator above to verify.
Example B — Low-margin, fulfilment-heavy tier
8% CMStacks the non-COGS variable costs to show how a "decent" 30% gross margin can collapse to an unrunnable contribution margin once shipping, returns, and processing are included.
Three options:
- Improve margin first — renegotiate suppliers, change shipping carrier, raise prices, reduce return rate. Bring CM into the 15–20% range
- Run only on retargeting / brand search where conversion rates are dramatically higher and 15× tROAS is achievable. Exclude from prospecting
- Treat as loss leader for LTV — only valid if the customer reliably comes back for high-margin repurchases (see §5)
Example C — Mixed catalogue, 3 tiers
3 portfolios| Tier | CM% | Breakeven | Target range | Strategy |
|---|---|---|---|---|
| High-margin | 42% | 2.38 | 2.86–3.10 | Portfolio 1 |
| Medium-margin | 30% | 3.33 | 4.17–4.50 | Portfolio 2 |
| Low-margin | 15% | 6.67 | 8.67–10.00 | Portfolio 3 |
Start at the low end of each range, walk up by 10% increments after 14-day learning periods.
Each tier is a separate Shopping or PMax campaign filtered by custom_label_0. Each has its own portfolio with min/max bid limits (max ~2× normal CPC) to stop CPC creep.
Section 5 — First-Order vs Blended ROAS (the LTV question)
Everything above assumes the order has to be profitable on its own. That's correct if your customers don't come back.
If they do — meaningful repeat rate, predictable LTV — you can profitably acquire customers at a lower first-order ROAS because future repurchases recover the gap.
The LTV-adjusted formula
This formula gives you the breakeven first-order ROAS — total lifetime contribution exactly covers acquisition cost. Your target sits above this by a profit buffer.
Where Repeat Purchase Factor = (CLV ÷ First-Order AOV) − 1
Worked example
First-order AOV: £100
Contribution margin: 40%
CLV (4 total orders incl first): £400
Repeat Purchase Factor: (400 / 100) - 1 = 3.0
Breakeven first-order ROAS: 1 / (0.40 × (1 + 3.0))
= 1 / 1.6
= 0.625
Total lifetime contribution: £400 × 40% = £160
Max profitable acquisition cost: £160 per customer
Implied breakeven ROAS on £100: 100 / 160 = 0.625 ✓
Translation: at first-order ROAS of exactly 0.625, you spend £160 acquiring a customer who delivers £160 of lifetime contribution — you break even across their lifetime. For any actual profit, you need first-order ROAS above 0.625.
Target first-order ROAS in this example, with a 25% buffer: 0.625 × 1.25 ≈ 0.78 — you'd be willing to spend up to £128 acquiring a £100 first order.
How to use this in Google Ads
- New Customer Acquisition mode — bid higher for new customers than returning ones
- New customer value multiplier — set to your actual (CLV ÷ first-order AOV) ratio. For the example above, that's £400 ÷ £100 = 4.0×. The "2.5–3.5×" you'll see in agency blogs is just a common range from case studies — rule of thumb, not a standard.
- Conversion Value Rules — multiply value for new customers, reduce for returning. Exact multipliers depend on your LTV data.
• First-order ROAS (acquisition health)
• Blended ROAS (overall profitability)
• CLV trend (is the LTV assumption still valid?)
Section 6 — POAS as the next step
POAS removes the margin headache entirely by passing profit as the conversion value to Google Ads instead of revenue. Smart Bidding then optimises directly to profit. Breakeven POAS is always 1.0 regardless of margin.
Tools that do this: ProfitMetrics, Polar Analytics, StoreHero. They sit between your store and Google Ads, calculate profit per order, and pass it server-side into the conversion value.
• One target across all margin tiers (no segmentation required)
• Eliminates the "10× ROAS but losing money" trap
• Croud's playbook explicitly endorses this direction (
cost_of_goods_sold → SA360 → profit-focused bidding)
• Integration work / ongoing subscription cost
• Requires clean COGS data per SKU
• Adds a dependency between your store and your bidding
When to consider it: once you've done the margin-tier work and you're hungry for more refinement, or when the catalogue has too many tiers to manage practically. Before that, margin-tier campaigns get you 80% of the benefit with no integration cost.
Section 7 — Decision checklist
Run this before you set or change any tROAS target:
- Do I know my basket-level contribution margin (not gross margin, not per-item)?
- Have I included shipping, processing fees, and returns allowance in variable costs?
- Does margin vary meaningfully across my catalogue? If yes → segment into tiers via custom labels.
- Is my proposed target above breakeven? (Sanity check the maths.)
- Is the buffer above breakeven realistic for the margin level? (Don't set 50× ROAS for a 50% margin product — Smart Bidding will starve it.)
- Is there meaningful repeat purchase behaviour? If yes → factor in LTV and consider New Customer Acquisition mode.
- Am I moving the target by more than 20% in one go? If yes → step it down to 10–20% increments.
- Is the campaign "limited by budget"? If yes → fix that first, before touching targets (see Mistake #1).
- Do I have 50+ conversions/month in this campaign or portfolio? If no → consolidate into a portfolio with siblings, or stay on Manual CPC.
- Am I about to make this change mid-learning-period? If yes → wait.
Section 8 — Quick reference
TARGET ROAS: Breakeven + 20–30% (healthy) or 30–50% (thin)
INCREMENTS: Move targets by max 10–20% per change, wait 14 days
SEGMENTATION: Use custom labels in Merchant Center (custom_label_0)
PORTFOLIO COUNT: 2–3 portfolios per account, grouped by similar targets
NEW CUSTOMER LIFT: Multiplier = actual (CLV ÷ first-order AOV)
LEARNING PERIOD: 7–14 days; never tinker during it
MAIN METRIC: Projected ROAS, not actual ROAS, during learning