The Data Quality Console gives you real-time visibility into whether your tracking pipeline is working correctly. If attribution, events, or metrics aren’t flowing, this is where you’ll see it.
Navigate to Integrations → Data Quality (available in dev mode) or check the Data Quality Card on your dashboard.
Freshness
Freshness shows how recently each data source reported. WisePilot collects data on different schedules depending on the source — some arrive in real-time, others are imported nightly. See Automation & Data Freshness for the complete schedule.
If a source goes stale, it means data has stopped flowing:
| Source | How It Arrives | Healthy | Warning | Action if Stale |
|---|
| GTM events | Real-time (as events fire) | < 24h | > 48h | Check GTM container deployment, verify attribution script is loaded |
| HighLevel webhook | Real-time (webhook) | < 24h | > 48h | Verify webhook is enabled in HighLevel, check webhook URL and secret |
| GA4 snapshots | Daily automated import | < 24h | > 48h | Check Google Analytics connection, verify property access |
| GSC snapshots | Daily automated import | < 24h | > 48h | Check Search Console connection, verify site ownership |
| Daily rollup | Nightly aggregation | < 24h | > 48h | Check Automation & Data Freshness — this is the most common issue |
If the daily rollup is stale, optimization scores stop updating — even if events are flowing correctly. This is the most common cause of “scores not changing.”
Join Coverage
Join coverage is the most important data quality metric. It measures what percentage of events successfully link across the attribution pipeline.
Coverage Tiles
| Tile | What It Measures | Target |
|---|
| CTA clicks with attribution | % of CTA clicks that carry a valid cr_attrib | > 90% |
| Form submits with attribution | % of form submissions that include a cr_attrib | > 60% |
| Form submits tied to CTA click | % of attributed form submissions that match a prior CTA click | > 50% |
| Form submits tied to asset | % of form submissions linked to a specific content asset | > 40% |
Interpreting Low Coverage
CTA clicks with attribution is low (< 80%):
- The attribution script may not be deployed on all pages
- Check that
window.getAttributionId() returns a value on your website
- Verify the script is loaded before GTM fires CTA events
Form submits with attribution is low (< 40%):
- The HighLevel
cr_attrib custom field may be missing or misconfigured
- Some forms may arrive from sources other than your CTAs (direct HighLevel links, chatbots)
- Check the “Form Submits (No Prior CTA Click)” tile — some leakage is normal
Form submits tied to asset is low (< 30%):
- Content assets may be missing
canonical_path values
- The page paths in events may not match the
canonical_path in WisePilot
- Check that published assets have their URL path set correctly
Coverage By Source
This breakdown shows exactly where in the pipeline attribution is leaking:
- High CTA coverage + low form coverage → Problem is on the form/HighLevel side. Check the
cr_attrib custom field.
- Low CTA coverage → Problem is on the website/script side. Check attribution script deployment.
- High form coverage + low asset coverage → Problem is in asset resolution. Check
canonical_path settings on your content assets.
When to Check
- After initial setup — Verify all connections work end-to-end
- When optimization scores drop unexpectedly — Stale data or broken connections
- When confidence tiers downgrade — Low join coverage directly reduces confidence
- Weekly as a health check — Catch issues before they impact scoring
See Troubleshooting for step-by-step solutions to common data quality issues, and Automation & Data Freshness for the full schedule of when each data source refreshes.