For agencies that grow D2C brands

How do you work out why a brand's numbers moved, and prove it?

To work out why numbers moved, start from the exact change against the brand's own baseline, then list everything else that changed on the same dates: budgets, bids, creatives, search terms, the site, tracking, rivals and the season. Keep the causes the records support, rule out the ones they contradict, and grade what's left by confidence.

2.13× Meta ROAS against a 4× e-commerce benchmark · raised every day until it moves · Moolwanai-dm · Paid ads · ₹28,064 spend · 30 days to 26 Sep 2026 · real data

What you'll see in 10 minutes

  1. Your first brand's report, built from its domain alone.
  2. Its ad accounts and GA4 connected, one secure sign-in each.
  3. The brand's numbers read against its own baseline, with any change flagged and its likely causes listed.

(login required) · No plan to pick. Billed in USD and INR. Nothing changes without your approval.

Why is the first explanation for a drop usually wrong?

Monday, 10:00. The brand asks why ROAS fell last week. Someone answers "the Meta algorithm" or "it's the season". A week later the number recovers on its own, or falls further, and the explanation no longer fits. The brand remembers the guess, not the recovery.

A guess costs more than the drop. Every explanation that doesn't hold makes the next one harder to believe, and a fix aimed at the wrong cause spends budget on nothing. Each usual suspect has a check that confirms or rules it out. Run the check before you name the cause.

Common explanations for a drop and the check that confirms or rules out each
The usual explanationThe check that settles it
"It's the season"The same weeks last year, and search demand for the category on the same dates
"The algorithm changed"The change history: edits to budgets, bids, audiences or ads in the days before the drop
"The ads are tired"Frequency and click-through rate by ad, week on week
"Tracking broke"Purchase events in the ad platform against GA4 over the same days
"A competitor is spending more"New rival ads in the Meta Ad Library, and auction insights in Google Ads
"Something's wrong with the site"Landing page speed, errors and checkout steps since the last good week

How do you find what actually caused the change?

Narrow it down before you explain it. Most drops sit in one campaign, one page or one week, not across the whole brand. Work through these steps in order and the shortlist of causes usually shrinks to one or two.

  1. Confirm the change is real

    Compare against the brand's own baseline, not last week alone, and allow for conversions that arrive days after the click. The most recent days always look weaker until they're counted.

  2. Find where it sits

    Split the change by campaign, ad set, page, device and region. A drop that lives in one place has one cause; a drop spread evenly usually comes from outside.

  3. List what changed on the same dates

    Budgets, bids, audiences, creatives, search terms, prices, stock, the site and tracking. The ad platforms' change history shows every edit with its date.

  4. Check what happened outside

    The same weeks last year, demand for the category, and what rivals launched. Some drops are the market, not the account.

  5. Keep what the records support

    Rule out the causes the data contradicts, grade the rest high, medium or low, and write down the record behind each one before you tell the brand.

Most investigations start with a daily change alert that measured the shift against the brand's own normal range. When a rival is the suspect, competitor ad tracking shows what they launched and when.

How do you explain a drop to the brand before you have every answer?

Say what you know, what you've ruled out and what you're still checking. Brands forgive "we're checking" far more than they forgive a confident answer that turns out wrong. Use the worksheet below to sort the candidates and get a note you can send today.

Sort the causes and write the brand's update

