What goes into a tracking plan?
At minimum, one row per event: the event name, the properties attached to it, the exact moment it fires, and the person who owns it. Good plans also record which tools receive the event and the question it exists to answer — an event nobody queries is maintenance without payoff. Format matters less than habit: a spreadsheet, a versioned file in the repo, or a schema tool such as Segment Protocols or Amplitude Data all work, as long as the plan is updated in the same pull request as the tracking code.
How should you name events?
Pick one convention and enforce it everywhere. The most common is object_
What is tracking drift, and why does it kill analytics?
Drift is the gap that opens between the plan and what the code actually sends: an event gets renamed without a plan update, a property changes type, a duplicate appears under a second name. Each change is small; together they make funnels undercount, dynamic segments stop matching the users they should, and dashboards drift into fiction — at which point the team stops trusting the data entirely. The cure is procedural, not technical: no event ships without a plan entry, and reviewing the entry is part of code review.
Why it matters for a two-person team
Small teams skip the plan because it smells like process for a company they are not yet. The logic runs the other way: with two people, nobody remembers in October why checkout_