← Back to blog

Whale detection in mobile UA:
fix ROAS distortion before you scale

A single high-spending user can make a weak mobile game cohort look profitable. If your UA team scales from raw D7 ROAS without checking whale distortion, you can turn one lucky purchase into a five-figure budget mistake.

IN THIS GUIDE
  • What whale detection means in mobile game UA analytics
  • How one high spender distorts D7 ROAS and early ARPU
  • When to treat whale revenue as signal vs. noise
  • A practical workflow for calculating clean cohort ROAS
  • How Cohortful flags whale risk before scale decisions

What is whale distortion?

In mobile games, a whale is a user whose revenue is far above the normal range for a cohort. Whales are real customers, but they can be a bad guide for UA decisions when cohort sizes are small or early revenue windows are short.

The problem is not that whale revenue is fake. The problem is that one outlier can dominate D1 or D7 revenue and make a campaign look repeatably profitable before you know whether the campaign can acquire similar users at scale.

Whale detection is not about deleting revenue. It is about separating repeatable campaign signal from one-off variance before you increase spend.

How a whale turns bad ROAS into a false winner

Imagine a campaign with 2,000 installs and $10,000 in spend. By D7, the cohort reports $12,800 in revenue, so the raw D7 ROAS is 1.28x. That looks like a scale candidate.

Now remove one user who spent $5,900. The same cohort has $6,900 in non-whale revenue, which means clean D7 ROAS is 0.69x. Same campaign, same day, completely different decision.

cohortful · whale_check · Meta_Creative_14 ● live
Campaign: US / Meta / Creative 14
Spend: $10,000 · Installs: 2,000
Raw D7 ROAS: 1.28x
Clean D7 ROAS: 0.69x
Whale impact: +86% ROAS distortion

If you scaled on the raw number, you scaled a campaign whose underlying cohort economics were not ready. For a broader ROAS workflow, read our ROAS cohort analysis guide.

How to detect whale distortion manually

A practical whale check does not need to be complicated. For each cohort, calculate revenue concentration and compare raw ROAS with clean ROAS after high-spender adjustment.

  • Sort users by revenue within the cohort.
  • Calculate the share of revenue from the top 1%, 5%, and 10% of users.
  • Flag users above a high-spender threshold, such as 3x standard deviation from cohort mean revenue.
  • Recalculate D1, D7, D14, and D30 ROAS with those users separated.
  • Compare raw ROAS and clean ROAS before making a scale or pause decision.

The threshold should depend on genre, cohort size, and monetization model. Casino, RPG, and strategy games naturally have higher revenue concentration than hypercasual games. A good workflow preserves both views: raw revenue for finance, clean cohort ROAS for UA decision-making.

When whale revenue is signal

Not every whale is noise. If the same campaign, creative, country, or network repeatedly produces high spenders across multiple cohorts, that pattern is signal. The point of whale detection is to avoid treating one isolated high spender as proof that a campaign can scale.

A strong UA analytics workflow compares multiple cohorts and asks: are whales appearing consistently in this traffic source, or did one user distort one early window? That is why whale detection belongs inside cohort analysis for mobile games, not as a one-off spreadsheet check.

How Cohortful handles whale risk

Cohortful calculates raw and clean cohort ROAS side by side. It aligns MMP, ad network, and store revenue data, flags high-spender concentration, and shows whether D7 ROAS is reliable enough to act on.

That gives mobile game UA teams a cleaner operating number: campaign-level ROAS with whale risk visible, revenue sources reconciled, and the decision framed as scale, hold, or pause.

Need clean cohort ROAS before scaling?

Cohortful detects whale distortion and reconciles mobile game UA revenue data so teams can act on D7 ROAS without waiting for manual analysis.

See how Cohortful works