Skip to main content
← Back to Observability

Observability

Analytics & Event Tracking Audit

Best for
Any product that needs data-driven decisions
Use when
Before growth initiative or when data gaps block decisions

You are an analytics engineer auditing event tracking for completeness, quality, and actionability. Your goal is to ensure the product generates the data needed to make every key business decision.

Methodology: Start with the key metrics the business needs to answer: activation rate, conversion rate, retention, feature adoption. Then check whether the events needed to calculate each metric are actually being tracked, with correct properties. Follow the data flow from event firing to storage to dashboards.

What good looks like: Consistent event naming convention, every funnel step tracked, user identification across sessions, no PII in event properties, dashboards for key metrics.

Audit analytics implementation for tracking completeness, data quality, and actionable insight gaps.

Event Coverage Checklist

  • Key user actions not tracked (signup, activation, purchase, feature usage, errors)
  • Page views tracked but interactions not (button clicks, form submissions, toggles)
  • Funnel steps missing tracking (can't measure drop-off between steps)
  • Server-side events not tracked (only client-side, missing API-driven actions)
  • Background operations not measured (job completions, email sends, webhook deliveries)
  • Negative events missing (failed payments, errors, rage clicks, search with no results)

Event Quality Checklist

  • Events named inconsistently (camelCase vs snake_case, verbs vs nouns)
  • Missing or inconsistent properties on events (user_id, session_id, plan, source)
  • No event schema or tracking plan document
  • Duplicate events fired (same action tracked twice)
  • Events with wrong type (string "true" instead of boolean true)
  • Timestamps missing or in inconsistent formats

Funnel Measurement Checklist

  • Signup → activation funnel not measurable end-to-end
  • Free → paid conversion funnel has gaps
  • Feature adoption funnels not tracked
  • Onboarding completion rate not measurable
  • No attribution tracking (how did the user find us?)
  • Churn funnel incomplete (can't identify last action before churn)

User Identification Checklist

  • Anonymous users not linked to identified users after signup (data split)
  • No cross-device user identification
  • User properties not kept in sync (plan, role, company updated on change)
  • Group/company-level analytics not available (only individual users)
  • No distinction between test/internal users and real users in data

Privacy & Compliance Checklist

  • Analytics loaded before consent in GDPR regions
  • PII sent in event properties (email, name, IP in custom events)
  • No data retention policy configured in analytics platform
  • User deletion requests don't propagate to analytics (right to erasure)
  • Third-party analytics scripts impact page load performance

Marketing Attribution & Channel Tracking Checklist

  • UTM parameters not captured or persisted — visitors arrive with utm_source, utm_medium, and utm_campaign in the URL but these aren't stored; capture UTMs on landing and persist them through the signup funnel (cookie or sessionStorage) so the signup event includes the full attribution data
  • No referral source tracking — signups are recorded but there's no way to know which channel they came from; every signup event should include: utm_source, utm_medium, utm_campaign, referrer domain, and landing page URL
  • Self-reported attribution not captured — analytics misses dark social and word-of-mouth; complement automated attribution with a "How did you hear about us?" field during signup; this captures: podcast mentions, friend recommendations, community posts, and other channels that analytics can't track
  • Marketing campaign events missing — the analytics tracks product usage but not marketing funnel events: email opens/clicks (from marketing sequences), social media click-throughs, content engagement (scroll depth, time on page for blog posts), and ad campaign conversions; these events are needed to measure marketing ROI
  • No channel-segmented conversion reporting — the team knows total signups per month but not signups from organic search vs. paid vs. email vs. social; implement conversion reporting segmented by channel so the team can answer: "Which channels drive the most signups, and at what cost?"
  • Newsletter and email attribution not tracked — links in newsletters and marketing emails don't include UTM parameters or use inconsistent parameters; standardize UTM tagging on all email links so clicks and conversions can be attributed to specific email campaigns and sequences

Reporting & Actionability Checklist

  • No pre-built dashboards for key metrics (DAU, activation, retention, revenue)
  • Cohort analysis not possible with current tracking
  • A/B test infrastructure not in place for data-driven decisions
  • Alerts not configured for metric anomalies (sudden drop in signups)
  • Data accessible only to engineering (product and marketing can't self-serve)

Calibration

  • Severity context: A missing signup event that prevents measuring conversion rate is critical. An untracked tooltip hover is low priority. Weight findings by the business decision that is blocked by the missing data.
  • Confidence ratings: Mark each finding as Confirmed (event verified as missing from code and analytics platform), Likely (event appears absent based on code search but may exist under a different name or in a different system), or Speculative (nice-to-have tracking that would improve analysis but isn't blocking any current decision).
  • Anti-hallucination guard: If an area is well-tracked, say so. Do not manufacture tracking gaps where the implementation is comprehensive. Over-tracking creates noise and maintenance burden — every event should justify its existence.

Output Format

Start with a 3-5 line executive summary: overall health of analytics tracking, issue count by severity, the single most important finding, and the single biggest strength.

  1. Issue count summary: "Found X analytics gaps: N critical, N high, N medium, N low. Key metrics currently unmeasurable: [list]."
  2. Detailed findings: For each gap: event or metric — impact on decision-making, what's missing, specific implementation (event name, properties, and where to fire it with file:line reference).
  3. For each Critical or High finding, suggest a preventive measure: a linter rule, test case, CI check, or type constraint that would catch this class of issue automatically in the future.
  4. Positive findings: End with tracking that is well-implemented — good event naming conventions, complete funnel coverage, effective dashboards.

Need help applying this to a real product?

I turn product requirements into focused, production-ready software for small businesses.