What makes a good event?
A good event captures meaningful behaviour clearly enough to be used.
It should show that something important happened in the product, relate to a workflow step, and support a metric or decision the team cares about.
For example:
registration.form_submitted
This event is useful because it describes a specific behaviour in the registration workflow. It is clearer than a vague event such as button_clicked, and more measurable than a broad label such as registration_activity.
Good events are understandable, purposeful, and reliable.
Event quality checklist
A good event should pass this checklist:
- it captures meaningful behaviour
- it maps to a workflow step
- it fires at the right moment
- it uses a clear and predictable name
- it includes useful properties
- it supports a metric, question, or decision
- it has an owner or reviewer
Bad / better event names
| Weak event name | Better event name | Why it is better |
|---|---|---|
button_clicked |
registration.form_submitted |
Names the behaviour, not the interface element |
registration_activity |
registration.email_verified |
Says what actually happened |
success |
checkout.payment_confirmed |
Makes the outcome specific |
page_2_next |
application.documents_uploaded |
Survives interface changes better |
Good events capture meaningful behaviour
An event should exist because it helps answer a product question.
It might show whether users:
- started a workflow
- reached a meaningful step
- encountered a problem
- completed an outcome
- returned later to continue
- behaved differently by device, entry point, or user type
For registration, useful events might include:
registration.form_viewed
registration.form_submitted
registration.form_error_shown
registration.email_verified
registration.completed
These events describe progress through the workflow. Low-level interactions such as button_clicked, modal_opened, or field_focused can be useful when they explain a specific problem, but they should not be the default.
Good events fire at the right moment
The timing of an event changes what it means.
For example, registration.completed could fire when:
- the form is submitted
- the account is created
- the email is verified
- the user accesses the product for the first time
Each version describes a different point in the workflow and produces a different completion metric.
A good event definition should make clear when the event fires and what must be true at that moment.
Good events are named consistently
Event names should be predictable.
A consistent naming pattern helps product, engineering, and analytics teams understand what an event means without decoding each one from scratch.
For example:
registration.form_viewed
registration.form_submitted
registration.email_verified
registration.completed
These names are easier to work with than a mixed set such as:
RegPageLoad
submit_registration
emailSuccess
completeSignup
The exact convention matters less than using one convention consistently.
Good events include useful context
The event name records what happened. Properties add context.
For example:
registration.form_error_shown
This event becomes more useful when it includes properties such as:
- error type
- field affected
- device type
- entry point
- user type
- workflow version
Without context, an event may be technically correct but difficult to interpret.
Common problems with events
Weak events often have one or more of these problems:
- the name is vague
- the event fires at the wrong moment
- the event duplicates another event
- the event is too closely tied to a screen or component
- the event is missing useful properties
- the event captures activity without a clear measurement purpose
- different teams interpret the event differently
These problems make metrics harder to trust and dashboards harder to explain.
How to apply this
Before adding an event, ask:
- what behaviour does this event capture?
- which workflow step does it relate to?
- when exactly should it fire?
- what properties does it need?
- what metric or question could use it?
- what decision could it support?
A good event should pass this test before it is implemented.
Related articles
- Event naming convention examples
- Writing instrumentation requirements
- Event catalogue template
Key takeaway
A good event captures meaningful behaviour at the right moment, with a clear name and useful context.
Good events make workflows observable and give teams evidence they can use to create reliable metrics.