ClickCatalyst
Back to Margin Erosion Audit
Authority Layer · 8 metrics · 4 data sources

Inside the Margin Erosion Engine

Every metric in your Margin Erosion audit connects reported revenue to actual profit using documented formulas. This page explains break-even ROAS calculation, the waterfall logic, kill/scale list thresholds, and how GA4 revenue validation works.

Data Sources

read-only OAuth · no campaign changes ever

All data is read via Google Ads API and GA4. Derived intelligence tables are pre-computed in our pipeline before your audit runs.

Google Ads API — Campaign Performance

google_ads_campaign_performance

Campaign spend, revenue (conversions_value), bidding strategy for campaign-level profitability

Google Ads API — Shopping Performance

google_ads_shopping_performance

Product-level cost, gross_profit, cost_of_goods_sold, units_sold for margin analysis

Google Ads API — Bidding Strategies

google_ads_bidding_strategies

Target ROAS settings for bidding vs break-even comparison

GA4 — Traffic Conversions

ga4_traffic_conversions

GA4-reported revenue per campaign for cross-platform revenue validation

01

True Profit After Ads

The number your dashboard hides

Calculated by pulling gross_profit from google_ads_shopping_performance (which uses cost_of_goods_sold from your Merchant Center feed) and subtracting total ad spend. If COGS data is unavailable (has_cogs_data = false), the audit falls back to contribution margin (revenue minus ad spend) — useful but incomplete.

⚠️

Why this matters: This is the only number that reflects reality. A 4x ROAS sounds great until you realize the products have 15% margins and ad spend consumes the rest. True Profit After Ads is what actually hits your bank account.

💡

In plain English: We take the profit your products generate (revenue minus what they cost to make), then subtract what you paid Google to advertise them. What's left is your real profit. If this number is negative, you're paying Google more than you earn from sales.

Positive profitAccount generates real profit after all costs
Negative profitAccount destroys margin — revenue < costs
02

Revenue vs Profit Waterfall

See exactly where margin disappears step by step

A four-step waterfall: Gross Revenue (starting point) → minus Ad Spend → minus COGS (from Shopping feed) → Net Profit After Ads. Each step is a separate UNION ALL query against campaign_performance and shopping_performance. The final bar can be positive (profit) or negative (loss).

⚠️

Why this matters: The waterfall makes the invisible visible. Stakeholders who only see ROAS in dashboards have never seen WHERE their margin goes. The widest drop between any two steps is the most urgent lever — it tells you whether to focus on reducing ad spend or reducing COGS.

💡

In plain English: Imagine starting with all your revenue, then watching costs get subtracted one by one: first ad spend leaves, then product costs leave. What's left is your real profit. The waterfall shows exactly which cost eats the most.

Ad Spend > COGSGoogle costs more than your supplier — bids too high
COGS > Ad SpendNormal structure — product costs exceed ad costs
03

Break-Even ROAS Calculator

The minimum ROAS you need to not lose money

Per product category with COGS data: break-even ROAS = 1 divided by the gross margin rate (gross_profit / revenue). A category with 40% margin needs 2.5x ROAS minimum. A category with 10% margin needs 10x. The ROAS buffer shows how far above or below break-even each category currently sits.

⚠️

Why this matters: Most advertisers set target ROAS based on historical averages or industry benchmarks. The break-even calculation grounds the target in YOUR actual product economics. A 3x ROAS target on a 15% margin product still loses money.

💡

In plain English: For each product category, we calculate the minimum ROAS needed to cover product costs plus ad costs. A product that costs $70 to make and sells for $100 has a 30% margin — it needs at least 3.3x ROAS to break even. Anything below that, you lose money on every sale.

PROFITABLEROAS safely above break-even — room to absorb CPC increases
MARGINALWithin 20% of break-even — no margin for error
LOSSBelow break-even — losing money on every sale
04

Margin Destroyer Products

Products that sell well but destroy your profit

From google_ads_shopping_performance: products with conversions > 0 (they sell) but net_profit_after_ads < 0 (ad spend exceeds gross profit). These are worse than zombies because they look like winners — the algorithm sees conversions and scales them, never knowing the margin is negative.

⚠️

Why this matters: The algorithm optimizes for conversion volume, not profitability. It has zero visibility into your COGS. A product that converts well but has a 5% margin will be scaled aggressively — making you poorer with every 'successful' sale.

💡

