Prompt
How do I choose events and attributes before standardizing tracking?
Latest observation
Before standardizing tracking, choose events and attributes by working backward from the decisions you want to make with the data.
1. Start with business questions
Ask:
- What do we need to measure?
- What actions do we want to optimize?
- What decisions will this data support?
Examples:
- “How many users start and complete onboarding?”
- “Which features drive retention?”
- “Where do users drop off in checkout?”
If a question won’t change a decision, it’s probably not worth tracking yet.
2. Identify the key user journeys
Map the main flows in your product:
- Sign up / onboarding
- Activation
- Search / discovery
- Purchase / conversion
- Retention / engagement
- Support / cancellation
Then define the critical steps in each journey. Those are usually your core events.
3. Prefer action-based events
Track meaningful user actions, not every UI interaction.
Good event examples:
Signed UpCreated ProjectStarted CheckoutCompleted PurchaseInvited Teammate
Less useful:
Clicked ButtonHovered CardPage Viewedfor every page without context
If you do track generic actions, make sure they’re tied to a clear purpose.
4. Define attributes that explain “who, what, and context”
For each event, choose attributes that help answer:
- Who did it? user type, plan, role, account
- What happened? item, feature, step, outcome
- In what context? device, channel, page, experiment, locale
Examples for Completed Purchase:
plan_typecurrencypricepayment_methodcoupon_usedexperiment_variant
Only include attributes you expect to analyze or segment by.
5. Separate event-level and user-level data
- Event attributes: describe the specific action
- User/account attributes: describe the person/account overall
Example:
- Event:
Upgraded Plan - Event attributes:
from_plan,to_plan,upgrade_source - User attributes:
industry,company_size,role
Avoid duplicating user-level fields on every event unless needed for analysis.
6. Keep the first version small
Standardization works best when you begin with a focused set:
- 10–20 core events
- A small, stable set of attributes
- Clear naming conventions
You can always add more later, but too many events upfront create inconsistency and maintenance problems.
7. Check each event/attribute against these filters
For every candidate, ask:
- Is it tied to a meaningful decision or metric?
- Will it be used more than once?
- Is it precise and unambiguous?
- Can we reliably collect it?
- Is it stable enough to standardize?
- Does it duplicate something else?
If the answer is mostly no, leave it out.
8. Document definitions before implementation
For each event and attribute, define:
- Name
- Purpose
- When it fires
- Required vs optional attributes
- Allowed values / format
- Owner
This prevents inconsistent tracking across teams.
9. Design for analysis, not just collection
Think ahead to how you’ll use the data:
- Funnel analysis
- Cohort analysis
- Segmentation
- Attribution
- Feature adoption
If an event can’t support a useful analysis, reconsider whether it belongs in the standard plan.
10. Use a naming convention
Pick a consistent pattern early:
- Verb + object:
Project Created,Trial Started - Past tense or present tense, but consistent
- Clear, human-readable names
For attributes:
- Use lowercase snake_case or another standard
- Avoid synonyms (
plan,subscription_plan,tier— pick one)
Simple rule of thumb
Track events when:
- a user takes an important action
- the action contributes to a key funnel or outcome
- the event will be used for reporting or optimization
Track attributes when:
- they add meaningful segmentation or context
- they help explain variation in outcomes
- they’re stable and consistent enough to standardize
If you want, I can also give you a template for selecting events and attributes or a sample tracking plan spreadsheet structure.