A practical, no-fluff guide for performance teams and agencies.
ROAS is the most quoted and least standardized metric in paid media: cohort or activity basis, platform or MMP revenue, fresh or matured — every pair gives a different number from the same week. Automating ROAS reporting is therefore mostly definition engineering; the pulls are the easy part. This guide locks the definitions, then the pipeline.
Revenue keeps arriving for weeks after acquisition, so cohort ROAS is a grid, not a column: acquisition week down, age across.
| Cohort (install wk) | Spend | D1 | D7 | D14 | D30 |
|---|---|---|---|---|---|
| May 18–24 | $21,300 | 0.21 | 0.58 | 0.84 | 1.12 |
| May 25–31 | $22,900 | 0.19 | 0.55 | 0.79 | maturing |
| Jun 1–7 | $22,400 | 0.22 | 0.61 | maturing | — |
| Jun 8–14 | $24,150 | 0.20 | maturing | — | — |
The automation burden is the refresh: every run re-pulls maturing cohorts, because last month's rows are still changing. This is the most tedious manual reporting there is, and the strongest automation case.
Blended-maturity averages ("our ROAS is 0.9" across cohorts aged 3 to 90 days — a meaningless number), platform revenue summed with MMP revenue, refunds applied to some months, and the panic cycle when a 5-day-old cohort is compared to a target meant for D30.
Pre-monetization products, or while the team still argues cohort vs activity weekly. Decide, write it down, then schedule.
Opera maintains the cohort grid as a living object — maturing cohorts re-pulled, labels stamped, new rows appended, age-appropriate flags in the summary — through the same reporting pipeline as everything else. (Definition deep-dive: the ROAS guide.)
"Update the ROAS report: refresh maturing cohorts and flag anything pacing under the D7 target."
See this running on your own reports.A 45-minute workflow audit maps your current process and shows exactly what Opera automates — step by step.
Estimate the hours and fully-loaded labor cost your team spends on recurring reports — and what Opera gives back.