Predicted ROAS decision guide

How to Set a D7 ROAS Target From Mature Cohorts

Set a D7 ROAS target from your app’s mature cohorts, payback deadline, revenue basis, and a leakage-safe backtest instead of borrowing a benchmark.

A defensible D7 ROAS target is the lowest early return that led comparable historical cohorts to your mature profitability goal at an acceptable error rate. It is not the average for your genre, and it is not automatically the target an ad network should bid toward.

Start with the outcome the business needs, such as 120% net ROAS at D180. Recreate what was knowable on D7 for mature historical cohorts. Test candidate D7 thresholds against the D180 outcomes that arrived later. Then keep a hold band where the historical evidence cannot separate eventual winners from losers.

That produces an operating rule your UA team can inspect. It may also produce no usable target. If the cohort history is small, mixed, or no longer comparable, “wait for more evidence” is a better answer than a borrowed percentage.

A D180 business goal is tested against mature historical cohorts at a D7 information boundary. D7 ROAS below 30 percent is marked cut, 30 to 36 percent is hold, and 36 percent or higher is scale in the synthetic example.
The synthetic example produces three zones, not a universal benchmark. The thresholds exist only inside the stated app, revenue, attribution, and cohort scope.

Your D7 ROAS target is not an industry benchmark

Three numbers are often called a ROAS target even though they answer different questions.

Number What it controls What it does not prove
Market benchmark Whether your result looks high or low beside a reported peer group That your cohort will meet your payback requirement
Ad-network tROAS How selectively the network bids within its conversion or optimization window That the acquired cohort will reach your mature profit goal
Internal D7 threshold Whether the UA team scales, holds, or cuts after an early cohort observation Causal incrementality or guaranteed future revenue

The distinction is visible in current provider documentation. Google Ads recommends starting an App campaign tROAS from a comparable campaign with the same app ID, biddable event, location, language, and conversion window. It also tells advertisers to exclude the most recent period so delayed conversions can mature.

Unity Ads separates in-app purchase, ad-revenue, and hybrid ROAS optimization. Its available windows include D0, D7, and D28 depending on the revenue type. A lower Unity ROAS goal can permit higher CPI bids and more installs. A higher goal makes bidding more selective and can reduce volume.

Those are delivery mechanics. Finance may care about net D180 payback while a network optimizes gross D7 ad revenue. Both percentages can be correct and still be incompatible. Never copy one into the other until the revenue basis, attribution, and horizon match.

Start with the mature outcome finance actually requires

Do not begin with D7. Begin with the final constraint.

Write one sentence that includes:

  • the mature horizon, such as D90, D180, or D365;
  • the required return, such as 120% ROAS;
  • gross or net revenue;
  • the acquisition spend included in the denominator;
  • the attribution basis;
  • the maximum downside the business will accept.

The synthetic example in this article uses this requirement:

A paid Android cohort in the US may scale when evidence available on D7 supports at least 120% net D180 ROAS, using attributed IAP and ad revenue divided by aligned campaign spend.

That is still incomplete until “supports” has an error rule. For the first pass, the example requires a candidate D7 threshold to make no false scale calls in a time-ordered calibration period. A real team might accept a small false-scale rate to buy more volume, but it must choose that tolerance before seeing which threshold wins. After selection, the threshold must be frozen and tested on a later untouched period.

The mature horizon is a business choice. The observation age is an evidence choice. D7 is useful only when enough revenue and behavior exist by D7 to distinguish future outcomes. A weekly subscription, an IAP game, and an ad-monetized game do not reveal value on the same schedule. Review when ad revenue, IAP, and subscription LTV become final before fixing the observation age.

Freeze one comparable cohort definition

A D7 target is meaningless without a denominator and a cohort boundary. AppsFlyer defines cohort ROAS as revenue divided by cost and lets the revenue view be cumulative or on-day. Adjust organizes users from install or reattribution through later days, weeks, or months and notes that cohort analysis depends on the app vertical and goal.

For the target calculation, freeze these fields:

