Skip to content
Home » Reference » Event Taxonomy: Structuring a Tracking Plan That Scales

Event Taxonomy: Structuring a Tracking Plan That Scales

Event taxonomy is the difference between an analytics setup you can reason about in year three and a graveyard of events nobody remembers creating. Most tracking plans don’t fail at launch — they fail slowly, as each new feature ships its own ad-hoc events with names like btnClick2 and signup_final_REAL. A taxonomy is the naming and structure discipline that stops that drift. Get it right early and your tracking plan scales with the product instead of collapsing under it.

This guide covers what an event taxonomy is, the structure that holds up over time, and how to keep it clean as teams and features multiply.

What Is an Event Taxonomy?

An event taxonomy is the agreed system for naming and structuring the events and properties you track. It defines how an event is named, what it always carries, and where it fits in the bigger picture. Think of it as the grammar of your analytics: a shared set of rules so that any event, created by any team, reads consistently.

Without one, every developer invents their own convention. With one, checkout_completed and signup_completed follow the same predictable shape — and a new analyst can guess an event name before they look it up. That predictability is the entire payoff.

A taxonomy isn’t bureaucracy — it’s the rule that lets someone who never met you understand your events on first read.

The Object-Action Framework

The most durable naming structure is object-action: name the thing, then what happened to it. order_completed, video_played, invite_sent. The object comes first, the action second, both in past tense, joined consistently.

This single rule eliminates most naming chaos. It groups naturally — every order_* event sits together — and it scales, because new features just add new objects and actions to a pattern everyone already knows. It also aligns with standard GA4 event naming conventions, so your taxonomy and your tooling agree.

Object Action Event name
order completed order_completed
signup started signup_started
video played video_played
invite sent invite_sent
Anatomy of a well-named event: order_completed split into object and action, with reusable properties like plan, platform, source and value
Every event follows the same shape: object, then action in past tense, plus a set of properties defined once and reused everywhere.

The Three Layers of a Taxonomy

A complete taxonomy defines three layers, not just event names. Skip any one and the structure leaks.

1. Events

The actions users take, named with the object-action rule. Keep the list deliberately small — a focused set of meaningful events beats hundreds of granular ones nobody analyzes. If an event would never change a decision, it probably shouldn’t exist.

2. Properties

The parameters attached to events: plan, platform, source. Properties are where most taxonomies rot, because everyone names them differently — plan, planName, subscription_plan for the same thing. Define each property once, name it once, and reuse it everywhere.

3. Conventions

The rules themselves: casing (snake_case throughout), tense (past), and the allowed values for each property. Write them down. A convention that lives only in one engineer’s head isn’t a convention — it’s a single point of failure.

How to Keep a Taxonomy Clean

A taxonomy is a living system, not a one-time document. Three habits keep it from drifting.

  • One source of truth. Maintain a single tracking plan that every team consults before adding an event. If it’s not in the plan, it doesn’t ship. This is the backbone of any real measurement plan.
  • A review gate. New events get a quick review against the taxonomy before they go live. Five minutes of review saves months of cleanup.
  • Deprecate deliberately. When an event is retired, mark it deprecated rather than deleting it silently. Versioning your changes keeps historical reports readable.

Left unmanaged, every taxonomy accumulates tracking debt — the slow buildup of inconsistent, duplicated, and orphaned events. The habits above are how you stop paying interest on it.

Common Mistakes

  • Mixing naming styles. order_completed next to VideoPlayed next to btn-click. Pick one convention and enforce it everywhere.
  • Tracking everything. A taxonomy with 800 events is as useless as none. Track what informs decisions, not what’s technically possible.
  • Undefined property values. If plan can be “pro”, “Pro”, and “PRO”, your reports fracture. Constrain values to an allow-list.
  • No owner. A taxonomy without a steward drifts within a quarter. Someone must own the plan.

FAQ

What’s the difference between a taxonomy and a tracking plan?

The taxonomy is the set of rules — how events and properties are named and structured. The tracking plan is the living document that applies those rules to your specific events. The taxonomy is the grammar; the tracking plan is the dictionary.

Should event names be past or present tense?

Past tense, consistently. An event records something that already happened, so order_completed reads correctly. The exact choice matters less than picking one tense and never mixing it.

How many events should we track?

Fewer than you think. A focused set of decision-driving events is far more valuable than exhaustive coverage. If you can’t name the decision an event informs, it’s a candidate for removal, not addition.

Can we change our taxonomy later?

Yes, but deliberately and with versioning. Renaming events breaks historical reports, so treat changes like schema migrations — planned, documented, and backward-compatible where possible.

The Bottom Line

An event taxonomy is the quiet infrastructure that decides whether your analytics still makes sense in three years. Name events with a consistent object-action rule, define your properties and conventions once, and protect the whole thing with a single source of truth, a review gate, and deliberate deprecation. None of it is glamorous, and all of it compounds. The teams with clean analytics didn’t get lucky — they decided their naming rules before the chaos started, and then held the line.