Tattva Docs
Use casesPerformance marketing

NRoAS drop RCA

The weekly perf-marketing question. "Why is my acquisition NRoAS not holding up?" — answered with the right tables, the right segmentation, and a citation trail.

The question, verbatim: "Every week we get one question. Why is my acquisition NRoAS not holding up?"

This is the single most-repeated category question in the weekly marketing RCA. Without the platform, the analytics team rambles through four or five derived tables to answer it — and "sometimes not actionable." With the platform, the answer is one question, fully cited.

Who asks

  • Perf-marketing leader (the CMO / function head) — typically in the weekly RCA call
  • Analytics team — when shantanu pings on Slack

Frequency

Weekly, sometimes daily during sale weeks.

What NRoAS means here

NRoAS = New-customer Revenue ÷ Spend. Specifically:

  • New revenue — orders tagged to new customers, ad-attributed
  • Spend — overall spend (we treat ~95% of spend as new-acquisition since Meta blended is heavily acquisition-led)

The team segregates new-vs-repeat revenue per ad from the tag, then divides by spend to get NRoAS per ad.

Data you need

All available in BigQuery already (per the team's setup):

  • ads — ad ID, ad set, campaign, channel, creative, status
  • spend — daily spend per ad
  • orders — orders with customer ID and new-vs-repeat tag
  • customers — customer first-purchase date (drives the new-vs-repeat flag)
  • campaigns — campaign and ad-set metadata

Known gap: Meta ad-set-level targeting (interests, age groups, geos) is not in the BigQuery export today. For the overlap branch of the RCA you'll need to add this — see the Audience overlap diagnosis use case.

How to ask it

In Reasoning, type any of these:

  • "Why is acquisition NRoAS down vs last week, decomposed by product and channel?"
  • "NRoAS dropped 18% WoW — break it down by ad, ad set, and creator. Which 3 changes explain most of the drop?"
  • "Compare this week's top 20 ads to last week's. Which ones flipped from new-customer to repeat?"

What you'll get back

The platform runs a multi-factor decomposition:

  1. Mix shift — was the drop driven by a few large ads getting worse, or many small ads slipping?
  2. Repeat creep — did the share of repeat-attributed revenue on previously-acquisition ads go up? (If yes → targeting drift; see overlap diagnosis.)
  3. CR drop — did landing-page or checkout CR drop in the same window?
  4. Creator decay — are specific creators decaying past their average decay period?

The answer ranks the candidate causes by contribution and shows the rows that support each one. The whole thing is cited — every claim has a row.

The logic tree this maps to

NRoAS down WoW?
├── Is overall spend up? (denominator effect)
│   └── If yes → break out per-ad NRoAS, not blended
├── Has new-customer share fallen on previously-acquisition ads?
│   ├── Yes → audience overlap probable (see Audience overlap diagnosis)
│   └── No → continue
├── Is CR dropping?
│   ├── Yes → check Meta event-firing, payment-gateway, landing-page health
│   └── No → continue
├── Is hook-rate / hold-rate dropping per creator?
│   ├── Yes → creator decay; check vs avg decay period
│   └── No → continue
└── Net new ad set went live this week?
    └── Yes → audience leakage from existing ad sets to new one

The platform follows this tree automatically. You can override at any node ("skip the overlap branch — I know it's fine").

How to make it recurring

Save the answer as a tracker with:

  • Cadence: daily during sale weeks, weekly otherwise
  • Threshold: alert if NRoAS drops > 10% WoW or > 15% rolling-7-day
  • Linked goal: Marketing efficiency goal (see Marketing efficiency)
  • Notification: Slack to perf channel + email to perf leader

Pitfalls

  • Looking only at blended NRoAS. A 5% blended drop can hide a 30% drop on one ad and a 25% rise on another. Always decompose.
  • Confusing spend-level metric units. Spend is at the ad set level on Meta; data is at the ad level. The platform handles this — don't be alarmed when comparison views look slightly different from your Looker dashboard.
  • Ignoring decay-period context. A creator's 5th week is supposed to be lower than its 1st week. Compare against the average decay curve, not a flat baseline.