Field Example scope Why it changes the result
App and monetization One hybrid-IAP game Revenue curves differ across apps and models
Platform and market Android, US CPI, payer mix, store economics, and attribution differ
Acquisition grain Paid install cohort by campaign Organic or re-engaged users do not share the same spend basis
Observation age Cumulative through D7 On-day D7 revenue is not cumulative D7 revenue
Mature horizon Cumulative through D180 D30 and D365 answer different payback questions
Revenue basis Net IAP plus the ad-revenue version available at the decision time Gross purchases, later corrections, and mixed report versions change the early signal
Spend basis Aligned campaign spend Blended account spend breaks the cohort ratio
Attribution One fixed MMP definition Changing lookback or credit rules changes the numerator

Do not pool countries or campaign types merely to increase the row count. More rows do not help if they represent different revenue curves. If segmentation leaves too little evidence, the honest result is that no segment-specific D7 target is ready.

Build the D7-to-maturity table without future leakage

For each historical cohort that has matured to the business horizon, save two snapshots:

  1. The fields that were actually available at D7.
  2. The D180 outcome, revealed only after the early record is frozen.

Do not rebuild the D7 row from today’s corrected database unless the historical decision also had those corrections. A D7 ad-revenue feature reconstructed from a D14-restated report contains future information. A campaign label repaired three weeks later does too. The mature outcome can use the later finalized basis, but the D7 snapshot must retain the report version that was available when the decision would have been made.

The same boundary applies when a model predicts mature ROAS from retention, payer, or event features. A shuffled row split can leak later traffic and product conditions into training. The scikit-learn forecasting example shows why time-aware evaluation produces a more realistic estimate than a shuffled split on time-ordered data. The exact splitter can vary. The invariant is that no feature, transformation, correction, or model selection may see past the simulated D7 decision.

Keep failed and missing rows. A target can look safer when difficult cohorts quietly disappear from its denominator. The cohort forecast backtest audit provides the full leakage, coverage, bias, and decision-accuracy protocol.

Derive the threshold from decision errors

The table below is synthetic. It is not a Lemon customer, model run, result, or benchmark. Every cohort uses the fixed scope above, and every outcome has matured to D180. Cohorts A through H form a calibration period for selecting the rule. They are not the final test of that rule.

Cohort Spend Net revenue through D7 D7 ROAS Net revenue through D180 D180 ROAS Mature result
A $100,000 $26,000 26% $92,000 92% Miss
B $80,000 $23,200 29% $80,800 101% Miss
C $120,000 $37,200 31% $139,200 116% Miss
D $90,000 $29,700 33% $110,700 123% Pass
E $110,000 $38,500 35% $129,800 118% Miss
F $95,000 $35,150 37% $122,550 129% Pass
G $130,000 $50,700 39% $178,100 137% Pass
H $105,000 $44,100 42% $151,200 144% Pass

Now test candidate D7 thresholds. A scale call means the cohort’s D7 ROAS met or exceeded the candidate. A false scale means that cohort later missed 120% D180 ROAS.

Candidate D7 threshold Scale calls Correct scale calls False scale calls False-scale rate Mature winners missed
30% 6 4 2 33.3% 0
34% 4 3 1 25.0% 1
36% 3 3 0 0% 1
40% 1 1 0 0% 3

Under the predeclared zero-false-scale rule, 36% is the smallest candidate that passes. Raising it to 40% does not improve downside protection in this calibration period. It only rejects two additional winners. Lowering it to 34% buys one extra scale call and admits one cohort that misses the mature goal.

This does not prove that 36% is a good target, even for the fictional app. Eight cohorts are too few for confidence, and the threshold was selected on these same rows. The example demonstrates the calibration logic: choose the threshold against the mature decision, show the tradeoff, and report the denominator.

The next step is not deployment. Freeze 36% and the 30% to 36% hold band, then score them on later cohorts that played no part in choosing either boundary. Report the same false-scale, missed-winner, hold, and coverage counts. If the later period fails the predeclared tolerance, reject or re-segment the rule. Do not tune it on the test rows and keep calling them a test.

A fixed D7-to-D180 multiplier hides this information. Cohorts D and E are the counterexample. E has the higher D7 ROAS at 35%, yet finishes below the mature goal. D starts at 33% and passes. Their later payer, retention, or ad-engagement paths differ. One ratio cannot explain which path each cohort will follow.

