> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# ROAS Dropped Below Threshold, Meta Ads (Facebook)

> ROAS Dropped Below Threshold for Meta Ads (Facebook) stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Card class:** [Hero](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ad Platform](/nerve-centre/connectors#connectors-by-type)

## At a glance

> The real-time alert that fires when a campaign's return on ad spend falls sharply against its own recent baseline. It compares current ROAS to the prior 7-day same-day-of-week window and pings when the drop is large enough on a campaign carrying real spend. This is the first number to check when the ad team's morning is about to go badly. A genuine ROAS drop means you are burning the same budget for less return, so it warrants a same-session look before the day's spend compounds. **Caveat**: a ROAS drop can be a measurement break (Pixel or CAPI failing) rather than a demand drop, so always confirm against Clicks vs Conversions before cutting spend.

|                          |                                                                                                                                                                                                                                             |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it watches**      | Campaign-level ROAS, derived from Meta-attributed purchase value divided by spend, pulled from the Meta Marketing API Insights endpoint. The alert evaluates each campaign carrying meaningful spend, not just the account total.           |
| **The comparison basis** | Current ROAS vs the prior 7-day same-day-of-week window. Same-DOW comparison removes weekday-vs-weekend seasonality so a normal Monday-to-Sunday swing does not trip the alert.                                                             |
| **Alert trigger**        | ROAS drop greater than roughly 25% versus the prior 7-day same-DOW window, on any campaign with spend above a configured floor. The percentage and the spend floor are both tunable per profile in the Sensitivity tab.                     |
| **Why a spend floor**    | A campaign spending a few units a day can swing wildly on one or two orders. The spend floor suppresses noise from tiny campaigns so the alert only speaks when real money is at stake.                                                     |
| **Attribution model**    | Inherits the ad account's configured window, typically 7-day click + 1-day view post-iOS 14.5. A drop is measured on a like-for-like attribution basis across both windows.                                                                 |
| **iOS 14.5+ ATT impact** | A sudden ROAS drop can reflect a tracking regression (Pixel or CAPI events stopping) rather than a demand drop. Pair with CAPI/Pixel Tracking Broken to separate the two causes.                                                            |
| **Modeled conversions**  | Meta blends modeled conversions into reported value. A modeling recalibration can move ROAS without any real change in demand. The rolling comparison smooths most of this, but a single-day spike is less trustworthy than the 7-day read. |
| **Chart type**           | Alert list. Each row names the campaign, its current ROAS, the prior-window ROAS, and the percentage drop.                                                                                                                                  |
| **Currency**             | Account currency. Single currency per ad account.                                                                                                                                                                                           |
| **Time window**          | `RT` (real-time, recomputed on the standard refresh, roughly every 30 to 60 minutes).                                                                                                                                                       |
| **Roles**                | owner, marketing, finance                                                                                                                                                                                                                   |

## Calculation

Calculated automatically from your Meta Ads (Facebook) data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

A UK homeware brand running Meta on a 7d/1d attribution window. The alert fires at 09:10 on 14 Mar 26. Account currency GBP. CAPI is live. All figures below are illustrative, not a real advertiser's data.

| Campaign                        | Spend last 24h (£) | ROAS now | ROAS prior 7d same-DOW | Drop | Flagged                |
| ------------------------------- | ------------------ | -------- | ---------------------- | ---- | ---------------------- |
| Advantage+ Shopping (cold)      | 1,820              | 2.10×    | 3.40×                  | -38% | Yes                    |
| Advantage+ Shopping (returning) | 640                | 5.90×    | 6.20×                  | -5%  | No                     |
| Manual broad audience           | 410                | 1.95×    | 2.05×                  | -5%  | No                     |
| Lookalike 1% (purchasers)       | 35                 | 0.80×    | 2.90×                  | -72% | No (below spend floor) |

1. **Only the cold Advantage+ campaign trips the alert.** It carries the most spend and its ROAS fell 38% against the same weekday last week. That is a real money signal, not noise.
2. **The Lookalike campaign fell harder (-72%) but does not fire.** It is below the configured spend floor, so a one-order swing is expected. Raising or lowering that floor is a Sensitivity-tab decision based on how much daily spend counts as material for this account.
3. **The first diagnostic is measurement, not demand.** Before cutting the cold campaign's budget, check Clicks vs Conversions and CAPI/Pixel Tracking Broken. If clicks held steady while conversions dropped, the cause is likely a tracking break, and cutting spend would be the wrong move.
4. **If tracking is healthy, treat it as fatigue or competition.** A 38% drop on a cold Advantage+ campaign alongside rising frequency points to creative fatigue. Plan a refresh and check CTR Trend for the leading-indicator decline.
5. **Same-DOW comparison matters here.** Comparing Saturday to the prior Friday would show a false drop on a B2C account where weekends convert differently. The same-DOW basis removes that artefact.

Quick reads:

* ROAS drop + clicks steady + conversions down = suspect tracking first. Check CAPI/Pixel Tracking Broken.
* ROAS drop + CTR already declining for 1 to 2 weeks = creative fatigue. Refresh.
* ROAS drop + spend up sharply = scaling beyond the efficient frontier. Cap budget.
* ROAS drop + frequency above 5 in 7 days = audience exhaustion. Widen or refresh.

## Sibling cards merchants should reference together

| Card                                                                                         | Why pair it with ROAS Dropped Below Threshold              | What the combination tells you                                                      |
| -------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [ROAS](/nerve-centre/kpi-cards/facebook-ads/roas)                                            | The headline level this alert watches.                     | Whether the drop is off a healthy base or a weak one.                               |
| [ROAS Trend](/nerve-centre/kpi-cards/facebook-ads/roas-trend)                                | The daily series behind the alert.                         | The shape of the decline: gradual fatigue vs a sudden cliff (tracking break).       |
| [Clicks vs Conversions](/nerve-centre/kpi-cards/facebook-ads/clicks-vs-conversions)          | The broken-tracking canary.                                | If clicks held while conversions fell, the ROAS drop is measurement, not demand.    |
| [CAPI/Pixel Tracking Broken](/nerve-centre/kpi-cards/facebook-ads/capipixel-tracking-broken) | Confirms whether a tracking regression caused the drop.    | Stops you cutting spend on a measurement bug.                                       |
| [CTR Trend](/nerve-centre/kpi-cards/facebook-ads/ctr-trend)                                  | CTR decline usually precedes ROAS decline by 1 to 2 weeks. | Early-warning shape for creative fatigue.                                           |
| [ROAS by Campaign](/nerve-centre/kpi-cards/facebook-ads/roas-by-campaign)                    | Where the drop concentrates.                               | Isolates the offending campaign for action.                                         |
| [GA4 Revenue by Channel](/nerve-centre/kpi-cards/google-analytics/revenue-by-channel)        | Independent attribution check.                             | If GA4 Paid Social held steady while Meta ROAS dropped, suspect Meta-side tracking. |
| [Google Ads ROAS Drop Alert](/nerve-centre/kpi-cards/google-ads/roas-drop-alert)             | The same alert on the paid-search channel.                 | Tells you whether the drop is Meta-specific or a store-wide demand shift.           |

## Reconciling against Meta Ads Manager

**Where to look in Meta Ads Manager:**

[Meta Ads Manager → Campaigns → Columns → "Purchase ROAS (return on ad spend)"](https://business.facebook.com/adsmanager), with the date range set to today and a comparison range set to the prior 7 days. Meta does not surface a same-day-of-week alert natively, so you reconstruct the comparison manually. Match the attribution setting to this card's configured window and the per-campaign ROAS values should line up to within rounding.

Other Ads Manager views that look related but are not:

* **Automated Rules**: Meta's own rule engine can pause campaigns on a ROAS threshold, but it acts rather than alerts, and it does not use a same-DOW baseline. This card is a detection layer, not an auto-action.
* **Account-level ROAS**: the headline number blends all campaigns and can stay flat while one campaign collapses. This card watches each campaign individually.

**Why the Vortex IQ value may legitimately differ:**

| Reason                               | Direction          | Why                                                                                                                                                                                                      |
| ------------------------------------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Time zone**                        | Boundary days off  | Meta uses the ad-account time zone (immutable); this card uses UTC. On a same-day comparison the boundary can shift the percentage on US Pacific accounts.                                               |
| **Same-DOW vs calendar**             | Different baseline | Meta's built-in comparison is prior-period (yesterday or prior 7 days as a block); this card compares the same weekday to strip seasonality. The two baselines can disagree on whether a drop is "real". |
| **Ingest lag**                       | Today reads low    | A 1 to 4 hour ingest lag means today's ROAS is incomplete; the alert weights the rolling read to avoid false fires on lag alone.                                                                         |
| **Modeled-conversion recalibration** | Variable           | A Meta modeling update can move ROAS without a demand change. The rolling window absorbs most of this.                                                                                                   |

**Cross-connector reconciliation:**

| Card                                                                                                    | Expected relationship                                                    | What causes legitimate divergence                                                                                        |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| [`google_analytics.ga_revenue_by_channel`](/nerve-centre/kpi-cards/google-analytics/revenue-by-channel) | If Meta ROAS drops but GA4 Paid Social holds, suspect Meta-side tracking | GA4 uses last-non-direct click; Meta uses its own window. A divergence points at attribution, not demand.                |
| [`shopify.total_revenue`](/nerve-centre/kpi-cards/shopify/total-revenue)                                | A store-wide revenue drop affects all channels                           | If Shopify revenue is flat while Meta ROAS dropped, the issue is Meta-specific (tracking or fatigue), not market demand. |
| [`google_ads.roas_drop_alert`](/nerve-centre/kpi-cards/google-ads/roas-drop-alert)                      | Both firing at once suggests a store-wide cause                          | Both quiet except Meta points at a Meta-only problem.                                                                    |

***

<details>
  <summary><em>Documentation cross-reference (tuning the threshold for this card)</em></summary>

  The default trigger of roughly 25% with a spend floor suits most steady-state DTC accounts. Lower the percentage for high-spend accounts where smaller swings carry large absolute losses. Raise the spend floor when many small test campaigns generate noise. After a deliberate scaling push, expect a transient ROAS dip; annotate the change history so the alert is read in context rather than treated as a regression.
</details>

## Known limitations / merchant FAQs

**Why did this alert fire when my account-level ROAS looks fine?**
The alert watches each campaign individually. One campaign can collapse while the blended account ROAS stays acceptable because other campaigns mask it. That is the point: catch the failing campaign before it drags the account down.

**Is a ROAS drop always a real problem?**
No. The most common false signal is a tracking regression. If the Pixel or Conversions API stops firing, reported conversions fall and ROAS looks like it dropped, but demand is unchanged. Always check Clicks vs Conversions and CAPI/Pixel Tracking Broken before cutting spend. Cutting budget on a measurement bug is the classic mistake.

**Why use a same-day-of-week comparison instead of yesterday?**
Most stores convert differently on weekdays versus weekends. Comparing Saturday to Friday would show a false drop on accounts where weekends are softer (or stronger). Comparing this Saturday to last Saturday removes that seasonality.

**Can I change the threshold and the spend floor?**
Yes, both are configurable per profile in the Sensitivity tab. Set the spend floor to the daily spend level you consider material, and set the drop percentage to match how tightly you want to be alerted.

**Should I trust a single day's reading?**
Less than the rolling read. Today's ROAS is built from incomplete data because Pixel and CAPI events are still ingesting and modeled conversions take time to converge. The alert weights the rolling comparison to reduce false fires, but if it triggers, confirm against the trend before acting.

**The alert fired during a deliberate scale-up. Is that expected?**
Yes. Pushing spend hard typically dips ROAS as you reach less-efficient inventory. That is a known trade-off rather than a fault. Annotate the change so the team reads the alert as expected scaling pressure, and cap budget if the dip is steeper than planned.

***

### Tracked live in Vortex IQ Nerve Centre

*ROAS Dropped Below Threshold* is one of hundreds of KPI pulses Vortex IQ tracks across Meta Ads (Facebook) and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
