Schema desk

Event schema planning, without the vendor script

This page is the public version of the method we teach. It is not a tool. It is a sequence: inventory the product, name with restraint, lock properties, freeze in public, then instrument.

Colleagues discussing a plan on a laptop

Why schemas rot

App analytics event schema planning fails in the same three places. Someone copies a vendor’s “recommended events.” Someone names a tap after the screen title. Someone adds a property in a hotfix without an allowed-value list. Six months later the warehouse has three spellings of checkout and a boolean that sometimes arrives as "true".

A schema is a product contract. Treat it like copy or like an API, not like a private analytics hobby.

The desk sequence

  1. 01 InventoryObjects first. Actions second. Telemetry last, and often never.
  2. 02 NameObject_action or objectAction — pick one family and keep it across iOS, Android, and web.
  3. 03 DictionaryType, allowed values, null, PII flag, owner. If it is not in the row, it does not ship.
  4. 04 FreezeA date, a voter list, and a deprecation window written before the first SDK call.
  5. 05 InstrumentEngineering implements the contract. Analytics does not invent names in the PR.

Decisions we force into the open

Screen versus component

If every view fires screen_viewed, your funnel is a hallway. We ask which components change a user’s intent and only those get names.

Thai and English

Display copy localises. Event names do not. We still check that Thai product language did not leak into a property value that a dashboard will filter.

Identity without theatre

Anonymous, identified, and resume. Most double-counts live here. We write the rule in one paragraph, not a slide.

What this page will not do

It will not generate a tracking plan from your repo. It will not compare Amplitude, Mixpanel, and Firebase. It will not estimate “data maturity.” If you want a facilitated version of this sequence, the Event Schema Atelier is the flagship. If you only need a dictionary filled for one flow, the Property Dictionary Intensive is shorter.

See programs Ask the studio