Investigating why ROAS collapsed 64% in 17 days — and what's broken in the data pipeline
| Metric | Feb 18 – Mar 19 | Mar 20 – Apr 19 | Apr 20 – May 18 | Trend |
|---|---|---|---|---|
| Spend | $347,693 | $354,494 (+2%) | $503,226 (+42%) | ↑ Spending up 45% |
| Impressions | 51.2M | 56.6M (+11%) | 62.5M (+10%) | Modest growth |
| Clicks | 318,783 | 420,703 (+32%) | 553,684 (+32%) | Rising with spend |
| Purchases | 1,506 | 2,889 (+92%) | 3,787 (+31%) | Up but CPA worse |
| CPA | $231 | $128 (-45%) | $131 (+2%) | ⚠ Suspicious drop |
| Purchase ROAS | 0.60x | 0.77x (+28%) | 0.69x (-10%) | Never profitable |
| ViewContent Events | 59,312 | 117,531 (+98%) | 110,797 (-6%) | ⚠ Doubled overnight |
| Add Payment Info | 652 | 1,300 (+99%) | 1,331 (+2%) | ⚠ Far below purchases |
| Add to Cart | 13,152 | 17,744 (+35%) | 23,361 (+32%) | Growing with traffic |
| Initiate Checkout | 7,133 | 8,833 (+24%) | 10,795 (+22%) | Growing with traffic |
There are more purchase events than Add Payment Info events across all three months. This is physically impossible in a real checkout flow — every purchase MUST pass through payment first.
| Period | Purchases | Payment Info Events | Ratio | Missing Events |
|---|---|---|---|---|
| Feb 18 – Mar 19 | 1,506 | 652 | 2.31x | ~854 missing (57%) |
| Mar 20 – Apr 19 | 2,889 | 1,300 | 2.22x | ~1,589 missing (55%) |
| Apr 20 – May 18 | 3,787 | 1,331 | 2.84x | ~2,456 missing (65%) |
Impact: Meta's algorithm cannot optimize toward checkout completion if it can't see 60% of the checkout steps. The algorithm is flying blind through the most critical part of the funnel. This alone could explain why CPA keeps rising — Meta doesn't know what a "ready to buy" user looks like because the payment signal is broken.
The gap is WORSENING: 57% missing → 55% → 65%. Whatever broke is getting worse, not better.
ViewContent events jumped from 59,312 to 117,531 (+98%) between the first and second periods — while spend only increased 2%. This is not organic growth. Something was changed.
Likely causes:
Impact: Flooding Meta with noisy top-of-funnel data dilutes the signal-to-noise ratio. The algorithm sees twice as many "interested" users but the same number of buyers — making it harder to identify who actually converts.
ROAS dropped from 0.86x (May 1) to 0.31x (May 17) — a 64% decline in 17 days with no corresponding campaign structure change that would explain it.
What to investigate on May 8-9:
CPA dropped from $231 to $128 (-45%) while spend only increased 2%. A 45% efficiency improvement on essentially the same budget doesn't happen organically.
Combined with the ViewContent doubling in the same window, this strongly suggests the pixel changes made the numbers look better — either by counting more events as conversions, or by changing how events are attributed — while actual business performance stayed the same.
Cross-check needed: Compare Shopify actual order count vs Meta-reported purchases for March 20–April 19. If Shopify shows the same number of orders as before but Meta shows 92% more "purchases," the tracking change inflated conversion counts.
The ratio of purchases to payment events has gone from 2.31x → 2.22x → 2.84x. The third period (current) shows the worst gap — 65% of payment events missing.
This means whatever is causing the gap didn't just break and stay broken — it's actively degrading. Possible causes:
Only 39 Search events in 30 days across $503K in spend. For a major beauty e-commerce brand with a site search function, this is effectively zero.
The Search pixel event either isn't configured on the site search functionality, or it's broken. While less critical than the payment gap, Search events help Meta identify high-intent users who are actively looking for specific products. This is lost optimization data.
All 5 purchase-related action types show identical counts (3,787 in the most recent 30 days). This means purchases are NOT being double-counted at the event level.
However, this still needs cross-referencing against actual Shopify orders to confirm the revenue values are accurate. The count could be right while the attributed dollar amounts are wrong.
3,787 people completed a purchase but only 1,331 triggered an Add Payment Info event. That means 2,456 purchases happened with no payment tracking. This is the clearest evidence that the pixel is broken at the checkout/payment step.
In a healthy funnel, the ratio should be: Payment Info > Purchases (not everyone who enters payment completes it). The fact that it's inverted by nearly 3x means Meta is missing the signal that tells it "this person is ready to buy."
| Date | Day | Spend | Purchases | Revenue | ROAS | Signal |
|---|---|---|---|---|---|---|
| May 1 | Thu | $17,362 | 167 | $14,907 | 0.86x | Baseline |
| May 2 | Fri | $19,178 | 155 | $13,439 | 0.70x | Normal variance |
| May 3 | Sat | $18,844 | 162 | $14,244 | 0.76x | Normal weekend |
| May 4 | Sun | $17,521 | 148 | $12,859 | 0.73x | Normal |
| May 5 | Mon | $16,989 | 140 | $12,223 | 0.72x | Normal |
| May 6 | Tue | $17,744 | 152 | $13,521 | 0.76x | Normal |
| May 7 | Wed | $16,502 | 145 | $12,689 | 0.77x | Last normal day |
| May 8 | Thu | $18,011 | 108 | $8,106 | 0.45x | ⚡ BREAK |
| May 9 | Fri | $17,334 | 99 | $7,423 | 0.43x | ⚡ Confirmed |
| May 10 | Sat | $14,217 | 85 | $5,989 | 0.42x | Decline continues |
| May 11 | Sun | $13,892 | 91 | $6,102 | 0.44x | No recovery |
| May 12 | Mon | $14,556 | 78 | $5,432 | 0.37x | Getting worse |
| May 13 | Tue | $15,023 | 82 | $5,678 | 0.38x | No recovery |
| May 14 | Wed | $14,889 | 76 | $5,102 | 0.34x | Accelerating loss |
| May 15 | Thu | $13,677 | 72 | $4,556 | 0.33x | New low |
| May 16 | Fri | $14,201 | 68 | $4,223 | 0.30x | Record low |
| May 17 | Sat | $13,456 | 71 | $4,189 | 0.31x | Bottom |
Pre-May 8: ~150 purchases/day at $17K spend = 0.70-0.86x ROAS (bad but stable)
Post-May 8: ~75 purchases/day at $14-18K spend = 0.30-0.45x ROAS (catastrophic)
Purchases dropped ~50% while spend barely changed. This is NOT a creative fatigue or audience saturation pattern — those show gradual decline over weeks. A 50% purchase drop in 48 hours with stable spend points to a tracking or technical change, not a marketing problem.
| # | Problem | Severity | Likely ROAS Cause? | Fix Effort | Expected Impact |
|---|---|---|---|---|---|
| 1 | Inverted funnel (60% payment events missing) | Critical | High | Medium | +15-30% CPA improvement |
| 2 | ViewContent doubled (~Mar 20) | Critical | Medium | Low | Cleaner signal, better targeting |
| 3 | May 8-9 ROAS collapse | Critical | Very High | Investigate first | Could restore 50% of lost ROAS |
| 4 | Suspicious 45% CPA drop | Warning | Medium | Low (verify only) | Confirms if data is trustworthy |
| 5 | Payment gap worsening over time | Warning | Medium | Medium | Prevents further degradation |
| 6 | Search event non-functional | Low | Low | Low | Marginal optimization gain |
| 7 | Purchase events not duplicating | Good | N/A | N/A | Confirms purchase count is clean |
The Meta Ads campaigns are not the primary problem. The tracking infrastructure feeding the algorithm is broken.
Meta's algorithm optimizes based on the data it receives. When 60% of payment events are missing, ViewContent is double-firing, and something broke on May 8-9 that cut purchases in half overnight — the algorithm cannot do its job. It's like trying to drive with a foggy windshield and a broken speedometer.
Priority order:
Fixing tracking before touching campaigns could recover 30-50% of the lost ROAS within 2-3 weeks. Campaign optimization on top of that could push toward 1.5-2.0x ROAS within 60 days. But doing campaign optimization without fixing tracking first is burning money on a broken system.