logologo

ROAS Dropping? How to Localize a D7/D30 ROAS Decline by Cohort, Geo, Network, and Campaign

Compare same-age cohorts, not calendar days. Then find the geo, network or campaign behind the drop before you cut something that was working.

Sep 29, 2026 - 15 min

Most "ROAS is dropping" alarms are false. The dashboard compares last week's installs against installs from a month ago, and of course the young cohorts look worse — they've had less time to pay. Of the real declines, most trace back to one of three legs: you paid more per install (CAC), users paid less once acquired (ARPU), or spend drifted toward weaker segments (mix). A fourth, rarer case is a data break that looks like a performance collapse. This guide gives you a cohort-native method to tell them apart, then localize the real ones to the geo, network, campaign or creative where they live.

In this guide: The calendar-day trap · The decomposition · Worked example · Localize by dimension · False positives · What to do

Why is my ROAS dropping? The short answer

Compare cohorts of the same age — D7 against D7 — on matured windows only. If the decline survives that, split it into CAC, ARPU and mix, then slice by OS, geo, network, campaign and creative. A drop across every segment on the same date is usually data, not performance: check your MMP before you move budget.

Dx ROAS is the one metric where direction does carry meaning: down is bad. But the number has to be validated before it's trusted, because recent cohorts are structurally immature and small cohorts can be swung by a single large payer.


The calendar-day trap

A cumulative ROAS curve rises for weeks after install. If you read "ROAS for installs in the last 7 days" today, you're mixing a 1-day-old cohort with a 7-day-old one. Every day, the average will look worse than a mature month.

fig-1-calendar-trap.png

The five-day-old cohort isn't underperforming. It's five days old. Illustrative data.

The fix is to index by cohort age, not by calendar date. Compare D7 ROAS of cohorts that have all reached day 7, and exclude the immature tail: any cohort younger than the ROAS day you're reading, plus the attribution-lag days after it. Our D7 ROAS explainer covers why teams anchor on D7, and attribution windows covers which days are closed and safe to judge.


The decomposition: CAC, ARPU, mix — or a data break

Dx ROAS = Dx revenue per install ÷ CPI

So a ROAS decline has to come from revenue per install falling (ARPU leg), CPI rising (CAC leg), or the blend of segments changing (mix leg).

fig-2-decompose.png

Worked example: three weeks of decline

From the PvX Delta audit spec's sample results (a fictional account; illustrative numbers).

Aggregate D7 ROAS on matured cohorts only: 42.1% → 40.9% → 39.4% across three weekly reads, now under a 40% target.

With CAC confirmed, the CPI legs took over: one ad network's CPM inflation and a Korea-wide auction jump, plus Meta creative fatigue. The action was to fix acquisition economics on those slices and move about 10% of spend toward segments whose marginal D7 ROAS still cleared 40% (US iOS value, Brazil), then re-read next week.

A second spec sample shows the opposite verdict. iOS D7 ROAS fell from 38.1% to 33.2% in one week, simultaneously across every iOS campaign, geo and network. CPI was flat; revenue per install dropped 12% in a single step on one date — the day the MMP's SKAN revenue-modeling setting changed. Verdict: measurement artifact. Do not reallocate on it.

How to localize a ROAS decline by dimension

OS

iOS and Android are structurally different: different auctions, different attribution (ATT, SKAN and AdAttributionKit modeling on iOS), different user economics. Judge each against its own history, never against the other OS. iOS-only cliffs deserve a measurement check first (SKAN and AdAttributionKit for UA analysis).

Geo: top five markets by name, rest of world clustered

A top-five country's decline is material on its own. Cluster the long tail so a handful of small-market cohorts don't swing the read. Local events — holidays, pricing, localization errors — show up here.

Network

If one network's ROAS fell and others held, the cause is that network: its auction, its traffic quality, or a bidder change. If every network fell together, look at monetization or measurement.

Campaign and ad set

Rank campaigns by ROAS versus the account norm and by spend. The finding that matters is a campaign carrying real spend that dropped below target, not a small test that was never above it. Also check for recent budget increases — scaling into lower-intent audiences lowers ROAS mechanically — and benchmark campaigns against the account norm rather than a fixed number.

Audience

Broad, lookalike and interest audiences mature differently. Parse audience type from campaign names and compare like with like.

Creative

Per-creative ROAS is the noisiest ranking you can build: thin cohorts, whale-sensitive, immature tails. In the spec's creative-ranking sample, the raw top creative showed 88% D7 ROAS — but one $4.2k payer was 71% of its cohort's revenue. Queue that one for a longer window and rank only the valid rows (top and worst creative ranking).

False positives

What to do

Where the target line itself should sit is the subject of What Should Your ROAS Target Actually Be?. The opposite case, a winner being held back by its cap, is in budget-capped winners. When retention drops before ROAS does, see retention drop by acquisition cohort.

How PvX Delta checks this

PvX Delta is built on this checklist. It runs 100+ deterministic checks from these families across your MMP (AppsFlyer, Adjust or Singular) and your Meta Ads and Google Ads accounts: daily checks every night, weekly checks on their weekly cadence. The validity gate and prioritization run on every pass, and results arrive each morning as a decision brief. There are no prompts to write and no dashboards to build; setup is a data connection. Delta is advisory — it tells you what to change and why, and you make the change. The family-by-family reference is in the PvX Delta check library; how the stages fit together is in how PvX Delta works. If you're comparing approaches, deterministic checks vs anomaly detection covers the trade-off.

Delta runs this check nightly — connect your data. Free. Click here to see how PvX Delta works.

Sources

Related checks

Latest articles

image

AppsFlyer vs Meta Ads Manager Install Discrepancy: Why the AppsFlyer Facebook Discrepancy Happens and Which Number to Optimize On

Oct 22, 2026 - 7 minutes

image

The PvX Delta Check Library: Every Family of PvX Delta Checks, What It Watches, and How Often

Oct 19, 2026 - 6 minutes

image

What to Automate in Paid User Acquisition: 25 Mobile UA Checks, Ranked by Spend at Risk

Oct 19, 2026 - 8 minutes

Trusted by

Some of the fastest growing businesses in the industry