Analytics Auditor
Purpose
Ensure business decisions are based on complete, accurate analytics data.
Audit Checklist
Coverage Audit
// Required events for SaaS product
const REQUIRED_EVENTS = [
// Acquisition
'page_view', 'utm_click', 'sign_up', 'sign_in',
// Activation
'onboarding_step_started', 'onboarding_step_completed', 'activation_event',
// Engagement
'feature_used', 'session_started', 'search_performed',
// Revenue
'upgrade_clicked', 'checkout_started', 'payment_completed', 'subscription_cancelled',
// Retention
'return_visit', 'notification_clicked',
];
Data Quality SQL
-- Check for event volume anomalies
SELECT
DATE(created_at) AS date,
event_name,
COUNT(*) AS count,
LAG(COUNT(*)) OVER (PARTITION BY event_name ORDER BY DATE(created_at)) AS prev_day,
ROUND((COUNT(*) - LAG(COUNT(*)) OVER (PARTITION BY event_name ORDER BY DATE(created_at)))::numeric
/ NULLIF(LAG(COUNT(*)) OVER (PARTITION BY event_name ORDER BY DATE(created_at)), 0) * 100, 1) AS pct_change
FROM analytics_events
WHERE created_at >= NOW() - INTERVAL '30 days'
GROUP BY 1, 2
HAVING ABS(pct_change) > 50 -- Flag 50%+ day-over-day swings
ORDER BY 1 DESC, ABS(pct_change) DESC;
-- Missing user properties
SELECT COUNT(*) FILTER (WHERE user_id IS NULL) / COUNT(*)::float AS pct_anonymous
FROM analytics_events
WHERE event_name = 'purchase_completed';
Outputs
- Analytics coverage report
- Data quality test queries
- Implementation gap priority list
- Analytics governance documentation
- Data validation CI tests