A reference implementation for turning event data into evidence-backed product investigations.
Built for product, analytics, and growth teams. My role covered the product concept, data model, checks, workflow, and workshop.
Can an analytics system do more than report numbers? This project tests whether it can identify a problem or opportunity, explain why it matters, and suggest a reasonable next check.
The workflow combines BigQuery, Python, notebooks, configurable checks, and an optional language-model step. Sample data includes planted tracking breaks and growth changes so the workflow can run end to end.
The system looks for failures in instrumentation, consent, and data quality, as well as unusual changes worth investigating. Findings include context and a suggested next check instead of asking a team to trust an unexplained alert.
- Product judgment about which findings deserve attention
- Data-quality checks tied to a real investigation workflow
- A bounded AI step that supports analysis without replacing it
- Evaluation questions for false positives, privacy, and missing consent
The sample data is intentionally small and contains planted changes. This repository does not claim production impact. A production team would need to tune thresholds against its own traffic, test false positives, and establish privacy and consent controls.
Install the Python dependencies:
pip install -r requirements.txtThe three workshop notebooks can be run with sample data:
For deployment context, see the attendee handout and playbook.
notebooks/ Interactive workshop notebooks
src/ BigQuery, SQL generation, classification, and alerting code
config/ Check definitions
data/ Sample-data generation, loading, and schema files
docs/ Deployment and operating notes
Add evaluation cases for false positives, PII checks, and missing-consent data before asking a team to run the workflow continuously.
I presented the workshop at the News Product Alliance Summit in 2025. The repository is a reference implementation, not a claim that a team should deploy it unchanged.