House method
Event Schema is a practice, not a template download.
Every Socket Nodehub program — Atlas, Bench, or Studio — uses the same critique order. This page is that order, written plainly, so a team can try it on a single funnel before they sit in class.
Why we start with nouns
In-app event tracking analytics fails when teams name screens instead of objects. home_viewed dies the day design ships a new home. Order.viewed still means something after the layout changes.
The practice asks: what is the durable thing the business recognises? Order, Ride, Lesson, WalletTopUp. Marketing copy is allowed to be seasonal. The object name is not.
The critique order we use in clinic
Inventory without adding
List every event that fired last week. Do not invent replacements yet. Duplicates stay visible; hiding them makes the later argument dishonest.
Actor, object, action
Who did what to which object? If the actor is missing, guest checkout will never join. If the object is a screen, the event is already on borrowed time.
Fire condition
View, tap, entitlement, or server confirmation? Most false funnels are view events pretending to be commitments.
Properties that earn their keep
Each property must join, filter, or explain. “Nice to have” fields become PII problems or warehouse noise. We strike them in red.
Version, do not mutate
If status used to mean payment state and now means logistics state, that is a new property or a version bump — not a silent overwrite.
What we refuse to put on a client event
National identifiers, raw emails, precise location when a city is enough, and derived revenue the client can spoof. Those belong in a server event or not at all. Thailand’s PDPA conversation is not a footnote here; it shows up in identity week of Instrumentation Studio.
The Event Schema practice is compatible with CDPs and with a warehouse-only stack. The contract is the same: a named object, a honest fire condition, and types the warehouse can trust.
Try it on one funnel
Pick checkout, trial start, or ride requested. Run A–E on a whiteboard. If the room cannot agree on the object name in twenty minutes, you do not have a tracking problem yet — you have a product language problem. That is still worth solving before you buy another analytics seat.