Product design skills

references/naming-and-schema.md

A supporting file of the instrumentation-plan skill.

Event naming and tracking-plan schema

Compiled 2026-08 from vendor documentation; the rules below are the common ground between vendors so a plan ports between them.

Sources

Naming rules

  1. object_action, lowercase snake_case, ASCII: signup_completed, filter_applied, invoice_downloaded.
  2. Past tense for completed outcomes (order_placed), present tense for intents that may not complete (checkout_start), and never both for the same moment.
  3. No screen, product, platform or variant names in the event name; carry them as properties.
  4. Max 40 characters; no reserved prefixes (ga_, google_, firebase_, vendor internals).
  5. One event per user-meaningful moment. Do not encode outcomes in the name (payment_failed and payment_succeeded become payment_completed with status) unless the two are analysed as different funnels.
  6. Properties: snake_case, one type each, enumerations listed in the plan, booleans prefixed is_ / has_, durations in milliseconds with _ms, money in minor units with _cents or an explicit currency.
  7. Context properties on every event: screen, entry_point, platform, app_version, variant (when experiments run), session_id if the vendor does not supply one.
  8. Person properties (stable attributes such as plan, role, signup date) are set once, not repeated on every event.
  9. Versioning: when semantics change, add a new event and deprecate the old one in the plan; never silently repurpose a name.

Tracking-plan table

ColumnContent
eventThe name per the rules above
triggerExact moment and component ("Save button in report editor, on successful server response")
propertiesname: type [enum values], one per line
sourceclient / server / both (server for money and persisted outcomes)
ownerTeam or person accountable for the event firing correctly
metric servedThe metric or funnel this event exists for
statusplanned / implemented / verified / deprecated
  • Anonymous identifier: how it is generated and stored.
  • User identifier: when it is known and how anonymous history merges.
  • Consent: which categories exist, what fires before consent, how withdrawal is honoured.
  • Personal data inventory: which properties are personal data, the purpose, the retention period.

QA checklist template

StepActionExpected eventExpected propertiesWhere to verify
1.........vendor live view / debug console

Add: duplicate-fire check, client/server reconciliation for outcomes, consent-off session check, experiment assignment fires once per user.

On this page