SaaS — Product Analytics
Audit + Plan · 4 weeks
Client Context
Series B SaaS company ($22M ARR, 3 data engineers). Product and growth teams disputed weekly KPI reports — churn numbers from the warehouse didn't match billing system exports. Leadership lost confidence in the analytics team.
What Was Broken
Event telemetry had silent schema drift: a frontend deploy renamed two event properties without updating the warehouse ETL. Downstream churn and activation metrics used stale column references, producing numbers that looked plausible but were wrong by 15–30% depending on the week.
What BayesIQ Found
- 5 metrics recomputed from raw events disagreed with reported dashboard values
- 2 event properties renamed upstream but never updated in ETL (schema drift)
- ~18% of session records had null user_id due to a race condition in the event logger
- 3 near-duplicate event types (e.g., signup_complete vs sign_up_completed) feeding separate pipelines
Business Impact
The churn metric was overstated by 22% in Q3 board reporting. A planned pricing experiment was designed around incorrect activation numbers. Two analysts spent ~10 hours/week manually reconciling reports.
Remediation
BayesIQ mapped all event-to-metric lineage, flagged the stale column references, and delivered a dbt project with staging models that normalize event names and enforce not-null constraints on user_id. Schema tests now catch property renames before they reach production dashboards.
Deliverables
- Scored audit report (38/100 — Critical)
- dbt project: 6 staging models, 3 mart models, 42 schema tests
- Streamlit dashboard with corrected metrics and data quality summary
- ASSUMPTIONS.md documenting 11 data contracts
- METRICS.md with canonical definitions for 5 KPIs