In plain English: We find products that actually sell (unlike zombies) but where the advertising cost is higher than the profit the product generates. You lose money on every sale — and the algorithm keeps pushing more budget because it only sees the sale, not the loss.

Small lossCPA slightly exceeds margin — adjust bids
Large lossStructurally unprofitable — exclude from ads
05

ROAS vs Margin Comparison

Exposing campaigns where ROAS lies about profitability

Per campaign: ROAS side by side with contribution margin (revenue − ad spend). The ILLUSION status flags campaigns where ROAS exceeds 3x but contribution margin is negative — mathematically possible when products have razor-thin margins and the ad cost percentage is high.

⚠️

Why this matters: A campaign with 4x ROAS looks like a star performer. But if that revenue comes from products with 10% gross margin, the 4x ROAS still isn't enough to cover COGS + ad spend. This comparison catches the illusion that pure ROAS reporting creates.

💡

In plain English: We put ROAS and actual profit side by side for each campaign. Sometimes a campaign has great ROAS (say 4x) but still loses money because the products it sells have very thin margins. ROAS says 'scale this' — profit says 'you lose on every sale.'

ILLUSIONHigh ROAS masks negative profit — the most dangerous state
Loss-MakingROAS < 1 — obviously unprofitable
HealthyROAS > 2, positive margin — genuinely profitable
06

Kill List & Scale List

The specific campaigns to pause vs push budget into

Kill List: campaigns where revenue < spend AND spend > 2% of total account spend (meaningful losers, not tiny experiments). Scale List: campaigns with positive profit AND ROAS above account average. Together they form a zero-cost profitability improvement — same total spend, better allocation.

⚠️

Why this matters: Every dollar on the Kill List is guaranteed loss. Every dollar redirected to the Scale List generates above-average returns. The combination is the single highest-ROI action available: no new creative, no new targeting, just moving money from losers to winners.

💡

In plain English: We split campaigns into two lists: ones that should be paused (they lose money with every sale) and ones that should get more budget (they're profitable and proven). Moving money from the first list to the second improves profit without spending an extra cent.

KillGuaranteed loss — pause within the week
ScaleProven profit — push budget here
07

GA4 Revenue Validation

Does GA4 confirm the revenue Ads reports?

Joins campaign_performance (Ads revenue) with ga4_traffic_conversions (GA4 revenue) by campaign_id. The gap between Ads-reported and GA4-reported revenue reveals phantom revenue — conversions Ads claims that GA4 can't verify. True ROAS uses GA4 revenue instead of Ads revenue.

⚠️

Why this matters: Profit calculations based on inflated Ads revenue are over-optimistic. If Ads says you made $100k but GA4 says $70k, your true profit is $30k less than you think. The margin erosion is worse than any dashboard shows.

💡

In plain English: We compare the revenue Google Ads claims each campaign generated against what your own GA4 analytics actually recorded. If Ads says $100k and GA4 says $70k, the extra $30k is phantom revenue — it affects your profit calculations more than most people realize.

Gap < 10%Revenue aligned — profit calculations reliable
Gap 10–30%Moderate phantom revenue — use GA4 for profit
Gap > 30%Significant phantom — Ads ROAS dramatically overstated
08

Margin Velocity (Weekly Trend)

Is margin improving or eroding over time?

Weekly contribution margin (revenue − ad spend) and margin percentage plotted together. When both lines decline, the problem is absolute loss of profit. When margin dollars drop but margin_pct is stable, the cause is a revenue mix shift — selling more lower-margin products at higher volume.

⚠️

Why this matters: Direction matters more than the snapshot. A profitable account with a declining margin velocity will become unprofitable eventually. The weekly cadence smooths out daily noise while still catching structural shifts within a month.

💡

In plain English: We calculate your profit (revenue minus ad spend) every week and plot the trend. If the line is going down, your margin is eroding — even if daily numbers look okay. We also show margin as a percentage to distinguish between 'selling less profitable products' and 'everything getting more expensive.'

RisingMargin improving — strategy working
FlatStable — but not improving
DecliningMargin eroding — investigate cause

Proprietary notice: The methodology, scoring models, waste classification logic, and recovery projections are proprietary to ClickCatalyst Digital and provided for informational purposes only. Results are subject to standard market volatility. Recovery projections are estimates, not guarantees. Contact us within 14 days if any metric appears inaccurate.

Margin Erosion Methodology — How ClickCatalyst Calculates True Profit, Break-Even ROAS & Kill Lists