Designing Your Event Taxonomy for TTV Analysis
"Garbage In, Garbage Out." It's the oldest cliché in data engineering because it's true. If your event names are messy, your Time To Value (TTV) metrics will be meaningless.
When building Tivalio, we've seen hundreds of segment schemas. The ones that succeed always follow a strict Taxonomy.
1. The Syntax: Object-Action [Past Tense]
Your event names should read like a history book, not a to-do list. Always use the structure: Object + Action (+ Context).
-
❌
clicked button(What button? What result?) -
❌
signup(Is this the start or the end?) -
❌
user_profile(Is this a page view or an update?) -
✅
Button Clicked(Property:label= 'Submit') -
✅
Account Created(Clear lifecycle moment) -
✅
Profile Updated(State change)
Why Past Tense?
Because analytics records history. profile_update sounds trigger-like. Profile Updated is a fact.
2. Granularity: The Goldilocks Zone
- Too Detailed:
Blue Submit Button Clicked,Header Menu Hovered.- Result: You have 5,000 events. Your dropdowns are unusable. You can't compare data when you change the button color to Red.
- Too Broad:
Interaction,App Usage.- Result: Everything looks the same. You can't calculate TTV because "Usage" isn't a specific value moment.
The Sweet Spot: Track Logical Steps in the user journey.
Workspace CreatedMember InvitedIntegration Enabled
3. Properties vs. Events
One of the most common mistakes is baking properties into event names.
- ❌
Plan Changed To Pro - ❌
Plan Changed To Basic
This splits your data. You can't easily query "How many people changed plans?" Instead, use Event Properties.
- ✅
Plan Updatedold_plan: 'Free'new_plan: 'Pro'
Now you can measure TTV to Plan Updated and filter by new_plan = 'Pro'.
4. The "Value" Flag (Mental Model)
When defining your schema, mentally tag every event as either Effort or Value.
- Effort (Cost):
Form Filled,Wizard Step 1,Upload Started. - Value (Payoff):
Download Complete,Report Generated,Checklist Completed.
TTV is simply measuring the time between the First Effort and the First Value. If you don't have good "Value" events in your schema, you can't measure TTV. Go add them.