Enter the metric and its two values, then mark each candidate cause: the evidence supports it, rules it out, or you haven't checked yet. The note updates as you go.

    −38%change in the metric
    2likely causes
    2still to check

    update for the brandROAS moved from 3.4 to 2.1 (−38%). The likely causes are creative fatigue and a rival's new ads on the same offer. We've ruled out tracking and budget or bid changes. We're still checking the season and the landing page, and will update you once they're done.

    Free, no login. The starting values are an illustrative example.

    Find why a brand's numbers moved

    (login required) · Walk into Monday's review with the causes already ranked.

    How does ai-dm find why a brand's numbers moved?

    It runs the same checks, every day, for every brand. When a metric moves outside the brand's normal range, ai-dm lists what else changed on the same dates across the connected accounts, the site and the rivals. It grades each candidate high, medium or low by how strongly the records support it, marks the ones the records contradict as ruled out, and links every cause to the record behind it.

    Terra Brew Coffee · Google Adscost per conversion ₹318 → ₹455 · +43%
    Broad-match search terms with spend and no conversionschecking…likely · highsearch terms report · "coffee machine" · ₹6,420 · 0 conversions
    Landing page slower after a theme updatechecking…likely · mediumsite crawl · LCP 2.3 s → 4.1 s on the main landing page
    Budget changechecking…ruled outchange history · daily budget unchanged for 30 days
    Bid strategy changechecking…ruled outchange history · no bid strategy edits in 30 days
    Trackingchecking…ruled outga4 purchases follow the same trend as before
    Seasonalitychecking…not supportedsame weeks last year · cost per conversion flat

    2 likely · 3 ruled out · 1 not supported · every cause linked to its record

    Illustrative example

    In this illustrative example, Terra Brew Coffee's Google Ads cost per conversion rose from ₹318 to ₹455. Of six candidate causes, wasted broad-match search terms are likely with high confidence and a slower landing page with medium confidence. Budget, bid strategy and tracking changes are ruled out, and the records don't support seasonality.

    When the cause is on the site, the crawl shows it. A slower template or a page Google can no longer reach shows up in an SEO audit of the brand's site, next to the date it changed. ai-dm then recommends a next move, and nothing changes in a brand's account until your team approves it. Before you share a figure with the brand, reconcile GA4, Meta and Google Ads so everyone reads the same number.

    On our own brand. Moolwan's Meta ROAS is 2.13× against a 4× e-commerce benchmark, on ₹28,064 of spend in 30 days (ai-dm · Paid ads · 30 days to 26 Sep 2026). ai-dm raises it every day until it moves, and we show it because a tool that only explains wins is no help. You can watch ai-dm run Moolwan, with the source and date of every number.

    We don't build attribution models. ai-dm never claims one channel caused a sale. It shows what changed, the likely causes graded by confidence and the records behind them, and leaves the call to your team.

    (login required) · Rather talk first? WhatsApp the founder

    Questions agencies ask about finding why numbers moved

    How do you find out why a brand's marketing numbers changed?

    Start from the exact change against the brand's own baseline, find where it sits by campaign, page or region, then list everything else that changed on the same dates: budgets, bids, creatives, search terms, the site, tracking, rivals and the season. Keep the causes the records support, rule out the rest and grade what's left by confidence.

    Why did a brand's ROAS drop suddenly?

    The usual causes are tired creative, an edit to budgets, bids or audiences, a rival's new offer, a slower or broken landing page, a tracking change or the season. Each has a check: frequency and click-through rate, the change history, the Meta Ad Library, a site crawl, GA4 against the platform, and the same weeks last year. Run the checks before naming the cause.

    How long should we wait before calling a drop real?

    Long enough for late conversions to arrive. Ad platforms keep adding conversions for days after a click, so the most recent days always look weaker at first. Compare complete days with the brand's normal range rather than reacting to yesterday alone. ai-dm measures each metric against the brand's own baseline for this reason.

    Can ai-dm prove which channel caused the drop?

    No, and no tool can without an attribution model, which ai-dm doesn't build. It shows what changed, the likely causes graded by how strongly the records support them, and the causes the records rule out, each linked to its source. Your team makes the call with the evidence in front of it.

    What does a confidence grade mean?

    High means the records point clearly to the cause, such as spend on a search term with no conversions in the same week. Medium means the timing fits and the evidence is partial. Low means it's possible but unconfirmed. Causes the records contradict are marked ruled out, so the brand hears what was checked as well as what was found.

    What should we tell the brand before we know the cause?

    What moved and by how much, the causes you've ruled out, what you're still checking and when you'll update them. That answer holds up next week; a confident guess often doesn't. The worksheet on this page writes that update from your own checks.

    Find why a brand's numbers moved

    No plan to pick. Billed in USD and INR. A brand's data is deletable on request.

    Win the why.™

    Every number that moves has a reason. Dashboards show what happened; they rarely show why. Without the why, teams guess, act late and lose trust. ai-dm exists to win the why for every brand, every day: to find the reason behind every change, prove it with evidence, recommend the next move and check that it worked. Then it starts again, because the why keeps changing. When you win the why, you stop guessing and start growing. That is why we exist.

    Gather. Analyse. Detect. Alert. Recommend. You act. Monitor. Learn and repeat. Always on.

    Have the answer before your brand asks.

    Talk to the founder