Put a hold band around the line

A hard threshold forces weak evidence into a binary decision. The synthetic history supports three zones instead:

D7 evidence Action Reason
Below 30% Cut or contain Every scored cohort below 30% missed the D180 goal
30% to below 36% Hold Mature winners and losers overlap in this range
36% or above Scale within guardrails Every scored cohort at or above 36% passed

Again, these are synthetic boundaries, not recommended percentages. The useful part is the hold zone. It makes uncertainty operational.

If a leakage-safe forecast is available, use its mature-outcome range instead of D7 ROAS alone:

  • Scale when the lower end of predicted D180 ROAS clears 120%.
  • Cut when the upper end remains below 120%.
  • Hold when the range crosses 120%, required inputs are missing, or the current segment has weak backtest coverage.

That rule can let a 33% D7 cohort scale when its payer and retention evidence is strong, while holding a 35% cohort whose early revenue came from one unstable payer. The D7 target remains useful for network configuration and rapid monitoring. The predicted mature range is the stronger internal budget signal.

Keep the network target and business rule separate

Entering 36% into a network UI does not import the backtest’s mature goal into the bidder. The network sees the events, values, attribution, and optimization window configured for that campaign. Your internal model may see a different revenue basis and forecast horizon.

Before transferring an internal D7 target into a network, check:

  1. Is the network optimizing the same D7 cumulative revenue used in the calibration?
  2. Does it receive both IAP and ad revenue when the internal target includes both?
  3. Are refunds, store fees, and revenue restatements handled the same way?
  4. Does the network use the same app, platform, geo, and acquisition scope?
  5. Has the campaign collected enough mature data to leave its learning state?

Unity documents different learning requirements for IAP, ad-revenue, and hybrid ROAS campaigns. Google recommends using historically achieved ROAS from a genuinely comparable campaign as the initial App campaign target. Follow the provider’s delivery guidance for the network input. Keep the mature business rule in your own decision record.

A higher tROAS is not simply “safer.” It can reduce delivery and change the users the network acquires, which means the historical relationship you calibrated may move. Target changes are interventions in the acquisition system, not labels attached to a fixed cohort stream.

Recalibrate when the revenue curve changes

A D7 target expires when its historical cohorts stop representing the current decision. Re-run the time-ordered evaluation after a material change in:

  • price, subscription term, store fee, or refund policy;
  • IAP, ad-revenue, or subscription mix;
  • country, platform, network, campaign type, or bidding event;
  • onboarding, retention, live operations, or payer concentration;
  • attribution window or MMP mapping;
  • ad-revenue source, restatement schedule, or finality basis;
  • product version, seasonality, or traffic quality.

Monitor the target as a decision system. Report scale precision, false scales, missed mature winners, holds, coverage, spend-weighted outcomes, and signed forecast bias. A threshold that “worked on average” can still misallocate most of the budget if its errors concentrate in the largest campaigns.

The operating checklist

Before entering or changing a D7 ROAS target:

  1. State the mature ROAS and payback horizon the business needs.
  2. Fix gross or net revenue, included streams, spend, and attribution.
  3. Choose an observation age that the revenue sources can support.
  4. Segment to cohorts that are operationally comparable.
  5. Freeze the historical D7 information boundary.
  6. Predeclare the acceptable false-scale and missed-winner tradeoff.
  7. Select candidate thresholds on a time-ordered calibration period.
  8. Freeze the rule and test it on a later untouched period.
  9. Add a hold band where outcomes overlap or forecast uncertainty crosses the goal.
  10. Configure the network target only after matching its events and window to the calibrated definition.
  11. Recalibrate after drift and keep predicted revenue separate from observed revenue.

Lemon AI Cohort Prediction combines early user behavior with observed revenue to forecast cohort revenue, ROAS, ARPU, and payback through named horizons. The workspace preserves actual and predicted values separately and supports breakdowns by media source, campaign, creative, country, and platform. The broader cohort revenue forecasting guide explains the full discipline, and the methodology records the evaluation and limitation rules.

Primary sources

Lemon AI

Book a demo

Loading available times…