ROAS — and when to scale or pause

ROAS = purchaseValue / spend. Scale when ROAS > target × 1.2 + meaningful spend; pause when ROAS < target × 0.5. Use last_7d minimum.

Written By Salvatore Sinigaglia

Last updated About 4 hours ago

ROAS = purchaseValue / spend. Scale when ROAS > target × 1.2 + meaningful spend; pause when ROAS < target × 0.5. Use last_7d minimum.

ROAS — and when to scale or pause

ROAS = purchaseValue ÷ spend. The headline number for e-commerce campaigns. Decision framework: scale when ROAS > target × 1.2 AND spend > meaningful threshold; pause when ROAS < target × 0.5 AND spend > meaningful. ROAS targets vary by industry (e-commerce typical 2-4; subscription 1-2; lead-gen uses CPA not ROAS). Critical caveat: postback lag means recent days have incomplete data — use last_7d minimum for decisions.

Who is this for

Anyone making scale-or-pause decisions on ad campaigns. The single most-asked metric question in mediabuyer work.

What ROAS measures

Return on ad spend:

ROAS = purchaseValue / spend

Example: spend €500, generated €1.500 in tracked purchases → ROAS = 3.0 (= €3 returned per €1 spent).

ROAS targets vary by business

There's no universal "good ROAS":

Business modelTypical ROAS target
E-commerce — low margin4-6+ (need lots of margin headroom)
E-commerce — high margin2-3
Subscription / SaaS1-2 (LTV makes up the difference)
Lead generationN/A — use CPA / CPL instead
Brand awarenessN/A — use reach / CPM
App installdepends on LTV; varies wildly

Calculate yours: take your gross margin, account for fixed costs, derive the break-even ROAS — then add a profit margin.

The decision framework

Once you know your target ROAS, the question becomes "scale, pause, or hold?":

Scale signal

ROAS > target × 1.2  AND  spend > meaningful_threshold

Example: target ROAS 3, current ROAS > 3.6, current spend > €50 / day.

meaningful_threshold ensures the ROAS signal is reliable (low spend = noisy ROAS). Set based on your typical campaign size — for €1K daily, threshold €50 is fine; for €100 daily, threshold might be €20.

Pause signal

ROAS < target × 0.5  AND  spend > meaningful_threshold

Example: target ROAS 3, current ROAS < 1.5, current spend > €50 / day.

Sub-half target = clear unprofitable. Pause + investigate.

Hold (do nothing)

ROAS in between target × 0.5 and target × 1.2. Either:

  • Optimize creative / audience (small adjustments)
  • Wait for more data
  • Test variants

No knee-jerk decisions here.

Critical caveat: postback lag

ROAS depends on purchaseValue from postback data:

  • Meta API postback: 24-72h lag after the conversion event
  • Custom commerce / tracker integration: faster (seconds to hours)

This means:

  • Today's ROAS is incomplete (purchases from yesterday's clicks still flowing in)
  • Yesterday's ROAS is mostly settled but may grow further
  • Last 7 days ROAS is reliable

Use last_7d minimum for ROAS decisions. Acting on today or yesterday ROAS = acting on incomplete data → whiplash decisions.

See am-121 postback vs Meta conversions for the deep dive.

ROAS across platforms

Cross-Channel mode unifies ROAS across Meta / Google / TikTok / etc. — but attribution windows differ:

PlatformDefault attribution
Meta7-day click + 1-day view
Google30-day click + 1-day view
TikTok7-day click
Taboolavaries

Same purchase may be claimed differently by platforms. Cross-Channel does best-effort unification but small variance is expected.

For tighter analysis: use postback / tracker data (PRD-14 com-*) which provides single-source-of-truth attribution.

ROAS in Rules Engine

Connection to PRD-17 Rules Engine: ROAS-based rules are the most common automation:

IF roas < target × 0.5 AND spend > 50 FOR last_7dTHEN pause adset

Or:

IF roas > target × 1.5 AND spend > 100 FOR last_3dTHEN increase_budget_pct 20

See rul-116 best practices.

Common mistakes

  • Acting on today's ROAS: incomplete data; wait for 7-day settle
  • Comparing platforms 1:1 on ROAS: attribution windows differ; small variance is normal
  • Scaling without spend guard: low-spend ROAS is noise — could be 1 lucky purchase
  • Using ROAS for lead-gen: lead-gen campaigns don't have purchaseValue natively; use CPA instead
  • Treating ROAS as static: it varies by audience, creative, time-of-day, season; review periodically
  • One ROAS target for whole account: different campaigns have different target ROAS (prospecting vs retargeting; cold vs warm audience)

When ROAS doesn't apply

  • Brand campaigns → measure reach / impressions / brand-lift studies
  • Lead generation → measure CPA / CPL
  • App installs → measure CPI + LTV
  • Subscription → blend ROAS with LTV for true picture
  • Top-funnel awareness → measure reach + frequency

For these: pick the right metric, don't force ROAS.

FAQ

How does Wevion calculate ROAS?

Wevion computes ROAS as purchaseValue divided by spend. For example, spending €500 that generates €1.500 in tracked purchases gives a ROAS of 3.0, meaning €3 returned per €1 spent. It's the headline number for e-commerce campaigns, sourced from postback purchase data across the platforms you've connected.

When should I scale or pause a campaign based on ROAS?

Wevion's decision framework says scale when ROAS is above target × 1.2 and spend exceeds a meaningful threshold, and pause when ROAS falls below target × 0.5 with meaningful spend. Anything in between is a hold: optimize creative or audience, wait for more data, or test variants rather than making knee-jerk decisions.

Why does yesterday's ROAS keep changing in Wevion?

Because ROAS depends on postback purchaseValue, which lags 24-72 hours for Meta API conversions. Today's ROAS is incomplete and yesterday's is mostly settled but may still grow as purchases from earlier clicks flow in. Use the last_7d window as a minimum for reliable ROAS decisions and avoid acting on today or yesterday.

What ROAS target should I aim for?

There's no universal good ROAS; it varies by business model. Low-margin e-commerce typically targets 4-6+, high-margin 2-3, and subscription 1-2 since LTV makes up the difference. Lead generation and brand awareness don't use ROAS at all. Calculate yours from gross margin, fixed costs, and break-even, then add profit margin.

Does ROAS work for lead-generation campaigns?

No. Lead-generation campaigns don't have purchaseValue natively, so ROAS doesn't apply; use CPA or CPL instead. Similarly, brand awareness uses reach or CPM, app installs use CPI plus LTV, and top-funnel awareness uses reach and frequency. Pick the right metric for the goal rather than forcing ROAS everywhere.