In 2022, we inherited a product analytics setup from a client that had 340 custom events, 14 dashboards, a $60K/year Mixpanel contract, and a product team that made almost every major decision based on gut feeling because nobody trusted the data. This is more common than it should be. Building an analytics system that creates genuine decision-making leverage is a design problem, not a tooling problem.
The Four Metrics You Actually Need
Most products need exactly four top-level metrics, not 340 events: Activation Rate (percentage of new sign-ups who reach 'the moment of first value' within their first session), 7-Day Retention (percentage of users who return within 7 days of their first session), Monthly Recurring Revenue per active user, and Net Promoter Score (quarterly). Everything else is a diagnostic metric used to explain movements in these four numbers.
Activation is the highest-leverage metric for most early-stage products. Our research across 20+ SaaS companies shows that improving the activation rate from 20% to 40% has more compounding impact on 12-month revenue than any other single intervention — more than improving conversion, more than reducing churn.
Insight
If you must choose one metric to obsess over, make it Activation Rate. It is the most predictive leading indicator of long-term retention in virtually every SaaS product category we have studied.
The Event Taxonomy That Scales
The reason most analytics setups become unusable is an inconsistent event naming convention. Engineers add events ad hoc, with no agreement on naming patterns, property schemas, or what constitutes a 'user action' versus a 'system event'. Three years later, the data is ungoverned and unqueryable.
We enforce a mandatory three-part event taxonomy: Object (the thing being acted upon: user, project, subscription, report), Verb (the action: created, viewed, updated, deleted, shared, exported), and Context (additional facets: source, variant, value). An event like project_created with properties {source: 'onboarding_flow', template_used: true} is infinitely more queryable than a freeform 'Created project' label.
// Enforced event naming convention
analytics.track(
'project_created', // object_verb
{
object_id: project.id,
object_type: 'project',
source: 'onboarding_flow', // where did the action originate?
template_used: !!project.templateId,
team_size: workspace.memberCount, // user context
plan_tier: user.subscriptionTier,
}
);
// Always track user context at identify time, not event time
analytics.identify(user.id, {
plan_tier: user.subscriptionTier,
account_age_days: daysSince(user.createdAt),
company_size_bucket: getBucket(user.companySize),
});Building a Funnel You Can Actually Trust
The reason funnel data is untrustworthy in most organisations is double-counting and session fragmentation. A user who starts signup on mobile, gets interrupted, and completes on desktop is counted as two incomplete funnels rather than one completed one. Without deterministic identity resolution — linking anonymous events to identified users via a pre-identification alias call — your funnel is a fiction.
We implement identity resolution at the infrastructure layer: every analytics SDK call flows through a server-side enrichment layer that performs alias resolution before forwarding to the analytics warehouse. This adds 20ms of latency to event ingestion and improves funnel accuracy by 15–40% depending on the product's cross-device usage pattern.
Conclusion
The goal of a product analytics system is not to generate dashboards — it is to reduce the variance in product decision quality. A well-designed, trustworthy analytics system with four metrics and a queryable event taxonomy is vastly more valuable than a 340-event sprawl that nobody believes. Instrumentation is engineering. Treat it with the same rigour you apply to your core product code.
Key Takeaways
- Focus on four top-level metrics: Activation, 7-Day Retention, MRR per active user, NPS
- Activation Rate is the highest-leverage metric for early-stage SaaS products
- Enforce a three-part event taxonomy: Object_Verb + context properties
- Implement server-side identity resolution to make funnel data trustworthy
- An analytics system that generates trusted decisions is infinitely more valuable than one generating pretty dashboards