Pixel Auditor/Help/Tag health scoring (A–F)

Tag health scoring (A–F)

The 100-point scale, every deduction, and how to recover lost points.

Pixel Auditor assigns every tag (and every site overall) an A–F grade on a 100-point scale. The grade is the single most useful number for "is my tracking healthy?"

Grade reference

GradeRangeMeaning
A90–100Healthy. No major issues.
A−85–89Minor issues — likely a couple of missing optional params.
B70–84Functional but worth fixing — slow tags, occasional duplicates.
C55–69Real problems — pre-consent fires or missing required params.
D40–54Multiple violations stacked. Tracking is lossy or non-compliant.
F< 40Broken. Don't trust this site's analytics until fixed.

Deductions

IssueDeduction
Pre-consent fires−20 (capped)
Duplicate installations−15 per duplicated platform
Retired tags (e.g. Universal Analytics)−10
Dormant or redundant GA4 IDs (configured but never received a hit)−10
Missing measurement IDs−5 each, max −15
Missing required event params (e.g. purchase without transaction_id)−10 each, max −20
PII leaks (raw email/phone in payload)−15 per affected platform
Inconsistent Consent Mode state (gcs=G111 but observed denied)−10

Health reasons list

The Audit tab's "why this grade" panel lists every active deduction with the specific tag and event causing it. Example:

Site grade: B (76 / 100) −20 Pre-consent fires 2 fires before consent_update granted ad_storage: · gtag page_view (G-9X4K2MZ7QP) at +0.04s · fbq PageView (247831049502) at +0.12s −4 Missing optional params 1× GA4 purchase missing 'tax'

How to recover points

  1. Open the Audit tab.
  2. Read the "why this grade" list top to bottom — issues are sorted by impact.
  3. For each deduction, click the linked tag/event row to inspect the specific failure.
  4. Fix the highest-impact issue first (pre-consent and duplicates usually win).
  5. Reload the page and re-audit. The grade updates live.
tip Use Saved Runs to capture the current state before fixing, then load the saved run for a side-by-side diff to confirm the fix worked.