The Core SaaS Event Model

Event tracking is the foundation of SaaS product analytics. Without a consistent, well-designed event model, every analysis question becomes a archaeology project: digging through inconsistent naming, missing properties, and events that were tracked for six months then changed and re-tracked differently. The cost of a bad event model is paid continuously — every time a data question cannot be answered cleanly, every time a dashboard is unreliable, every time a new analyst joins and cannot understand why the data looks the way it does.

This reference defines the canonical SaaS event model: the core event categories every SaaS should instrument, the naming conventions that keep the event taxonomy navigable at scale, and the property schemas that make events analytically useful across all categories.

🔑 The 6 Core Event Categories

A well-structured SaaS event model organizes all events into a small number of categories that correspond to distinct analytical use cases. The six categories below cover the full product lifecycle from user interaction to revenue.

CategoryWhat It TracksPrimary Use Case
User EventsIndividual user actions in the productActivation, engagement, feature adoption
Account EventsAccount-level lifecycle changesAccount health, expansion signals
Feature EventsUsage of specific product featuresFeature adoption, product-led growth analysis
Billing EventsSubscription and payment state changesRevenue analytics, churn signals
Error EventsApplication errors and exceptionsReliability, user experience degradation
Performance EventsLatency, throughput, system healthOperational monitoring, user impact

These categories are not mutually exclusive — a single user action can trigger events in multiple categories. A user upgrading their plan generates a user event (upgrade action taken), an account event (account tier changed), and a billing event (subscription modified). Tracking these as separate events in their respective categories keeps each analytical question clean and avoids mixing concerns.

Event Naming Conventions

Consistent naming is what makes an event model navigable. Inconsistency accumulates quickly: one team names events user_signed_up, another uses UserSignedUp, another uses signup_completed. A few months in, you have four events that mean the same thing and no reliable way to query signup rates.

The Object-Action Pattern

The most widely adopted convention is the object-action pattern: [Object]_[Action] in snake_case. The object is the resource being acted on; the action is the past-tense verb describing what happened.

Naming Rules

Event Name Registry

Maintain a central event registry — a document or database table — where every event name, its definition, who owns it, and when it was added is recorded. New events must be added to the registry before they are instrumented. This prevents duplicate events, enforces naming conventions, and gives analysts a source of truth.

Universal Property Schema

Every event in the model, regardless of category, should carry a set of universal properties. These are the context fields that make any event analytically useful: who did it, in what account, in what session, and when.

PropertyTypeDescription
event_idUUIDUnique identifier for this event instance
event_nameStringThe event name from the registry
timestampISO 8601Server-side timestamp of when the event occurred
user_idStringAuthenticated user ID, null for anonymous events
anonymous_idStringPre-authentication session identifier
account_idStringThe account/organization the user belongs to
session_idStringGroups events within a single session
platformEnumweb, mobile_ios, mobile_android, api
environmentEnumproduction, staging, development

Category-Specific Property Schemas

In addition to universal properties, each event category has a set of standard properties that provide category-specific analytical context.

User Event Properties

Account Event Properties

Billing Event Properties

Error Event Properties

Example Event Taxonomy

The table below shows a representative event taxonomy for a B2B project management SaaS, illustrating how the naming convention and category structure apply in practice.

Event NameCategoryKey PropertiesPrimary Analysis Use
user_signed_upUsersignup_source, plan, referrerAcquisition, funnel top
user_activatedUsertime_to_activate, activation_actionActivation rate
project_createdFeatureproject_type, template_usedFeature adoption
task_completedFeaturetask_type, assignee_count, completion_methodCore engagement
report_exportedFeaturereport_type, format, row_countPower user signal
account_seat_addedAccountprevious_seat_count, new_seat_countExpansion signal
subscription_upgradedBillingfrom_plan, to_plan, mrr_deltaRevenue analytics
subscription_cancelledBillingreason, plan, days_since_signup, mrr_deltaChurn analysis
integration_connectedFeatureintegration_type, connection_methodIntegration adoption
api_error_raisedErrorendpoint, error_code, severity, request_idReliability monitoring

Common Instrumentation Mistakes

Frequently Asked Questions