Inside the Conversion Quality Engine
Every metric in your Conversion Quality audit is sourced from documented BigQuery queries. This page explains how we calculate modeled conversion percentages, attribution drift, deduplication risk ratios, and signal health scores — with exact thresholds for every status label.
Jump to metric
Data Sources
read-only OAuth · no campaign changes everAll 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
Click, view-through, cross-device, all_conversions per campaign per day
Google Ads API — Ads Conversions
google_ads_ads_conversions
Conversion action names, categories, click vs all split, external source
Google Ads API — Keywords Conversions
google_ads_keywords_conversions
Conversion lag buckets per keyword for lag distribution analysis
Google Ads API — Hourly Pacing
google_ads_campaign_pacing_hourly
Device-level conversion quality (CVR, CPA by device)
Google Ads API — Search Terms
google_ads_search_terms_historical
Top converting terms with click-attributed conversions and CPA
GA4 — Ecommerce Funnel
ga4_ecommerce_funnel
Sessions, product views, cart adds, checkouts, purchases for funnel comparison
Derived Intelligence — Signal Health
signal_health_intelligence_daily
Pre-calculated drift, signal score, and signal status per campaign
Modeled Conversion Percentage
How much of your reported data is estimated, not observed
The share of all_conversions that are NOT click-attributed, sourced from google_ads_campaign_performance. This includes view-through, cross-device, and statistically modeled conversions. The algorithm treats every type equally when making bid decisions — it cannot distinguish hard evidence from Google's statistical estimates.
Why this matters: A 40% modeled rate means nearly half the data the algorithm learns from is guesswork. Your ROAS and CPA numbers are inflated by these estimates. If you're making bid changes based on modeled data, you're optimizing a mirage.
In plain English: We count conversions the user actually clicked for (real) and conversions Google estimated using models (estimated). The percentage tells you how much of your data is real vs guessed. Below 30% = trustworthy. Above 40% = the numbers are unreliable.
Attribution Drift Scatter Plot
Visual proof of where Ads and GA4 disagree
From signal_health_intelligence_daily: each campaign plotted with GA4 conversions (X-axis) vs Ads conversions (Y-axis). Points on the diagonal are perfectly aligned. Points above over-report in Ads. The scatter uses signal_status for color coding and campaign_name for labels.
Why this matters: A table of drift percentages is abstract. The scatter plot makes the problem visceral — you can see which campaigns are outliers at a glance. The further a point is from the diagonal, the more the algorithm is bidding on phantom conversions for that campaign.
In plain English: Each dot is one campaign. If the dot sits on the diagonal line, Ads and GA4 agree. If it's above the line, Ads is over-counting. The further from the line, the worse the tracking problem. Color tells you the severity: green = fine, amber = investigate, red = critical.
Conversion Type Stacked Bar
Click vs view-through vs modeled per campaign
From google_ads_campaign_performance: three layers per campaign bar — click_conversions (blue), view_through (amber), modeled_conversions (red). The stack visually reveals which campaigns are inflated by soft attribution. Campaigns with large non-blue segments are optimized on impression exposure rather than purchase actions.
Why this matters: Display and Video campaigns naturally generate more view-through volume than Search. If a Search campaign has 30%+ view-through, something is wrong with tag configuration. The stacked bar catches this immediately because the colors tell the story.
In plain English: Each bar is one campaign, split into three colors: blue (user clicked then bought), amber (user saw ad but didn't click), red (Google estimated). The more blue, the better. If amber or red dominate, that campaign's numbers are inflated.
View-Through Inflation Risk
Campaigns where impression exposure is counted as performance
Campaigns where view_through_conversions exceed 30% of all_conversions. VT conversions credit a campaign when a user saw (but didn't click) an ad before converting through another channel. Display and Video campaigns naturally generate more VT — Search campaigns should not.
Why this matters: PMax and Display campaigns serve across YouTube, Gmail, and mobile apps — generating massive impression volume with low click rates. If VT conversions feed bidding strategy, the algorithm optimizes for cheap impressions rather than purchase intent.
In plain English: We flag campaigns where more than 30% of conversions came from users who saw your ad but never clicked. The algorithm counts these equally with clicks — but the user never chose to interact with your ad. That's a very different signal quality.
Deduplication Risk (Inflation Ratio)
Is the same conversion counted multiple times?
Per conversion action from google_ads_ads_conversions: all_conversions divided by click_conversions. A ratio of 1.0 means every conversion is unique. A ratio above 2.0 means each real conversion is counted at least twice — typically from duplicate tags firing in both GTM and hard-coded snippets.
Why this matters: Duplicate conversions double the signal the algorithm uses to bid. If a purchase fires twice, the algorithm thinks the campaign converts 2x better than it does — and bids 2x more aggressively. This is the most expensive tracking bug possible.
In plain English: We divide total conversions by click conversions for each tracking action. If the ratio is 2.0, each real conversion is being counted twice. Usually this means the same tag fires from two places (Google Tag Manager AND a hard-coded snippet on the page).
Conversion Lag Distribution
How long after a click does a conversion happen?
From google_ads_keywords_conversions grouped by conversion_lag_bucket. Shows how conversions distribute across time windows: same day, 1 day, 2–3 days, up to 30+ days. Long-tail lag means some 'waste' terms may convert later — the attribution window may be too short for your product's consideration cycle.
Why this matters: If your attribution window is 7 days but 20% of conversions arrive after day 7, you're systematically under-counting. This makes waste calculations pessimistic and good keywords look worse than they are. High-consideration products (B2B, luxury) almost always have longer lag.
In plain English: We show how long users take to buy after clicking your ad. If most buy the same day, your data is reliable. If significant purchases happen 7+ days later, any analysis using a short time window is missing conversions — and may flag good keywords as waste.
GA4 Funnel vs Ads Conversions
Where exactly does the tracking gap open?
Six funnel steps from GA4 ecommerce data (ga4_ecommerce_funnel) compared against Ads conversions: Sessions → Product Views → Add to Cart → Checkout → GA4 Purchases → Ads Conversions. If Ads Conversions exceeds GA4 Purchases, the algorithm credits conversions your analytics can't verify.
Why this matters: This is the most intuitive visualization in the audit. A non-technical founder can see at a glance: 'My analytics says 200 purchases, but Google Ads claims 300 conversions — where did the extra 100 come from?' The answer is modeled attribution.
In plain English: We build an ecommerce funnel: visitors → product views → add to cart → checkout → GA4 purchases → Ads conversions. If the Ads number is bigger than the GA4 purchases number, Google is claiming credit for conversions your own analytics doesn't see.
Signal Health Recommendations
Prioritized fix list per campaign
Each non-HEALTHY campaign from signal_health_intelligence_daily receives a specific recommendation based on its signal_status. CRITICAL_BLIND campaigns get 'URGENT: Fix conversion tracking'. WARNING_DRIFT gets 'Audit GA4 ↔ Ads tag alignment'. LOW_VOLUME gets 'Increase conversion volume or consolidate'.
Why this matters: Generic advice like 'fix your tracking' isn't actionable. This table gives campaign-specific recommendations ranked by severity — a prioritized task list that tells the operator exactly what to do for each campaign, in what order.
In plain English: We look at every campaign that has a tracking problem and give it a specific fix instruction. The worst problems are listed first. Work top-down — each fix makes the algorithm smarter for every campaign, not just the one you fixed.
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.
Also worth reading
How to Read Your Conversion Quality Report →
Every section explained with exact action steps
See these metrics applied to your account
Run My Free Conversion Quality Audit