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.
Schema desk
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.
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.
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.
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.
Anonymous, identified, and resume. Most double-counts live here. We write the rule in one paragraph, not a slide.
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.